Modelo de Análise e
Projeto
Luiz Felipe Libório
[email protected]
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 os estereótipos de análise;

Mapear associações em atributos;

Analisar a possibilidade de utilizar herança;

Definir os tipos dos atributos;

Adicionar modificadores de visibilidade aos métodos e
atributos;

Detalhar 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 as classes em pacotes, baseados em algum
critério:
◦ 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 e Sistemas – IF682
◦ www.cin.ufpe.br/~if682

Análise e Projeto de Sistemas – IF718
◦ www.cin.ufpe.br/~if718
Download

MonitoriaAnaliseProjeto