Projeto Arquitetura
Projeto Arquitetura
Projeto de Arquitetura
Carlos Michel Betemps
Transparncias traduzidas a partir das originais disponveis na pgina do livro: Engenharia de Software por Ian Sommerville http://www.aw.com/sommerville_br
Ian Sommerville Engenharia de Software - UNILASALLE Slide 1
Projeto Arquitetural
Ian Sommerville
Slide 2
Arquitetura de Software
O processo de projeto para identificar os subsistemas e um framework para o controle e a comunicao de subsistemas chamado projeto arquitetural A sada deste processo uma descrio da Arquitetura do Software
Ian Sommerville
Slide 3
Projeto Arquitetural
o primeiro estgio do projeto Representa um vnculo importante entre o projeto e os processos de engenharia de requisitos Freqentemente realizado em paralelo com alguma atividade de especificao Envolve a identificao dos maiores componentes de um sistema e suas comunicaes
Ian Sommerville
Slide 4
Anlise de Sistema
Significa que alguma anlise pode ser realizada. O sistema pode suprir requisitos no-funcionais?
Reutilizao em Larga-escala
A arquitetura pode ser reutilizada em grande escala
Ian Sommerville
Slide 5
Estruturao do Sistema
O sistema decomposto em subsistemas principais e a comunicao entre estes identificada
Modelagem de Controle
estabelecido um modelo dos relacionamentos de controle entre as partes do sistema
Decomposio Modular
Os subsistemas identificados so decompostos em mdulos
Ian Sommerville
Slide 6
Subsistemas e Mdulos
Um sub-sistema um sistema cuja operao no depende dos servios fornecidos por outros sub-sistemas. Um Mdulo geralmente um componente de sistema que fornece um ou mais servios para outros servios mas no considerado um sistema independente.
Ian Sommerville
Slide 7
Modelos Arquiteturais
Diferentes modelos arquiteturais podem ser produzidos durante o processo de projeto Cada modelo apresenta diferentes perspectivas sobre a arquitetura
Ian Sommerville
Slide 8
Modelos Arquiteturais
Modelo Estrutural Esttico que mostra os principais componentes do sistema Modelo de Processo Dinmico que mostra a estrutura do processo do sistema (processos em run-time) Modelo de Interface que define as interfaces de sub-sistemas (servios oferecidos) Modelos de Relacionamentos tais como um modelo de fluxo de dados entre os subsistemas
Ian Sommerville Engenharia de Software - UNILASALLE Slide 9
Estilos Arquiteturais
O modelo arquitetural de um sistema pode ter como base um modelo ou um estilo de arquitetura especfico Uma conscientizao desses modelos e estilos pode simplificar o problema de definio de arquiteturas de sistemas Entretanto, a maior parte dos grandes sistemas so heterogneos e no seguem um nico estilo arquitetural
Ian Sommerville Engenharia de Software - UNILASALLE Slide 10
Atributos de Arquitetura
Desempenho (Performance)
Operaes mais importantes so restringidas a um pequeno nmero de sub-sistemas, para minimizar a comunicao entre estes Uma uma arquitetura em camadas com os itens mais importantes nas camadas mais internas Isolamento de componentes crticos para segurana Incluso de componentes redundantes na arquitetura Utilizar componentes de menor granularidade e auto-contidos
Proteo (Security)
Segurana (Safety)
Disponibilidade (Availability)
Ian Sommerville
Slide 11
Estruturao do Sistema
Se preocupa com a decomposio do sistema em subsistemas que interagem entre si O projeto arquitetural normalmente expressado como um diagrama de blocos apresentando uma visualizao da estrutura do sistema Modelos mais especficos da estrutura podem ser desenvolvidos, os quais mostram como sub-sistemas compartilham dados, como esto distribudos e como atuam como interface entre si
Ian Sommerville
Slide 12
Ian Sommerville
Slide 13
O modelo de repositrio
Sub-sistemas devem compartilhar dados. Isto pode ser feito de duas maneiras:
Dados compartilhados so mantidos em um banco de dados central ou repositrio e pode ser acessado por todos os subsistemas Cada sub-sistema mantm seu prprio banco de dados e passa os dados explicitamente para outros sub-sistemas
Ian Sommerville
Slide 14
Ian Sommerville
Slide 15
Vantagens
Maneira eficiente de compartilhar grandes volumes de dados Os sub-sistemas no necessitam saber como o dado produzido: Gerenciamento Centralizado. Ex. Backup, segurana, etc. Modelo de compartilhamento visvel por meio do esquema de repositrio Os sub-sistemas devem estar de acordo com o modelo de dados do repositrio. Inevitavelmente um compromisso Evoluo dos dados difcil e cara No h escopo para polticas de gerenciamento especficas Difcil distribuir eficientemente
Desvantagens
Ian Sommerville
Slide 16
Arquitetura Cliente-servidor
Modelo de sistema distribudo que mostra como dados e processamento so distribudos em uma srie de processadores (componentes) Conjunto de servidores stand-alone que fornecem servios especficos como impresso, gerncia de dados, etc. Conjunto de clientes que solicita os servios oferecidos pelos servidores Rede que permite aos clientes acessar esses servios
Ian Sommerville
Slide 17
Ian Sommerville
Slide 18
Vantagens
Distribuio de dados realizada diretamente Faz uso efetivo de sistemas em rede. Pode necessitar hardware barato Fcil de adicionar novos servidores e atualizar os existentes No existe nenhum modelo de dados compartilhado; sub-sistemas utilizam diferentes organizaes de dados. Intercmbio de dados pode ser ineficiente. Gerncia de redundncia em cada servidor No existe uma central de registros dos nomes e servios isto pode tornar difcil de encontrar quais servidores e servios esto disponveis
Desvantagens
Ian Sommerville
Slide 19
Usado para modelar a interface de sub-sistemas Organiza o sistema em um conjunto de camadas (ou mquinas abstratas) as quais fornecem um conjunto de servios Suporta o desenvolvimento incremental de subsistemas em diferentes camadas. Quando um interface de camadas modificada, somente a camada adjacente afetada Entretanto, freqentemente difcil estruturar os sistemas desta maneira
Ian Sommerville
Slide 20
Ian Sommerville
Slide 21
Modelos de Controle
Se ocupam com o fluxo de controle entre os sub-sistemas. Diferente do modelo de decomposio do sistema Controle Centralizado
Um sub-sistema tem completa responsabilidade para controlar, iniciar e parar outros sub-sistemas
Ian Sommerville
Slide 22
Controle Centralizado
Um sub-sistema de controle assume a responsabilidade de gerir a execuo de outros sub-sistemas Modelo de retorno de Chamadas (Call-Return)
Modelo de subrotinas top-down onde o controle inicia no topo da hierarquia de subrotinas e se move para os nveis inferiores. Aplicvel para sistemas seqenciais. Aplicvel para sistemas concorrentes. Um componente de sistema controla o incio, a interrupo e a coordenao de outros processos do sistema. Pode ser implementado em sistemas seqenciais como uma declarao Case.
Modelo Gerenciador
Ian Sommerville
Slide 23
Ian Sommerville
Slide 24
Ian Sommerville
Slide 25
Orientado por eventos gerados externamente onde a ocorrncia do evento est fora do controle dos subsistemas que processam os eventos Dois modelos orientados a eventos
Modelos de Transmisso (Difuso). Um evento transmitido para todos os sub-sistemas. Qualquer sub-sistema que possa manusear o evento pode responder Modelo orientados a interrupes. Usados em sistemas de temporeal onde interrupes so detectadas por um manipulador de interrupes e passadas para algum componente para processamento
Ian Sommerville
Slide 26
Modelo de Transmisso
Efetivo na integrao de sub-sistemas distribudos eem diferentes computadores em rede Sub-sistemas registram um interesse em eventos especficos. Quando este ocorre, o controle transferido para o sub-sistema que pode manipular o evento Poltica de controle no embutida no evento e manipulador de mensagens. Sub-sistemas decidem em quais eventos esto interessados Entretanto, sub-sistema no conhecem quando e se um evento ir ser manipulado
Ian Sommerville
Slide 27
Transmisso Seletiva
(selective broadcasting)
Ian Sommerville
Slide 28
Usados em sistemas de tempo real onde rpidas respostas, para um evento, so necessrias Existem alguns tipos de interrupo com manipulador definidos para cada tipo Cada tipo associado com um endereo de memria e um comutador de hardware provoca a transferncia para seu manipulador Permite respostas rpidas mas sua programao complexa e sua validao difcil de validar
Ian Sommerville
Slide 29
Ian Sommerville
Slide 30
Decomposio em Mdulos
Outro nvel estrutural onde sub-sistemas so decompostos em mdulos Dois modelos de decomposio modular
Um modelo de objeto onde o sistema decomposto em objetos que se comunicam Um modelo de fluxo de dados onde o sistema decomposto em mdulos funcionais, os quais transformam entradas em sadas. Tambm conhecido como modelo pipeline
Se possvel, decises sobre concorrncia devem ser atrasadas at os mdulos serem implementados
Ian Sommerville
Slide 31
Modelo de Objetos
Estrutura o sistema em um conjunto de objetos fracamente acoplados com interfaces bem definidas Decomposio orientada a objetos se ocupa com identificar classes de objetos, seus atributos e operaes Quando implementado, os objetos so criados a a partir destas classes e algum modelo de controle utilizado para coordenar as operaes de objetos
Ian Sommerville Engenharia de Software - UNILASALLE Slide 32
Ian Sommerville
Slide 33
Transformaes funcionais processam suas entradas para produzir sadas Pode ser referenciado como modelo de duto e filtro (pipe and filter model, como no shell do UNIX) Variantes desta abordagem so muito comuns. Quando transformaes so seqenciais, ento tm-se um modelo seqencial em lote (batch), o qual extensivamente utilizado em sistemas de processamento de dados No conveniente para sistemas interativos
Ian Sommerville
Slide 34
Ian Sommerville
Slide 35
Modelos arquiteturais que so especficos para algum domnio de aplicao Dois tipos de modelo de domnio especfico
Modelos genricos, que so abstraes a partir de uma srie de sistemas reais e que englobam as caractersticas principais desses sistemas Modelo de referncia, que so mais abstratos (modelos idealizados). Fornecem um meio de informar os projetistas sobre a estrutura geral daquela classe de sistemas e uma maneira de comparao de diferentes arquiteturas
Modelos genricos so modelos derivados botton-up; Modelos de referncia so modelos derivados top-down
Ian Sommerville
Slide 36
Modelos Genricos
Modelo de Compilador um exemplo bem conhecido, embora outros modelos existam para domnios de aplicao mais especializados
Analisador Lxico Tabela de Smbolos Analisador Sinttico rvore de Sintaxe Analisador Semntico Gerador de Cdigos
Modelos de compilador genrico pode ser organizado de acordo com diferentes modelos de arquitetura
Ian Sommerville
Slide 37
Ian Sommerville
Slide 38
Ian Sommerville
Slide 39
Arquiteturas de Referncia
Modelos de referncia so derivados de um estudo do domnio de aplicao ao invs de sistemas existentes Podem ser usados como uma base para implementao de sistemas ou para comparar diferentes sistemas. Atua como um padro contra o qual sistemas podem ser avaliados. Modelo OSI um modelo em camadas para a comunicao entre sistemas
Ian Sommerville Engenharia de Software - UNILASALLE Slide 40
Ian Sommerville
Slide 41
Pontos Chave
O arquiteto de software responsvel por derivar um modelo estrutural do sistema, um modelo de controle e um modelo de decomposio em sub-sistemas Grandes sistemas raramente so compatveis com um nico modelo de arquitetura Modelos de decomposio de sistemas incluem modelos de repositrio, modelos cliente-servidor e modelos de mquina abstrata Modelos de controle incluem modelos de controle e de evento centralizados
Ian Sommerville
Slide 42
Pontos Chave
Modelos de decomposio em mdulos incluem modelos de fluxo de dados e de objeto Modelos de arquitetura de domnio especfico so abstraes em relao a um domnio de aplicao. Estes podem ser construdos a partir de sistemas existentes (modelos genricos) ou pode ser um modelo de referncia idealizado
Ian Sommerville
Slide 43