SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Modelo de Camadas

Prof.ª Kecia Aline Marques Ferreira
2009



                   Kecia A. M. Ferreira   1
Estruturação de Camadas de Software




              Kecia A. M. Ferreira    2
Estruturação de Camadas de
Software



 Modelo de camadas
 Identificação de uma camada para uma classe
 Benefícios




                         Kecia A. M. Ferreira   3
Modelo de Camadas




         Kecia A. M. Ferreira   4
Modelo de Camadas
 O Modelo de Camadas provê uma forma de se estruturar o software de
 maneira que classes com propósitos semelhantes sejam agrupadas em
 uma mesma camada.

 Camada: encapsula as funcionalidades de um conjunto de classes que
 têm comportamento similar.

 Camadas disciplinam a direção do fluxo de mensagens entre certos
 tipos de classes.

 Dentro de uma camada, a troca de mensagens entre suas classes
 pode ocorrer livremente.




                            Kecia A. M. Ferreira                    5
Modelo de Quatro Camadas




                Kecia A. M. Ferreira   6
Camada de Interface
 A Camada de Interface agrupa as classes que têm por propósito
 implementar interação como o usuário.

 Mensagens fluem apenas da Camada de Interface para a Camada de
 Negócios, e o contrário não é permitido.

 Benefício: mudanças na interface não afetam a Camada de Negócios.




                            Kecia A. M. Ferreira                     7
Camada de Negócios
 A Camada de Negócios agrupa as classes que modelam o
 domínio do problema.

 Encapsula as funcionalidades da aplicação, sem se preocupar
 com interfaces de usuário e persistência de dados.

 O fluxo de mensagens é da Camada de Negócios para a
 Camada de Persistência.




                         Kecia A. M. Ferreira                  8
Camada de Persistência
 A Camada de Persistência agrupa classes que têm por finalidade
 prover criação, remoção, alteração e recuperação de dados
 persistentes.

 Não é o próprio mecanismo de persistência (banco de dados ou
 arquivo), mas um front-end que empacota o acesso a ele.

 O fluxo de mensagem é da Camada de Negócio para a Camada de
 Persistência.

 Benefício: torna possível realizar alterações na forma de persistência
 de dados sem impacto para o restante do sistema.


                              Kecia A. M. Ferreira                        9
Camada de Sistema
 Classes da camada de sistema fornecem acesso aos recursos
 do sistema, tais como:
    sistema operacional;
   componentes de hardware;
   componentes de comunicação.

 Benefício: empacotar as funcionalidades de sistema aumenta a
 portabilidade do software para vários ambientes.




                         Kecia A. M. Ferreira                   10
Camada de Sistema
 Camada de Sistema mantém comunicação com todas as demais
 camadas do sistema. Tais comunicações têm as seguintes
 características:

   Camada de Interface: a troca de mensagens deve ser rara, para
   garantir maior portabilidade.

   Camada de Negócio:o fluxo de mensagem é ocasional.

   Camada de Persistência: o fluxo de mensagem é frequente, pois
   a camada de persistência necessita, para a maioria de suas
   funcionalidades, solicitar serviços da Camada de Sistema, tais
   como aqueles relacionados à manipulação de arquivos, acesso a
   rede, etc.


                          Kecia A. M. Ferreira                 11
Camada de Sistema
 O fluxo de mensagens da camada de sistema com as demais é
 bi-direcional.

 Mensagens podem partir da Camada de Sistema no caso de
 métodos de rechamada.

 Métodos de rechamada: quando um método A estabelece
 comunicação com um outro método B e solicita que no futuro B
 envie uma mensagem M sempre que um certo evento ocorrer, o
 método B é dito método de rechamada.



                         Kecia A. M. Ferreira              12
Identificação de Uma
Camada para Uma Classe



         Kecia A. M. Ferreira   13
Identificação de Uma Camada para Uma
Classe
Camada de   Devem ser incluídas nesta camada as classe que:
Interface    representam ou controlam uma janela, um formulário ou
            qualquer outra interface com usuário;
             representam um relatório.



Camada de   Fazem parte desta camada as classes que:
Negócios      implementam um conceito do negócio da aplicação;
             foram descritas pelos usuários do sistema.




                       Kecia A. M. Ferreira                          14
Identificação de Uma Camada para Uma
Classe
Camada de           As classes incluídas nesta camada devem prover
Persistência        a criação, a busca, a atualização ou a remoção de
                    dados em um mecanismo de persistência, como
                    um arquivo ou banco de dados.


