ARQUITETURA DE SOFTWARE



Documentos relacionados
Arquitetura de Software. Fatec ES III - Prof. Dinis 1

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Engenharia de Software

Projeto de Arquitetura

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

SISTEMAS DISTRIBUÍDOS

Projeto de Arquitetura

Padrões Arquiteturais e de Integração - Parte 1

UFG - Instituto de Informática

Persistência e Banco de Dados em Jogos Digitais

Sistemas de Informação para Apoio à Decisão Gerencial

Engenharia de Sistemas Computacionais

Estilos Arquiteturais. Estilos Arquiteturais. Exemplos de Estilos Arquiteturais. Estilo: Pipe e Filtros

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Sistemas de Informação I

15 Computador, projeto e manufatura

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I. Prof. MSc. Hugo Souza

ARQUITETURA DE SISTEMAS. Cleviton Monteiro

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -ARQUITETURAS DE APLICAÇÃO MÓVEL. Prof. Angelo Augusto Frozza, M.Sc.

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Introdução ao Modelos de Duas Camadas Cliente Servidor

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Feature-Driven Development

3 SCS: Sistema de Componentes de Software

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade;

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Engenharia de Software

Documento de Arquitetura

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Projeto de Sistemas I

ISO/IEC 12207: Gerência de Configuração

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

UML - Unified Modeling Language

1

Engenharia de Requisitos Estudo de Caso

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

Prof. JUBRAN. Aula 1 - Conceitos Básicos de Sistemas de Informação

Uma organização pode ser descrita como um arranjo sistemático, onde esforços individuais são agregados em prol de um resultado coletivo

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Engenharia de Requisitos

Engenharia de Software II

Requisitos de Software

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

SISTEMAS OPERACIONAIS

ASSUNTO DA APOSTILA: SISTEMAS DE INFORMAÇÃO E AS DECISÕES GERENCIAIS NA ERA DA INTERNET

Universidade Paulista

BARRAMENTO DO SISTEMA

DATA WAREHOUSE. Introdução

Índice O programa Os cursos A adaptação dos conteúdos O novo Convênio O novo programa Cronograma Parcerias locais Montagem das turmas

Profs. Deja e Andrei

SISTEMAS DISTRIBUIDOS

Processos Técnicos - Aulas 4 e 5

ENGENHARIA DE SOFTWARE

PLANEJAMENTO PLANEJAMENTO ESTRATÉGIA CICLO PDCA CICLO PDCA 09/04/2015 GESTÃO DE ESCOPO GERENCIAMENTO DE PROJETOS ACT

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

Sistemas Distribuídos

Arquitetura de Sistemas Distribuídos

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

Semântica para Sharepoint. Busca semântica utilizando ontologias

Gerência de Projetos

Modelagem de Software

UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO (Bacharelado)

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Arquitetura de Software Aula 03

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Qualidade de Software

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Conceitos de Banco de Dados

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

ENGENHARIA DE SOFTWARE DESENVOLVIMENTO EM CAMADAS

Arquitetura dos Sistemas de Informação Distribuídos

Análise e Projeto Orientados por Objetos

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Sistemas Operacionais

Camadas de Transporte, Sessão & Apresentação. Função. Camadas REDES x TRANSPORTE. Redes de Computadores Prof. Leandro C. Pykosz

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Conceitos ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO. Comunicação; Formas de escritas; Processo de contagem primitivo;

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

UNIVASF - Universidade Federal do Vale do São Francisco Manutenção de Software

Manutenção desoftware. SCE 186- Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestrede2002

REQUISITOS. Prof. Msc. Hélio Esperidião

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Protocolos de Redes Revisão para AV I

4 Um Exemplo de Implementação

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Sistemas Operacionais

Planejando o aplicativo

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Automação de Locais Distantes

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Transcrição:

ARQUITETURA DE SOFTWARE Em seu livro, que constitui um referencial sobre o assunto, Shaw e Garlan discutem arquitetura de software da seguinte maneira: Desde quando o primeiro programa foi dividido em módulos, os sistemas de software passaram a ter arquiteturas, e os programadores têm sido responsáveis pelas interações entre os módulos e as propriedades globais da montagem. Historicamente, as arquiteturas eram implícitas sistemas herdados do passado. Desenvolvedores de software têm adotado um ou mais padrões arquiteturais como estratégias para a organização de sistemas, mas eles usam esses padrões informalmente e não têm meio para torná-los explícitos no sistema resultante. Já Grochow define arquitetura de software como um arcabouço abrangente que descreve sua forma e estrutura seus componentes e como eles se articulam. Arquitetura Quando discutimos a arquitetura de um edifício, muitos atributos diferentes vêm à mente. No nível mais simplista, consideramos a forma geral da estrutura física, mas na realidade arquitetura é muito mais. É a maneira pela qual os vários componentes do edifício são integrados para formar um todo coeso. É o modo pelo qual o edifício se ajusta a seu ambiente e se mistura com os outros edifícios da vizinhança. É o grau com que o edifício alcança sua finalidade declarada e satisfaz às necessidades do seu proprietário. É o sentido estético da estrutura o impacto visual do edifício e o modo pelo qual texturas, cores e materiais são combinados para criar a fachada externa e o ambiente de convivência interno. São pequenos detalhes o projeto de dispositivos de iluminação, de piso, colocação de ornatos de paredes, a lista é quase sem fim. E por fim, é arte.

