Modelo de Camadas

18

Click here to load reader

description

Como organizar seu sistema em camadas para melhor organização do projeto Java.

Transcript of Modelo de Camadas

Page 1: Modelo de Camadas

Modelo de Camadas

Kecia A. M. Ferreira 1

Prof.ª Kecia Aline Marques Ferreira

2009

Page 2: Modelo de Camadas

Kecia A. M. Ferreira 2

Estruturação de Camadas de Software

Page 3: Modelo de Camadas

Estruturação de Camadas de Software

� Modelo de camadas

� Identificação de uma camada para uma classe

Kecia A. M. Ferreira 3

� Identificação de uma camada para uma classe

� Benefícios

Page 4: Modelo de Camadas

Modelo de Camadas

Kecia A. M. Ferreira 4

Page 5: Modelo de Camadas

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.

Kecia A. M. Ferreira 5

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.

Page 6: Modelo de Camadas

Modelo de Quatro Camadas

Kecia A. M. Ferreira 6

Page 7: Modelo de Camadas

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.

Kecia A. M. Ferreira 7

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

Page 8: Modelo de Camadas

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.

Kecia A. M. Ferreira 8

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.

Page 9: Modelo de Camadas

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.

Kecia A. M. Ferreira 9

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.

Page 10: Modelo de Camadas

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.

Kecia A. M. Ferreira 10

� componentes de comunicação.

� Benefício: empacotar as funcionalidades de sistema aumenta a

portabilidade do software para vários ambientes.

Page 11: Modelo de Camadas

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.

Kecia A. M. Ferreira 11

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

Page 12: Modelo de Camadas

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.

Kecia A. M. Ferreira 12

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 Benvie uma mensagem M sempre que um certo evento ocorrer, o

método B é dito método de rechamada.

Page 13: Modelo de Camadas

Identificação de Uma

Kecia A. M. Ferreira 13

Camada para Uma Classe

Page 14: Modelo de Camadas

Identificação de Uma Camada para Uma Classe

Camada de

Interface

Devem ser incluídas nesta camada as classe que:

�representam ou controlam uma janela, um formulário ou qualquer outra interface com usuário;

�representam um relatório.

Kecia A. M. Ferreira 14

Camada de

Negócios

Fazem parte desta camada as classes que:

� implementam um conceito do negócio da aplicação;

�foram descritas pelos usuários do sistema.

Page 15: Modelo de Camadas

Identificação de Uma Camada para Uma Classe

Camada de

Persistência

As classes incluídas nesta camada devem prover

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.

Deve-se verificar se a classe a ser incluída nesta

Kecia A. M. Ferreira 15

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.

Page 16: Modelo de Camadas

Benefícios

Kecia A. M. Ferreira 16

Page 17: Modelo de Camadas

Benefícios

� Permite a organização dos esforços de desenvolvimento por

camadas. Um grupo de desenvolvedores pode trabalhar em umacamada de forma independente dos outros grupos. Isso eliminaa necessidade de se ter uma parte do sistema concluída para

que a outra possa ser desenvolvida.

Kecia A. M. Ferreira 17

� Favorece modularidade e manutenibilidade, uma vez que

disciplina e reduz o número de conexões entre as classes de

camadas diferentes.

Page 18: Modelo de Camadas

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