Arquitetura Camadas

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