Escolar Documentos
Profissional Documentos
Cultura Documentos
Arquitetura de um Sistema
Definio: Representa a estrutura esttica e comportamental de um sistema, compreendendo os servios do sistema, realizados pelos componentes de software, que rodam nos processadores disponveis Est associada a detalhes internos do software na medida que esses detalhes manifestam-se externamente No pode ser representada por um simples diagrama: multifacetada
Arquitetura de um Sistema
Est associada a:
Uso
Funcionalidade Desempenho
Resilincia
Reuso Compreendibilidade Economia Restries e compromissos tecnolgicos Esttica
O Por Qu da Arquitetura
Uma abordagem adhoc leva a sistemas difceis de mudar ou adaptar Decomposio de sistemas em partes menores torna o software mais fcil de entender, administrar, desenvolver, manter Auxilia no desenvolvimento baseado em componentes Auxilia desde o incio na administrao do desempenho Leva a um reuso melhor Influencia a segurana, a testabilidade, a manutenbilidade e a administrao do sistema
Decomposio
Componentes
Frameworks Patterns ( Padres )
Nvelamento
Camadas ( Tiers )
Decomposio
Particionamento do sistema em partes menores, lgicas Que tornam fcil a administrao de sua complexidade Auxilia a definio e descrio das interfaces entre as diferentes partes do sistema, de forma a facilitar a sua iterao Facilita a distribuio do software atravs de mltiplos processadores Prov uma partio natural das tarefas de desenvolvimento e facilita a distribuio das tarefas em equipes grandes
Componentes
Unidade coesa de software que prov um conjunto relacionado de servios e funes til somente no contexto de um modelo padro ( CORBA, EJB, DCOM ) Infraestrutura bsica para composio e interao do componente
Tem uma interface ( contrato entre o componente e a aplicao ) bem definida que permite a sua interao com outros componentes
Debaixo de um mesmo modelo padro e com a mesma interface podem ser substitudos
Podem conter outros componentes
Em relao ao software tradicional so mais fceis de manter e modificar Tem o potencial de melhorar a produtividade com o reuso e componentes pr-fabricados Desenvolvimento de aplicaes mais flexveis Podem ser comprados e vendidos na medida que existir um mercado consolidado nesta rea Facilitam a partio mais natural do software em unidades coesas
Componentes em UML
Diagrama de Atividades
Diagrama de Estado
Framework
Qualquer poro pr-definida de software desenvolvido e testado para ser reusado em vrios projetos de desenvolvimento de aplicaes num domnio especfico
Tipo de micro arquitetura, abrangendo um conjunto de padres que trabalham em conjunto para resolver um problema bsico, num domnio comum
Permite a especificao, agrupamento e reuso de elementos para se construir efetivamente algum sistema
Framework na UML
Estereotipo de Pacote
Contendo Colaboraes
Diagramas
Padres ( Patterns )
Soluo em um determinado contexto, que foi obtida atravs de experincia e se mostrou eficaz para resolver um problema bsico nessa rea. Utilidade
Capta conhecimento comprovado obtido atravs de anos de experincia Ajuda na soluo de problemas complexos encontrados em situaes similares Favorece a comunicao na equipe, provendo contexto bsico para discusses
Exemplo
Model
Sabe tudo sobre: Os dados persistentes que devero ser mostrados
View
Refere-se ao objeto Model Dispara as operaes de consulta do Model para obter os dados e visualiz-los Define como os dados sero visualizados pelo usurio Mantm consistncia na apresentao dos dados quando o Model muda
Controller
Mltiplos Views utilizando um mesmo Model Suporte fcil para novos tipos de usurio do sistema Projeto mais bem definido e modular Facilidade de ampliao do sistema Utilizao em sistemas distribudos
Referncia
Anlise ( Negcios )
Arquitetnicos Projeto ( Design )
+
Nvel de Abstrao
De Cdigo
Tcnica SOA
MDA
Padres de Anlise
Repositrio - Fowler
Padres Arquitetnicos Trata da estrutura dos sistemas , seus componentes, ambientes de processamento e como eles se relacionam entre si
Padro de Aplicao Directly Integrated Single Chanel para o Padro de Negcios Self-Service
Mapeamento de produtos Windows 2000 para o Pattern de Aplicao Direct Integrated Single Chanel
Padres de Design
Usados a nvel de classes e objetos
Tipos: De Criao: solues para configurao e inicializao do design Estrutural: estrutura de modo especfico as interfaces e as relaes das respectivas classes Comportamental: identifica caminhos nos quais um grupo de classes interage com os demais, para alcanar um certo comportamento
Pattern de Criao
Exemplo
Pattern Singleton Garante que uma classe tenha somente uma instncia e prov um ponto global de acesso a ela
Pattern Estrutural
Exemplo
Pattern Proxy O objeto Proxy prov um mecanismo indireto de acesso a outro objeto ( RealSubject ). Os dois objetos trabalham integrados atravs de uma mesma interface ( Subject ).
Vantagem: acesso mais fcil ao sistema ( atravs de Proxy ) quando existem restries ( por exemplo de segurana )
Pattern Comportamental
Exemplo: Pattern Subject-Observer
Uma pessoa ( Observer ) tem interesse em certo produto ( Subject ). Ela se registra esse interesse no sistema do fabricante, visando receber atualizaes ( update ) sobre o produto. Quando o produto atualizado os Observer recebem notificaes da mudana. Os Observer individualmente podem consultar o Subject especfico para saber detalhes.
Especificao Comportamental
Uso de Colaborao: conjunto de objetos e seus vnculos, que interagem num certo contexto, para implementar certa estrutura ( Diagrama de Classes ) ou comportamento ( Diagrama de Interao ou Estados )
Pattern Subject-Observer
Especificao Estrutural
Nvelamento ( Camadas )
Pattern para decomposio Tratar complexidade Partio lgica de sistemas ( subsistemas, mdulos )
Abstrai tipos especficos de funcionalidades ( camadas funcionais ) Prov limites conceituais ( entre conjuntos de servio ) Agrupa, separa, restringe o uso de itens do sistema
Tipos de Nivelamento
Por Responsabilidades
Camadas
Distribuio do sistema em diversos processos colocados em mltiplos processadores ou num nico Ex.: Arquitetura Cliente-Servidor
Por Reuso
Desenvolvimento do sistema de forma que os diversos nveis prestam servios aos outros nveis Ex.: Nvel de fornecimento de informaes ao usurio ( Apresentao ) Nvel de servios gerais: log, tratamento de erros
Caractersticas Bsicas
Cada camada prov servios para as outras camadas Existe baixo acoplamento entre as camadas O relacionamento entre as camadas hierrquico por natureza Cada camada pode contar com a camada logo abaixo, no ao contrrio No deve existir dependncia entre camadas que no sejam vizinhas
Nivelamento em UML
Arquitetura Nivelada
Anlise do sistema
Definir a Arquitetura muito mais um processo evolutivo Ela toma forma na medida que as decises so tomadas considerando-se os requisitos especficos e os compromissos do sistema