Você está na página 1de 15

Arquitetura em Camadas

Disciplina: 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 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

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 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

Decomposio Passo a Passo


1. 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 erros
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;

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 objetos
Junho/2003 Arquitetura em Camadas

Estudo de Caso
Interface com Usurio

Botes

Chamada em algum andar (sobe/desce) Solicita movimentao para algum andar

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_CC Controle Central

I_BD
Andar Elev I_Fsica Elev1 ... Elevn
Junho/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 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