Camada de Sistema   Deve-se verificar se a classe a ser incluída nesta
                    camada:
                     esquematiza funcionalidade específica do sistema
                    operacional;
                     empacota acesso a outro sistema ou aplicação;
                     pode ser desenvolvida sem informações
                    provenientes dos usuários do sistema;
                     necessitaria alteração caso o sistema operacional
                    mude.

                          Kecia A. M. Ferreira                           15
Benefícios




             Kecia A. M. Ferreira   16
Benefícios
 Permite a organização dos esforços de desenvolvimento por
 camadas. Um grupo de desenvolvedores pode trabalhar em uma
 camada de forma independente dos outros grupos. Isso elimina
 a necessidade de se ter uma parte do sistema concluída para
 que a outra possa ser desenvolvida.

 Favorece modularidade e manutenibilidade, uma vez que
 disciplina e reduz o número de conexões entre as classes de
 camadas diferentes.




                         Kecia A. M. Ferreira              17
Bibliografia
 AMBLER, Scott W., Análise e Projeto Orientado a Objeto. Volume 2,
 IBPI Press, Livraria e Editora Infobook AS, 1988.




                            Kecia A. M. Ferreira                     18

Mais conteúdo relacionado

Mais procurados

Arquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidosArquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidosPortal_do_Estudante_SD
 
Sistemas Distribuídos - Modelos Arquitetônicos
Sistemas Distribuídos - Modelos ArquitetônicosSistemas Distribuídos - Modelos Arquitetônicos
Sistemas Distribuídos - Modelos ArquitetônicosJoão Werther Filho IT
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivoelliando dias
 
Relatório geral pi
Relatório geral piRelatório geral pi
Relatório geral piredesinforma
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Arthur Emanuel
 
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídosAula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídosMessias Batista
 
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Messias Batista
 
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosAula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosMessias Batista
 
Trabalho camadas final+ (1)
Trabalho camadas final+ (1)Trabalho camadas final+ (1)
Trabalho camadas final+ (1)sampaio0612
 
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...Dalton Valadares
 
Front Controller & Presentation-Abstract-contrll
Front Controller & Presentation-Abstract-contrllFront Controller & Presentation-Abstract-contrll
Front Controller & Presentation-Abstract-contrllMárcio Habigzang Brufatto
 
Aula diagramas de implementacao 3º periodo uniao
Aula diagramas de implementacao 3º periodo uniaoAula diagramas de implementacao 3º periodo uniao
Aula diagramas de implementacao 3º periodo uniaoMaria Alice Jovinski
 

Mais procurados (20)

Sis avionico
Sis avionicoSis avionico
Sis avionico
 
Arquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidosArquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidos
 
Camadas
CamadasCamadas
Camadas
 
Sistemas Distribuídos - Modelos Arquitetônicos
Sistemas Distribuídos - Modelos ArquitetônicosSistemas Distribuídos - Modelos Arquitetônicos
Sistemas Distribuídos - Modelos Arquitetônicos
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivo
 
Relatório geral pi
Relatório geral piRelatório geral pi
Relatório geral pi
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02
 
Introducao.2s
Introducao.2sIntroducao.2s
Introducao.2s
 
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídosAula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
 
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
 
Diagramas de pacotes
Diagramas de pacotesDiagramas de pacotes
Diagramas de pacotes
 
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosAula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
 
Middlewares
MiddlewaresMiddlewares
Middlewares
 
Protocolos logicos de_comunicacao
Protocolos logicos de_comunicacaoProtocolos logicos de_comunicacao
Protocolos logicos de_comunicacao
 
Trabalho camadas final+ (1)
Trabalho camadas final+ (1)Trabalho camadas final+ (1)
Trabalho camadas final+ (1)
 
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
 
Front Controller & Presentation-Abstract-contrll
Front Controller & Presentation-Abstract-contrllFront Controller & Presentation-Abstract-contrll
Front Controller & Presentation-Abstract-contrll
 
Lucas e pedro1
Lucas e pedro1Lucas e pedro1
Lucas e pedro1
 
Modelagem 16102006
Modelagem 16102006Modelagem 16102006
Modelagem 16102006
 
Aula diagramas de implementacao 3º periodo uniao
Aula diagramas de implementacao 3º periodo uniaoAula diagramas de implementacao 3º periodo uniao
Aula diagramas de implementacao 3º periodo uniao
 

Destaque

