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

Modelo de Camadas

  • 1.
    Modelo de Camadas Prof.ªKecia Aline Marques Ferreira 2009 Kecia A. M. Ferreira 1
  • 2.
    Estruturação de Camadasde Software Kecia A. M. Ferreira 2
  • 3.
    Estruturação de Camadasde 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 QuatroCamadas 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 Camadapara Uma Classe Kecia A. M. Ferreira 13
  • 14.
    Identificação de UmaCamada 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 UmaCamada 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 aorganizaçã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, ScottW., Análise e Projeto Orientado a Objeto. Volume 2, IBPI Press, Livraria e Editora Infobook AS, 1988. Kecia A. M. Ferreira 18