ARQUITETURA DE SOFTWARE Pela definição de Bass, Clements e Kasman: A arquitetura de software de um programa ou sistema computacional é a estrutura ou estruturas do sistema que abrange os componentes de software, as propriedades externamente visíveis desses componentes e as relações entre eles. POR QUE A ARQUITETURA É IMPORTANTE? Representações da arquitetura de software constituem um facilitador da comunicação entre todas as partes interessadas (envolvidas) no desenvolvimento de um sistema baseado em computador. A arquitetura destaca decisões iniciais de projeto que terão um impacto profundo em todo o trabalho de engenharia de software que se segue e, igualmente importante, no sucesso final do sistema como uma entidade operacional. A arquitetura constitui um modelo relativamente pequeno, intelectualmente inteligível de como o sistema é estruturado e como seus componentes trabalham em conjunto. ESTILOS E PADRÕES ARQUITETURAIS Um software construído para sistemas baseados em computador exibe um ou vários estilos arquiteturais. Cada estilo descreve uma categoria de sistemas que abrange (1) um conjunto de componentes (um banco de dados, módulos computacionais, etc.) que realizam a função que é requisito do sitema; (2) um conjunto de conectores que possibilita comunicação, coordenação e cooperação entre os componentes; (3) restrições que definem como os componentes podem ser integrados para formar o sistema; e (4) modelos semânticos que possibilitam ao projetista entender as propriedades gerais de um sistema pela análise das propriedades conhecidas de duas partes constitutivas.

Um estilo arquitetural é uma transformação imposta sobre o projeto de um sistema completo. O objetivo é estabelecer uma estrutura para todos os componentes do sistema. TAXONOMIA DE ESTILOS ARQUITETURAIS Apesar de milhões de sistemas baseados em computador terem sido criados ao longo dos últimos 50 anos, a grande maioria pode ser categorizada em um dos relativamente poucos estilos arquiteturais: ARQUITETURA CENTRADA EM DADOS Um depósito de dados (por exemplo um arquivo ou banco de dados) fica no centro dessa arquitetura e dá acesso frequentemente a outros componentes que atualizam, adicionam, retiram ou modificam de outra forma os dados contidos no depósito. Neste estilo arquitetural, o software cliente tem acesso a um repositório central. Em alguns casos, o repositório central de dados é passivo, isto é, o software cliente tem acesso a dados independentemente de quaisquer modificações nos dados ou nas ações dos outros softwares clientes. Uma variante desse estilo transforma o repositório em um quadro-negro. Arquiteturas centradas em dados promovem integrabilidade. Componentes existentes podem ser modificados e novos componentes clientes podem ser adicionados à arquitetura sem preocupação com outros clientes (porque os componentes clientes operam independentemente). ARQUITETURA DE FLUXO DE DADOS Essa arquitetura é aplicada quando dados de entrada devem ser transformados, por meio de uma série de componentes computacionais ou manipulativos, em dados de saída. Uma estrutura tubo e filtro tem um conjunto de componentes, chamados de filtros, conectados por tubos que transmitem dados de um componente para o próximo. Cada filtro trabalha independentemente dos componentes afluentes e efluentes, e é projetado para esperar entrada de dados de uma certa forma e produzir dados de saída (para o filtro seguinte) de um modo específico. No entanto, o filtro não exige conhecimento do trabalho dos filtros vizinhos.

ARQUITETURA DE CHAMADA E RETORNO Esse estilo arquitetural permite ao projetista de software conseguir uma estrutura de programa relativamente fácil de modificar e ampliar. Dois subestilos existem nessa categoria: Arquiteturas de programa principal/sub-programa. Esta estrutura básica de programa decompõe a função em uma hierarquia de controle em que um programa principal aciona um certo número de componentes de programa, que por sua vez, invocam outros componentes. Arquiteturas de chamada de procedimentos remotos. Os componentes de uma arquitetura de programa principal / subprogramas são distribuídos em vários computadores de uma rede ARQUITETURA ORIENTADA A OBJETOS Os componentes de um sistema encapsulam os dados e as operações que devem ser aplicadas para manipular os dados. A comunicação e a coordenação entre componentes são obtidas por meio de passagem de mensagens. ARQUITETURA EM CAMADAS Um certo número de camadas diferentes é definido, cada uma realizando operações que se tornam progressivamente mais próximas do conjunto de instruções de máquina. Na camada exterior, os componentes servem as operações da interface com o usuário. Na camada mais interna os componentes realizam a interface com o sistema operacional. As camadas intermediárias fornecem serviços utilitários e funções do software de aplicação. CONCLUSÕES Depois que a engenharia de requisitos descobre as características e restrições do sistema a ser construído, o estilo arquitetural, ou conjunto de estilos, que melhor se encaixa nessas características e restrições, pode ser escolhido. Em muitos casos, mais de um estilo pode ser adequado e alternativas poderiam ser projetadas e avaliadas. Por exemplo, um estilo em camadas (adequado à maioria dos sistemas) pode ser combinado com uma arquitetura centrada em dados em muitas aplicações de banco de dados.

Bibliografia: Pressman, Roger S. Engenharia de Software / Roger S. Pressman 6. Ed. São Paulo: McGraw-Hill, 2006.