Sistemas Operacionais aula 01
Sistemas Operacionais aula 01Sistemas Operacionais aula 01
Sistemas Operacionais aula 01Diego Rodrigues
 
Lógica de programação 1
Lógica de programação 1Lógica de programação 1
Lógica de programação 1Diego Rodrigues
 
Aula - Arquiteturas de aplicações móveis
Aula - Arquiteturas de aplicações móveisAula - Arquiteturas de aplicações móveis
Aula - Arquiteturas de aplicações móveisJanynne Gomes
 
Padrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - CamadasPadrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - CamadasEduardo Nicola F. Zagari
 
Capítulo 3 dados e sinais (1º unidade)
Capítulo 3   dados e sinais (1º unidade)Capítulo 3   dados e sinais (1º unidade)
Capítulo 3 dados e sinais (1º unidade)Faculdade Mater Christi
 
Redes Parte 2 - Ondas, Informação e Sinal
Redes Parte 2 - Ondas, Informação e SinalRedes Parte 2 - Ondas, Informação e Sinal
Redes Parte 2 - Ondas, Informação e SinalRicardo Pinheiro
 

Destaque (7)

Sistemas Operacionais aula 01
Sistemas Operacionais aula 01Sistemas Operacionais aula 01
Sistemas Operacionais aula 01
 
Programação em Camadas - Iniciantes
Programação em Camadas - IniciantesProgramação em Camadas - Iniciantes
Programação em Camadas - Iniciantes
 
Lógica de programação 1
Lógica de programação 1Lógica de programação 1
Lógica de programação 1
 
Aula - Arquiteturas de aplicações móveis
Aula - Arquiteturas de aplicações móveisAula - Arquiteturas de aplicações móveis
Aula - Arquiteturas de aplicações móveis
 
Padrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - CamadasPadrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - Camadas
 
Capítulo 3 dados e sinais (1º unidade)
Capítulo 3   dados e sinais (1º unidade)Capítulo 3   dados e sinais (1º unidade)
Capítulo 3 dados e sinais (1º unidade)
 
Redes Parte 2 - Ondas, Informação e Sinal
Redes Parte 2 - Ondas, Informação e SinalRedes Parte 2 - Ondas, Informação e Sinal
Redes Parte 2 - Ondas, Informação e Sinal
 

Semelhante a Modelo de Camadas

Trabalho camadas final+ (1)
Trabalho camadas final+ (1)Trabalho camadas final+ (1)
Trabalho camadas final+ (1)sampaio0612
 
Construção de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaConstrução de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaFernando Camargo
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Adriano Teixeira de Souza
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosHélio Jovo
 
Icc modelos de osi claudio e mika 8ºh
Icc modelos de osi claudio e mika 8ºhIcc modelos de osi claudio e mika 8ºh
Icc modelos de osi claudio e mika 8ºhFrogFAT
 
Windows 2003 guia_completo
Windows 2003 guia_completoWindows 2003 guia_completo
Windows 2003 guia_completocleanrail
 
Cluster ha com banco de dados
Cluster ha com banco de dadosCluster ha com banco de dados
Cluster ha com banco de dadosMarcio Jonnes
 
Fundamentos_camadas_modelo_osi
Fundamentos_camadas_modelo_osiFundamentos_camadas_modelo_osi
Fundamentos_camadas_modelo_osiMario Alex
 
26 funcao das_camadas_do_modelo_osi
26 funcao das_camadas_do_modelo_osi26 funcao das_camadas_do_modelo_osi
26 funcao das_camadas_do_modelo_osiJobert Abrahão
 
Emacs - Arquitetura E Design Com Foco No Desenv De Plugins
Emacs - Arquitetura E Design Com Foco No Desenv De PluginsEmacs - Arquitetura E Design Com Foco No Desenv De Plugins
Emacs - Arquitetura E Design Com Foco No Desenv De PluginsJosé Martins da Nobrega Filho
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Adriano Teixeira de Souza
 
Unidade 2.5 Introdução ao Compartilhamento
Unidade 2.5 Introdução ao CompartilhamentoUnidade 2.5 Introdução ao Compartilhamento
Unidade 2.5 Introdução ao CompartilhamentoJuan Carlos Lamarão
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxChadidoDiogo1
 

Semelhante a Modelo de Camadas (20)

Trabalho camadas final+ (1)
Trabalho camadas final+ (1)Trabalho camadas final+ (1)
Trabalho camadas final+ (1)
 
