Upload
naderson-omari
View
80
Download
0
Embed Size (px)
Citation preview
Arquitetura em CamadasDisciplina: Engenharia de Software I Professora: Eliane Martins
Camila R. Rocha Slvia C. M. Soares
RA: 022247 RA: 012895
Agenda Introduo Caractersticas do Modelo Notao Ferramentas Decomposio Passo a Passo Domnio de Aplicao Variaes do Modelo Estudo de Caso Concluses BibliografiaArquitetura 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 FsicoJunho/2003
SGBD Sist. Controle de Verses Sist. Controle de Objetos Banco de Dados Sistema OperacionalArquitetura 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
O acesso aos servios pode ser realizado de duas maneiras: Direto (componentes chamam componentes de outras camadas) Atravs de uma interface nica para toda a camada
Controle centralizado Hierrquico (call return)
Decomposio modular Suporte a ambos os modelos: orientado a objetos e funcionalJunho/2003 Arquitetura em Camadas
Notao PilhaA B
Anel
A
UML - PacotesB
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
Decomposio Passo a Passo1. Definir o critrio de abstrao para o agrupamento de tarefas em uma mesma camada 2. Determinar o nmero de camadas 3. Nomear e definir as responsabilidades de cada camada 4. Especificar os servios 5. Refinar as camadas 6. Especificar a interface de cada camada 7. Estruturar internamente as camadas 8. Especificar uma estratgia de tratamento de errosJunho/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;
APIs (Application Programming Interface); Sistemas com acesso a banco de dados: Cliente Servidor, Trs Camadas, Web.Junho/2003 Arquitetura em Camadas
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 objetosJunho/2003 Arquitetura em Camadas
Estudo de CasoInterface com Usurio
Botes
Chamada em algum andar (sobe/desce) Solicita movimentao para algum andar
AplicaoBase 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 CasoBotes Andar Botes Elevador Controle Central Boto Andar Boto ElevadorChamada 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 ... ElevnJunho/2003 Arquitetura em Camadas
Local
Estudo de CasoBoto Andar Boto ElevadorBoto 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_CC Controle Central
I_BDAndar Elev I_Fsica Elev1 ... ElevnJunho/2003
Local
Andar(7, 0, 1) Andar(7, 0, 1) Andar(0, 0, 0) Local(3, 4) Local(3, 6) Local(3, 7) Elev(3, 6) Elev(3, 0) Elev(3, 0)
Movimentao elev. 3 para o andar 6 Abertura / Fechamento da porta Movimentao elev. 3 para o andar 7 Abertura / Fechamento da portaArquitetura 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
TestabilidadeJunho/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. 2003Junho/2003 Arquitetura em Camadas