Projeto
Rafael Duarte
Alexandre Mota
[rmd, acm]@cin.ufpe.br
Roteiro
 Contexto
 Projeto
 Refinando o modelo de análise
 Classes
 Arquitetura
 Pacotes
09/12/2004
2
Contexto
 Após a etapa de análise temos um
primeiro modelo do sistema
 Queremos agora melhorar esse
modelo, a ponto de gerarmos
facilmente a implementação do
sistema
 Este modelo é chamado de modelo de
Projeto
09/12/2004
3
Contexto
Requisitos
09/12/2004
Análise
Projeto
4
Análise X Projeto
 Abstrato X Concreto
 Independente X dependente da
tecnologia de implementação
 Simples X detalhado
 Modelos por caso de uso X unificação
em um único modelo
09/12/2004
5
Atividades - Projeto
 Refinar o modelo de classes
 Projetar arquitetura
 Camadas
 Separação em pacotes
 Projetar Banco de Dados
09/12/2004
6
Refinar o modelo de classes
 Juntar todas as classes em um só
diagrama
 Analisar se é necessário criar novas
classes ou remover classes existentes
 Eliminar os estereótipos de análise
 Adicionar modificadores de
visibilidade aos métodos e atributos
 Definir os tipos dos atributos
09/12/2004
7
Exemplo – Análise login
09/12/2004
8
Exemplo – Análise adicionar aluno
09/12/2004
9
Exemplo – diagrama único
09/12/2004
10
Refinar o modelo de classes
 Detalhar assinatura dos métodos
 definir todos os parâmetros dos
métodos, seu tipos e o tipo de retorno
dos métodos
 Mapear associações em atributos*
 Analisar a possibilidade de utilizar
herança
09/12/2004
11
Exemplo – diagrama melhorado
09/12/2004
12
Refinar o modelo de classes
 Identificar padrões de projeto
 Fachada
 Revisar as classes
09/12/2004
13
Padrões
Fachada
Singleton
09/12/2004
14
Projetar arquitetura
 Dividir o sistema em camadas
 Arquitetura bem comum:
Apresentação
Interface com o usuário
Comunicação
Comunicação entre
apresentação e negócio e
com outros sistemas
Negócio
Regras de negócio inerentes
à aplicação
Dados
09/12/2004
Código relacionado ao mecanismo
de persistência utilizado
15
Projetar Arquitetura
 Por que dividir em camadas?
 Aumentar modularidade
 Diminuir dependências
 Facilitar possível troca de camadas
09/12/2004
16
Apresentação
Camadas
Negócio
Comunicação
Dados
09/12/2004
17
Divisão do sistema em pacotes
 Agrupar classes em pacotes
 Possíveis critérios:
 Camadas
 Lógica do sistema
 Critérios escolhidos devem minimizar
a dependência entre os pacotes
 Criar um diagrama de pacotes
indicando as dependências entre os
pacotes
09/12/2004
18
Pacotes
Indicação do pacote
da classe
09/12/2004
19
Pacotes
gui
comunicacao
09/12/2004
negocio
dados
20
Referências
 The Unified Software Development
Process - Jacobson, Rumbaugh,
Booch
 The UML Reference Manual Rumbaugh, Jacobson, Booch
09/12/2004
21
Download

a5 - Projeto