Construção de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaConstrução de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em Java
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
 
ICC:
ICC:ICC:
ICC:
 
Apostilaredes
ApostilaredesApostilaredes
Apostilaredes
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidos
 
Icc modelos de osi claudio e mika 8ºh
Icc modelos de osi claudio e mika 8ºhIcc modelos de osi claudio e mika 8ºh
Icc modelos de osi claudio e mika 8ºh
 
Windows 2003 guia_completo
Windows 2003 guia_completoWindows 2003 guia_completo
Windows 2003 guia_completo
 
Cluster ha com banco de dados
Cluster ha com banco de dadosCluster ha com banco de dados
Cluster ha com banco de dados
 
Sld 4
Sld 4Sld 4
Sld 4
 
Fundamentos_camadas_modelo_osi
Fundamentos_camadas_modelo_osiFundamentos_camadas_modelo_osi
Fundamentos_camadas_modelo_osi
 
26 funcao das_camadas_do_modelo_osi
26 funcao das_camadas_do_modelo_osi26 funcao das_camadas_do_modelo_osi
26 funcao das_camadas_do_modelo_osi
 
Emacs - Arquitetura E Design Com Foco No Desenv De Plugins
Emacs - Arquitetura E Design Com Foco No Desenv De PluginsEmacs - Arquitetura E Design Com Foco No Desenv De Plugins
Emacs - Arquitetura E Design Com Foco No Desenv De Plugins
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
 
Unidade 2.5 Introdução ao Compartilhamento
Unidade 2.5 Introdução ao CompartilhamentoUnidade 2.5 Introdução ao Compartilhamento
Unidade 2.5 Introdução ao Compartilhamento
 
Computação de alta performance
Computação de alta performanceComputação de alta performance
Computação de alta performance
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
 
Apostila de-vb-net
Apostila de-vb-netApostila de-vb-net
Apostila de-vb-net
 
Framework Miolo
Framework MioloFramework Miolo
Framework Miolo
 

Mais de Breno Vitorino

Linux: X Window System e Gerenciadores de janelas
Linux: X Window System e Gerenciadores de janelasLinux: X Window System e Gerenciadores de janelas
Linux: X Window System e Gerenciadores de janelasBreno Vitorino
 
Linux: Kernel, Runlevels e Virtualização
Linux: Kernel, Runlevels e VirtualizaçãoLinux: Kernel, Runlevels e Virtualização
Linux: Kernel, Runlevels e VirtualizaçãoBreno Vitorino
 
Linux: Instalação de aplicativos
Linux: Instalação de aplicativosLinux: Instalação de aplicativos
Linux: Instalação de aplicativosBreno Vitorino
 
Introdução ao Software Livre e Linux
Introdução ao Software Livre e LinuxIntrodução ao Software Livre e Linux
Introdução ao Software Livre e LinuxBreno Vitorino
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasBreno Vitorino
 
FSM, vetores e funções em PHP
FSM, vetores e funções em PHPFSM, vetores e funções em PHP
FSM, vetores e funções em PHPBreno Vitorino
 
Validação e Operações CRUD em PHP
Validação e Operações CRUD em PHPValidação e Operações CRUD em PHP
Validação e Operações CRUD em PHPBreno Vitorino
 
Fundamentos de PHP, phpMyAdmin e MySQL (parte 2)
Fundamentos de  PHP, phpMyAdmin e MySQL (parte 2)Fundamentos de  PHP, phpMyAdmin e MySQL (parte 2)
Fundamentos de PHP, phpMyAdmin e MySQL (parte 2)Breno Vitorino
 
Fundamentos de PHP, phpMyAdmin e MySQL (parte 1)
Fundamentos de  PHP, phpMyAdmin e MySQL (parte 1)Fundamentos de  PHP, phpMyAdmin e MySQL (parte 1)
Fundamentos de PHP, phpMyAdmin e MySQL (parte 1)Breno Vitorino
 
Evolução das arquiteturas para aplicações Web
Evolução das arquiteturas para aplicações WebEvolução das arquiteturas para aplicações Web
Evolução das arquiteturas para aplicações WebBreno Vitorino
 
Sistema gerenciador de conteúdo
Sistema gerenciador de conteúdoSistema gerenciador de conteúdo
Sistema gerenciador de conteúdoBreno Vitorino
 
Introdução à Arquitetura Web
Introdução à Arquitetura WebIntrodução à Arquitetura Web
Introdução à Arquitetura WebBreno Vitorino
 
