Arquitetura em Camadas
Disciplina: Engenharia de Software I
Professora: Eliane Martins
Camila R. Rocha
RA: 022247
Sílvia C. M. Soares
RA: 012895
Agenda










Introdução
Características do Modelo
Notação
Ferramentas
Decomposição Passo a Passo
Domínio de Aplicação
Variações do Modelo
Estudo de Caso
Conclusões
Bibliografia
Junho/2003
Arquitetura em Camadas
Introdução
 Inicialmente proposto por Dijkstra, em 1968
 Divisão do sistema hierarquicamente em camadas
 Exemplos
PROTOCOLO OSI
SGBD
Aplicação
Apresentação
Sessão
Transporte
Enlace
Físico
Sist. Controle de Versões
Junho/2003
Sist. Controle de Objetos
Banco de Dados
Sistema Operacional
Arquitetura em Camadas
Características do Modelo
 Cada camada é um subsistema
 Oferece serviços à camada imediatamente superior
 Serve de cliente para a camada imediatamente inferior
 Composta por componentes que tenham o mesmo nível de
abstração
 O acesso aos serviços pode ser realizado de duas maneiras:
 Direto (componentes chamam componentes de outras camadas)
 Através de uma interface única para toda a camada
 Controle centralizado
 Hierárquico (call return)
 Decomposição modular
 Suporte a ambos os modelos: orientado a objetos e funcional
Junho/2003
Arquitetura em Camadas
Notação
 Pilha
 Anel
A
B
A
 UML - Pacotes
B
Junho/2003
Arquitetura em Camadas
Ferramentas
 Ferramentas para Análise Estruturada
 Exemplos:
Sybase PowerBuilder
SmartDraw
 Ferramentas OO
 Exemplos:
Rational Rose
Microsoft Visio
Junho/2003
Arquitetura em Camadas
Decomposição Passo a Passo
1. Definir o critério de abstração para o agrupamento de
tarefas em uma mesma camada
2. Determinar o número de camadas
3. Nomear e definir as responsabilidades de cada camada
4. Especificar os serviços
5. Refinar as camadas
6. Especificar a interface de cada camada
7. Estruturar internamente as camadas
8. Especificar uma estratégia de tratamento de erros
Junho/2003
Arquitetura em Camadas
Domínio de aplicação
 Aplicações que podem ser decompostas em grupos de subtarefas, onde cada grupo pertence a um nível particular de
abstração. Protocolos de rede são os melhores exemplos;
 Máquinas Virtuais;
 APIs (Application Programming Interface);
 Sistemas com acesso a banco de dados:
 Cliente Servidor, Três Camadas, Web.
Junho/2003
Arquitetura em Camadas
Variações do Modelo
 Sistema de Camadas Relaxadas
 Cada camada pode usar os serviços de todas as
camadas abaixo dela
 Camadas Através de Herança
 Algumas camadas são implementadas como classes
base
 As camadas mais altas herdam a implementação das
camadas mais baixas
 Comum em sistemas orientados a objetos
Junho/2003
Arquitetura em Camadas
Estudo de Caso
Interface com
Usuário
Aplicação
Base de Dados
Física
Junho/2003
Botões
Chamada em algum
andar (sobe/desce)
 Solicita movimentação
para algum andar
 Processamento
Controle Central  Tomada de decisão:
 subir, descer, abrir
a porta, ...
 Armazena dados:
Base de Dados
 onde está cada
elevador, andares
com chamadas,
chamadas por
elevador
 Sistema Operacional
Física
 Movimento elevadores
Arquitetura em Camadas
Estudo de Caso
Botões Andar
Botões Elevador
Botão
Andar
Botão
Elevador
I_CC
Controle Central
Controle Central
I_BD
Base de Dados
Andar
Local
Elev
I_Física
Física
Elev1 ... Elevn
Junho/2003
Arquitetura em Camadas
Chamada em algum
andar (sobe/desce)
 Solicita movimentação
para algum andar
 Processamento
 Decisão: subir, descer,
abrir a porta, ...
 Andar(andar, sobe, desce)
 Local(elev, andar)
 Elev(elev, chama_andar)
Interface única
(fachada)
Sistema Operacional
 Movimento elevadores
Estudo de Caso
Botão
Andar
Botão
Elevador
I_CC
Controle Central
I_BD
Andar
Local
Botão Andar 7: descer
Botão Elev. 3: chamada p/ andar 6
Consulta BD: onde está cada elevador, onde
está elevador 3.
Tomada de decisão (movimentação, atualização BD)
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)
Elev
I_Física
Elev1 ... Elevn
Junho/2003
Movimentação elev. 3 para o andar 6
Abertura / Fechamento da porta
Movimentação elev. 3 para o andar 7
Abertura / Fechamento da porta
Arquitetura em Camadas
Conclusões
 Facilidade da divisão do
trabalho
 Suporte ao desenvolvimento
e testes incrementais
 Reutilização de camadas
 Possibilidade de
padronização de interfaces
 Manutenibilidade
 Portabilidade
 Algumas mudanças se
propagam para as outras
camadas
 Menor eficiência
 Nem todos os sistemas são
facilmente divididos em
camadas
 Difícil encontrar níveis de
abstração 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. Transparências do curso MO409,
IC-Unicamp, 2003.
 KAZMAN, R., KLEIN, M. Attribute-Based Architectural Styles. 2000.
Disponível 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. Relatório Técnico CMU/SEI-96-TR-003, fev/1996.
Junho/2003
Arquitetura em Camadas
Bibliografia
 BREDEMEYER CONSULTING. Introducion to Software
Architecture. 2002. Disponível 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. Relatório Especial
CMU/SEI-2000-SR-004, mar/2000.
 SOMMERVILLE, I. Engenharia de Software – 6a Edição – 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
Download

Camadas