Modelo de Anlise e Projeto Luiz Felipe Librio
Modelo de Análise e Projeto Luiz Felipe Libório lfol@cin. ufpe. br
Contexto �Documento de Requisitos �Modelo de Casos de Uso ◦ Precisamos converter os casos de uso especificados em um modelo de sistema.
Análise
Análise - Objetivos � Encontrar as classes iniciais do sistema (classes de análise) e distribuir comportamento dos casos de uso entre elas; � Para cada classe, descrever as responsabilidades, atributos e relacionamentos
Análise - Fases � Para cada caso de uso: ◦ Encontrar classes de análise ◦ Identificar persistência � Para cada classe: ◦ Distribuir comportamento entre as classes ◦ Descrever responsabilidades ◦ Descrever atributos e associações � Revisar os Resultados
Identificando as Classes � As classes são identificadas baseadas na separação em três tipos: ◦ Fronteira; �Representa a interface de um ator com o caso de uso. �Esteriótipo: <<boundary>> ◦ Entidade; �Representa as informações que são manipuladas pelo sistema, que podem ser persistentes ou não. �Esteriótipo: <<entity>> ◦ Controle; �Representa o controle do fluxo de eventos do caso de uso; �Esteriótipo: <<control>>
Identificar Persistência � Se houver a necessidade de persistência de alguma informação, é criada uma nova classe de análise, que representa um conjunto de entidades. � Esteriótipo: <<entity collection>>
Diagramas de Interação � Diagramas de interação (colaboração e seqüência) modelam interações do sistema com seus atores; �A interação é iniciada por um ator e envolve instâncias (objetos) das classes; � Diagramas de interação capturam a semântica do fluxo de eventos do caso de uso ◦ Auxiliam a identificar classes, responsabilidades e relacionamentos;
Exemplo: Efetuar Login [UC-01] Efetuar Login Usuários: Cliente Entradas: Login do cliente, senha do cliente Pré-condições: Nenhuma Pós-condições: Um usuário válido é logado e sua sessão é registrada no sistema. Fluxo Principal: 1. O cliente informa login e senha. 2. O sistema verifica se o login e a senha são válidos (verifica se o login e senha pertencem a uma conta). 3. O sistema registra o início de uma sessão de uso. Sub-Fluxos: - No passo 2, se o login ou a senha forem inválidos, o sistema exibe uma mensagem e volta ao passo 1.
Exemplo: Efetuar Login �Classes de Análise
Exemplo: Efetuar Login �Diagrama de Sequência
Exemplo: Efetuar Login �Diagrama de Colaboração
Descrever Responsabilidades � Baseado no diagrama de sequência (ou de colaboração), são identificadas as responsabilidades das classes.
Descrever Atributos � Os atributos das classes são identificados, sem especificar tipos.
Identificar Relacionamentos � Identifica como as classes estão relacionadas dentro do contexto do caso de uso.
Projeto
Objetivo e Fases � Melhoramento do modelo de análise, com o objetivo de gerar facilmente o modelo da implementação do sistema. � Fases: ◦ Refinar o modelo de classes; ◦ Projetar a Arquitetura; ◦ Dividir o sistema em pacotes;
Refinar o Modelo de Classes � Eliminar � Mapear associações em atributos; � Analisar � Definir os estereótipos de análise; a possibilidade de utilizar herança; os tipos dos atributos; � Adicionar atributos; � Detalhar modificadores de visibilidade aos métodos e assinatura dos métodos ◦ definir todos os parâmetros dos métodos, seu tipos e o tipo de retorno dos métodos
Exemplo: Efetuar Login
Refinar o Modelo de Classes � Analisar se é necessário criar novas classes ou remover classes existentes; � Juntar todas as classes em um só diagrama; � Identificar padrões de projeto ◦ Ex: Fachada � Revisar as classes;
Projetar a Arquitetura � Maneira mais comum: dividir o sistema em camadas. ◦ Modularidade; ◦ Dimunição de Dependências; ◦ Facilidade de troca de camadas;
Arquitetura em Camadas Interface Comunicação Negócio Dados
Dividir o sistema em pacotes � Agrupar critério: as classes em pacotes, baseados em algum ◦ Camadas; ◦ Lógica do sistema; ◦ Subsistemas.
Dividir o sistema em pacotes
PRÁTICA �Ferramenta: ◦ JUDE �Java and UML Developer Environment �Exercício: ◦ Analisar e Projetar os casos de uso “Comprar Ações” e “Efetuar Pagamento do QIB Card”
Referências � Engenharia de Software ◦ www. cin. ufpe. br/~if 682 e Sistemas – IF 682 � Análise e Projeto de Sistemas ◦ www. cin. ufpe. br/~if 718 – IF 718
- Slides: 26