Como criar blogs: WordPress.com
Como criar blogs: WordPress.comComo criar blogs: WordPress.com
Como criar blogs: WordPress.comBreno Vitorino
 
Uma visao geral sobre blogs
Uma visao geral sobre blogsUma visao geral sobre blogs
Uma visao geral sobre blogsBreno Vitorino
 
Arquitetura de aplicações Web 2.0 em Java
Arquitetura de aplicações Web 2.0 em JavaArquitetura de aplicações Web 2.0 em Java
Arquitetura de aplicações Web 2.0 em JavaBreno Vitorino
 

Mais de Breno Vitorino (17)

Linux: X Window System e Gerenciadores de janelas
Linux: X Window System e Gerenciadores de janelasLinux: X Window System e Gerenciadores de janelas
Linux: X Window System e Gerenciadores de janelas
 
Linux: Kernel, Runlevels e Virtualização
Linux: Kernel, Runlevels e VirtualizaçãoLinux: Kernel, Runlevels e Virtualização
Linux: Kernel, Runlevels e Virtualização
 
Linux: Instalação de aplicativos
Linux: Instalação de aplicativosLinux: Instalação de aplicativos
Linux: Instalação de aplicativos
 
Introdução ao Software Livre e Linux
Introdução ao Software Livre e LinuxIntrodução ao Software Livre e Linux
Introdução ao Software Livre e Linux
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e Técnicas
 
Criando seu Blog
Criando seu BlogCriando seu Blog
Criando seu Blog
 
FSM, vetores e funções em PHP
FSM, vetores e funções em PHPFSM, vetores e funções em PHP
FSM, vetores e funções em PHP
 
Validação e Operações CRUD em PHP
Validação e Operações CRUD em PHPValidação e Operações CRUD em PHP
Validação e Operações CRUD em PHP
 
Fundamentos de PHP, phpMyAdmin e MySQL (parte 2)
Fundamentos de  PHP, phpMyAdmin e MySQL (parte 2)Fundamentos de  PHP, phpMyAdmin e MySQL (parte 2)
Fundamentos de PHP, phpMyAdmin e MySQL (parte 2)
 
Fundamentos de PHP, phpMyAdmin e MySQL (parte 1)
Fundamentos de  PHP, phpMyAdmin e MySQL (parte 1)Fundamentos de  PHP, phpMyAdmin e MySQL (parte 1)
Fundamentos de PHP, phpMyAdmin e MySQL (parte 1)
 
Evolução das arquiteturas para aplicações Web
Evolução das arquiteturas para aplicações WebEvolução das arquiteturas para aplicações Web
Evolução das arquiteturas para aplicações Web
 
Introdução ao PHP
Introdução ao PHPIntrodução ao PHP
Introdução ao PHP
 
Sistema gerenciador de conteúdo
Sistema gerenciador de conteúdoSistema gerenciador de conteúdo
Sistema gerenciador de conteúdo
 
Introdução à Arquitetura Web
Introdução à Arquitetura WebIntrodução à Arquitetura Web
Introdução à Arquitetura Web
 
Como criar blogs: WordPress.com
Como criar blogs: WordPress.comComo criar blogs: WordPress.com
Como criar blogs: WordPress.com
 
Uma visao geral sobre blogs
Uma visao geral sobre blogsUma visao geral sobre blogs
Uma visao geral sobre blogs
 
Arquitetura de aplicações Web 2.0 em Java
Arquitetura de aplicações Web 2.0 em JavaArquitetura de aplicações Web 2.0 em Java
Arquitetura de aplicações Web 2.0 em Java
 

