Padrões Arquiteturais Silvia Regina Vergilio. Exemplo de Padrão Arquitetural: MVC.
Padrões-02 - Padrões Arquiteturais - Camadas
-
Upload
nicola-zagari -
Category
Technology
-
view
2.383 -
download
0
description
Transcript of Padrões-02 - Padrões Arquiteturais - Camadas
Padrões Arquiteturais
Estruturais: Camadas
2 Livro Texto: Pattern Oriented Software Architecture - Buschmann
Eduardo N. F. Zagari
Padrões Arquiteturais
• Estruturais – Camadas – Pipes e Filtros
• Sistemas Distribuídos – Broker
• Sistemas Interativos – MVC – Apresentação-Abstração-Controle (PAC)
• Sistemas Adaptáveis – Reflexão – Microkernel
3 Livro Texto: Pattern Oriented Software Architecture - Buschmann
Eduardo N. F. Zagari
Camadas
• Ajuda a estruturar aplicações que possam ser decompostas em grupos de sub-tarefas, nas quais cada grupo está em um nível de abstração particular
4 Livro Texto: Pattern Oriented Software Architecture - Buschmann
Eduardo N. F. Zagari
Exemplo
• Pilha de Protocolo de Redes – Desenvolvimento em/por partes – Codificação e/ou testes incrementais – Mudança/alteração a posteriori de partes
individuais – Novas linguagens ou tecnologias podem ser
incorporadas pela simples recodificação de seções de código
5 Livro Texto: Pattern Oriented Software Architecture - Buschmann
Eduardo N. F. Zagari
Exemplo
6 Livro Texto: Pattern Oriented Software Architecture - Buschmann
Eduardo N. F. Zagari
Contexto
• Um sistema grande que requer decomposição
7 Livro Texto: Pattern Oriented Software Architecture - Buschmann
Eduardo N. F. Zagari
Problema
• Mudanças de código tardias devem ficar confinadas a um componente e não afetar os demais
• Interfaces devem ser estáveis e padronizadas
• Partes do sistema devem ser substituíveis • Pode ser necessário mais tarde se criar
novos sistemas com as mesmas questões de “nível baixo” do que se está projetando
8 Livro Texto: Pattern Oriented Software Architecture - Buschmann
Eduardo N. F. Zagari
Problema
• Responsabilidades similares devem ser agrupadas para facilitar entendimento e manutenção
• Não há padrão de granularidade dos componentes
• Componentes mais complexos necessitam de mais decomposição
• Sistema deve ser desenvolvido por uma equipe de programadores
9 Livro Texto: Pattern Oriented Software Architecture - Buschmann
Eduardo N. F. Zagari
Solução
• Estruture o sistema em um número apropriado de camadas e coloque-as uma no topo da outra
• Inicie de baixo para cima, aumentando o nível de abstração
10 Livro Texto: Pattern Oriented Software Architecture - Buschmann
Eduardo N. F. Zagari
Estrutura
• A camada L usa os serviços da camada “L-1” (e somente ela deve usá-los) da forma que lhe convier
11 Livro Texto: Pattern Oriented Software Architecture - Buschmann
Eduardo N. F. Zagari
Estrutura
12 Livro Texto: Pattern Oriented Software Architecture - Buschmann
Eduardo N. F. Zagari
Dinâmica
• Cenário 1 – Cliente invoca uma requisição (invocação) à camada
N. Eventualmente 1:N na camada 1 • Cenário 2
– Comunicação de baixo para cima (notificação). 1:1 ou N:1
• Cenário 3 – Camadas Com Estado (cache) versus Sem Estado
• Requisições podem atingir apenas um subconjunto de camadas
13 Livro Texto: Pattern Oriented Software Architecture - Buschmann
Eduardo N. F. Zagari
Dinâmica
• Cenário 4 – Idem ao cenário 3, mas com notificações e
não invocações (de baixo para cima) • Ex.: o reenvio de uma requisição
• Cenário 5 – Comunicação entre 2 pilhas de camadas
14 Livro Texto: Pattern Oriented Software Architecture - Buschmann
Eduardo N. F. Zagari
Implementação
1. Defina o critério de abstração 2. Determine o número de níveis de
abstração 3. Dê o nome às camadas e atribua tarefas
a cada uma delas 4. Especifique os serviços (Pirâmide
Invertida de Reuso) 5. Refine os passos de 1 a 4
15 Livro Texto: Pattern Oriented Software Architecture - Buschmann
Eduardo N. F. Zagari
Implementação
6. Especifique uma interface para cada camada 7. Estruture as camadas individuais 8. Especifique a comunicação entre camadas
adjacentes • Modelo PUSH versus PULL
9. Desacople camadas adjacentes • Acoplamento ONE-WAY para top-down • Bottom-Up: funções de callback • Ou, usando super classes
10. Projetar uma estratégia de tratamento de erro
16 Livro Texto: Pattern Oriented Software Architecture - Buschmann
Eduardo N. F. Zagari
Usos
• Máquinas Virtuais • APIs • Sistemas de Informação