Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Agenda
Introduo Caractersticas do Modelo Notao Ferramentas Decomposio Passo a Passo Domnio de Aplicao Variaes do Modelo Estudo de Caso Concluses Bibliografia
Arquitetura em Camadas
Junho/2003
Introduo
Inicialmente proposto por Dijkstra, em 1968 Diviso do sistema hierarquicamente em camadas Exemplos PROTOCOLO OSI Aplicao Apresentao Sesso Transporte Enlace Fsico
Junho/2003
SGBD Sist. Controle de Verses Sist. Controle de Objetos Banco de Dados Sistema Operacional
Arquitetura em Camadas
Caractersticas do Modelo
Cada camada um subsistema
Oferece servios camada imediatamente superior Serve de cliente para a camada imediatamente inferior Composta por componentes que tenham o mesmo nvel de abstrao
Controle centralizado
Hierrquico (call return)
Decomposio modular
Suporte a ambos os modelos: orientado a objetos e funcional
Junho/2003 Arquitetura em Camadas
Notao
Pilha
A B
Anel
UML - Pacotes
B
Junho/2003
Arquitetura em Camadas
Ferramentas
Ferramentas para Anlise Estruturada
Exemplos: Sybase PowerBuilder SmartDraw
Ferramentas OO
Exemplos: Rational Rose Microsoft Visio
Junho/2003
Arquitetura em Camadas
Domnio de aplicao
Aplicaes que podem ser decompostas em grupos de subtarefas, onde cada grupo pertence a um nvel particular de abstrao. Protocolos de rede so os melhores exemplos; Mquinas Virtuais;
Variaes do Modelo
Sistema de Camadas Relaxadas Cada camada pode usar os servios de todas as camadas abaixo dela Camadas Atravs de Herana Algumas camadas so implementadas como classes base As camadas mais altas herdam a implementao das camadas mais baixas Comum em sistemas orientados a objetos
Junho/2003 Arquitetura em Camadas
Estudo de Caso
Interface com Usurio
Botes
Aplicao
Base de Dados Fsica
Junho/2003
Processamento Controle Central Tomada de deciso: subir, descer, abrir a porta, ... Armazena dados: Base de Dados onde est cada elevador, andares com chamadas, chamadas por elevador Sistema Operacional Fsica Movimento elevadores Arquitetura em Camadas
Estudo de Caso
Botes Andar Botes Elevador Controle Central Boto Andar Boto Elevador
Chamada em algum andar (sobe/desce) Solicita movimentao para algum andar Processamento Deciso: subir, descer, abrir a porta, ... Andar(andar, sobe, desce) Local(elev, andar) Elev(elev, chama_andar) Interface nica (fachada) Sistema Operacional Movimento elevadores
I_CC Controle Central I_BD Base de Dados Andar Elev I_Fsica Fsica Elev1 ... Elevn
Junho/2003 Arquitetura em Camadas
Local
Estudo de Caso
Boto Andar Boto Elevador
Boto Andar 7: descer Boto Elev. 3: chamada p/ andar 6 Consulta BD: onde est cada elevador, onde est elevador 3. Tomada de deciso (movimentao, atualizao BD)
I_BD
Andar Elev I_Fsica Elev1 ... Elevn
Junho/2003
Local
Movimentao elev. 3 para o andar 6 Abertura / Fechamento da porta Movimentao elev. 3 para o andar 7 Abertura / Fechamento da porta
Arquitetura em Camadas
Concluses
Facilidade da diviso do trabalho Suporte ao desenvolvimento e testes incrementais Reutilizao de camadas Possibilidade de padronizao de interfaces Manutenibilidade
Portabilidade
Algumas mudanas se propagam para as outras camadas Menor eficincia Nem todos os sistemas so facilmente divididos em camadas Difcil encontrar nveis de abstrao corretos
Testabilidade
Junho/2003 Arquitetura em Camadas
Bibliografia
DIJKSTRA, E. The structure of the the-multiprogramming system. Proc. ACM symposium on Operating System Principles, January 1967
BUCHSMANN, F. et. al. A System of Patterns Pattern-Oriented Software Architecture. 1996. p. 31-51.
MARTINS, E. Projeto Arqutitetural. Transparncias do curso MO409, IC-Unicamp, 2003.
KAZMAN, R., KLEIN, M. Attribute-Based Architectural Styles. 2000. Disponvel em: http://www.sei.cmu.edu/ata/symposium00/Symposium_ABAS/index.ht m. Acesso em 21 mai. 2003. CLEMENTS, P., NORTHROP, L. Software Architecture: An Executive Overview. Relatrio Tcnico CMU/SEI-96-TR-003, fev/1996.
Junho/2003 Arquitetura em Camadas
Bibliografia
BREDEMEYER CONSULTING. Introducion to Software Architecture. 2002. Disponvel em: http://www.bredemeyer.com/pdf_files/ArchitectureIntroduction.PDF. Acesso em 19 mai. 2003. BACHMAN, F., et. al. Software Architecture Documentation in Practice: Documenting Architectural Layers. Relatrio Especial CMU/SEI-2000-SR-004, mar/2000. SOMMERVILLE, I. Engenharia de Software 6a Edio Addison Wesley, 2003. p. 188-189. SMARTDRAW. SmartDraw. http://www.smartdraw.com/specials/ softdesign.asp?id=15390. Acesso em jun. 2003
Junho/2003 Arquitetura em Camadas