Modelo de Camadas

  • 1. Modelo de Camadas Prof.ª Kecia Aline Marques Ferreira 2009 Kecia A. M. Ferreira 1
  • 2. Estruturação de Camadas de Software Kecia A. M. Ferreira 2
  • 3. Estruturação de Camadas de Software Modelo de camadas Identificação de uma camada para uma classe Benefícios Kecia A. M. Ferreira 3
  • 4. Modelo de Camadas Kecia A. M. Ferreira 4
  • 5. Modelo de Camadas O Modelo de Camadas provê uma forma de se estruturar o software de maneira que classes com propósitos semelhantes sejam agrupadas em uma mesma camada. Camada: encapsula as funcionalidades de um conjunto de classes que têm comportamento similar. Camadas disciplinam a direção do fluxo de mensagens entre certos tipos de classes. Dentro de uma camada, a troca de mensagens entre suas classes pode ocorrer livremente. Kecia A. M. Ferreira 5
  • 6. Modelo de Quatro Camadas Kecia A. M. Ferreira 6
  • 7. Camada de Interface A Camada de Interface agrupa as classes que têm por propósito implementar interação como o usuário. Mensagens fluem apenas da Camada de Interface para a Camada de Negócios, e o contrário não é permitido. Benefício: mudanças na interface não afetam a Camada de Negócios. Kecia A. M. Ferreira 7
  • 8. Camada de Negócios A Camada de Negócios agrupa as classes que modelam o domínio do problema. Encapsula as funcionalidades da aplicação, sem se preocupar com interfaces de usuário e persistência de dados. O fluxo de mensagens é da Camada de Negócios para a Camada de Persistência. Kecia A. M. Ferreira 8
  • 9. Camada de Persistência A Camada de Persistência agrupa classes que têm por finalidade prover criação, remoção, alteração e recuperação de dados persistentes. Não é o próprio mecanismo de persistência (banco de dados ou arquivo), mas um front-end que empacota o acesso a ele. O fluxo de mensagem é da Camada de Negócio para a Camada de Persistência. Benefício: torna possível realizar alterações na forma de persistência de dados sem impacto para o restante do sistema. Kecia A. M. Ferreira 9
  • 10. Camada de Sistema Classes da camada de sistema fornecem acesso aos recursos do sistema, tais como: sistema operacional; componentes de hardware; componentes de comunicação. Benefício: empacotar as funcionalidades de sistema aumenta a portabilidade do software para vários ambientes. Kecia A. M. Ferreira 10
  • 11. Camada de Sistema Camada de Sistema mantém comunicação com todas as demais camadas do sistema. Tais comunicações têm as seguintes características: Camada de Interface: a troca de mensagens deve ser rara, para garantir maior portabilidade. Camada de Negócio:o fluxo de mensagem é ocasional. Camada de Persistência: o fluxo de mensagem é frequente, pois a camada de persistência necessita, para a maioria de suas funcionalidades, solicitar serviços da Camada de Sistema, tais como aqueles relacionados à manipulação de arquivos, acesso a rede, etc. Kecia A. M. Ferreira 11
  • 12. Camada de Sistema O fluxo de mensagens da camada de sistema com as demais é bi-direcional. Mensagens podem partir da Camada de Sistema no caso de métodos de rechamada. Métodos de rechamada: quando um método A estabelece comunicação com um outro método B e solicita que no futuro B envie uma mensagem M sempre que um certo evento ocorrer, o método B é dito método de rechamada. Kecia A. M. Ferreira 12
  • 13. Identificação de Uma Camada para Uma Classe Kecia A. M. Ferreira 13
  • 14. Identificação de Uma Camada para Uma Classe Camada de Devem ser incluídas nesta camada as classe que: Interface representam ou controlam uma janela, um formulário ou qualquer outra interface com usuário; representam um relatório. Camada de Fazem parte desta camada as classes que: Negócios implementam um conceito do negócio da aplicação; foram descritas pelos usuários do sistema. Kecia A. M. Ferreira 14
  • 15. Identificação de Uma Camada para Uma Classe Camada de As classes incluídas nesta camada devem prover Persistência a criação, a busca, a atualização ou a remoção de dados em um mecanismo de persistência, como um arquivo ou banco de dados. Camada de Sistema Deve-se verificar se a classe a ser incluída nesta camada: esquematiza funcionalidade específica do sistema operacional; empacota acesso a outro sistema ou aplicação; pode ser desenvolvida sem informações provenientes dos usuários do sistema; necessitaria alteração caso o sistema operacional mude. Kecia A. M. Ferreira 15
  • 16. Benefícios Kecia A. M. Ferreira 16
  • 17. Benefícios Permite a organização dos esforços de desenvolvimento por camadas. Um grupo de desenvolvedores pode trabalhar em uma camada de forma independente dos outros grupos. Isso elimina a necessidade de se ter uma parte do sistema concluída para que a outra possa ser desenvolvida. Favorece modularidade e manutenibilidade, uma vez que disciplina e reduz o número de conexões entre as classes de camadas diferentes. Kecia A. M. Ferreira 17
  • 18. Bibliografia AMBLER, Scott W., Análise e Projeto Orientado a Objeto. Volume 2, IBPI Press, Livraria e Editora Infobook AS, 1988. Kecia A. M. Ferreira 18