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