Engenharia de Software e Sistemas
Allan Araujo e César Delmas
Agenda
1. Introdução/Motivação
2. Diagrama de Casos de Uso
3. Diagrama de Classes (Análise)
4. Diagrama de Sequência
5. Exercícios
Introdução – The Chaos
Report
Introdução – Imaturidade
Motivação
 Desenvolver sistemas de alta qualidade,
respeitando as restrições de tempo e
custo, e atendendo aos requisitos
implícitos e explícitos do Cliente.
 Utilizar as melhores práticas de
desenvolvimento de sistemas,
aumentando as chances de Sucesso.
 Executar processos que colaborem entre
si para a conclusão do Projeto.
Processo em ESS
 Modelo de Ciclo de Vida em Cascata
Concepção
Requisitos
UML
Análise
Projeto
Implementação
Testes
REQUISITOS
Diagrama de Casos de
Uso
 Diagrama de Casos de Uso



Descreve a interação com atores como uma
seqüência de mensagens;
Representa uma das possíveis visões
dinâmicas do sistema;
Elementos
 Atores;
 Casos de Uso;
 Relacionamentos.
Diagrama de Casos de
Uso
Diagrama de Casos de
Uso - Relacionamentos
Aluno
Matricular
Diagrama de Casos de
Uso - Exemplo
 [UC 01]: Cadastrar Produto
Ator
CadastrarProduto
<<include>>
EfetuarLogin
Diagrama de Casos de Uso Exemplo
 [UC 01]: Cadastrar Produto

Fluxo Principal
 <<include>> [UC 02: Efetuar Login]
 O ator preenche todas informações necessárias
ao novo produto e confirma a operação;
 O sistema verifica se o produto não existe. Caso
não, o produto é adicionado ao sistema;
 O ator é informado do sucesso da informação.

Fluxo Alternativo: Produto Existente
 [Passo 3 do FP]: Se acusar que o produto já
existe, o ator é informado, e dessa forma, não
pode ser adicionado novamente.
Diagrama de Casos de Uso Exemplo
 [UC 02]: Efetuar Login

Fluxo Principal
 O ator preenche as informações necessárias
(login/senha, por exemplo) e confirma a transação;
 O sistema verifica a existência de um usuário com
aquele respectivo conjunto de informações. Caso
exista, o ator tem acesso à tela principal do
sistema.

Fluxo Alternativo: Usuário Inexistente
 [Passo 2 do FP]: Se não existir um usuário com
tais informações, o ator é informado do erro e da
impossibilidade de obter acesso ao sistema.
Análise
Diagrama de Classes Análise
 A atividade de análise procura descrever o
problema sob o ponto de vista estático do
sistema.
 Cada caso de uso deve ser analisado
isoladamente.
 Encontrar as classes iniciais do sistema, e
distribuir o comportamento dos casos de
uso entre elas. Cada classe tem suas
responsabilidades, atributos e
associações.
Diagrama de Classes Análise
 Para cada caso de uso:


Encontrar classes de análise
Identificar persistências
 Para cada classe:



Distribuir comportamento entre elas
Descrever responsabilidades
Descrever atributos e associações
 Revisar resultados.
Diagrama de Classes Análise
 O comportamento do caso de uso é
distribuído em classes de análise dos
seguintes tipos (estereótipos):



Fronteira
Controle
Entidade
 Utilizado apenas como convenções,
devem sumir na fase de projeto.
Diagrama de Classes –
Análise – Exemplo
 Fronteira: Modelam uma interação entre o
sistema e um agente interno (atores,
componentes, etc.)
CadastrarProduto
Ator
<<include>>
<<boundary>>
FronteiraCadastrarProduto
EfetuarLogin
[UC 01]
<<boundary>>
FronteiraLogin
[UC 02]
Diagrama de Classes –
Análise – Exemplo
 Entidades: Representam abstrações e
conceitos chave dos casos de uso.
 Identificando Entidades: Utilizar os fluxos
e:




Identificar substantivos no fluxo de eventos;
Remover candidatos redundantes e vagos;
Remover atores que apenas interagem com o
sistema mas não fazem parte da modelagem;
Remover atributos (serão usados mais tarde)
e operações.
Diagrama de Classes –
Análise – Exemplo
 Entidades:

[UC 01]: Cadastrar Produto
<<entity>>
EntidadeAtor

<<entity>>
EntidadeProduto
[UC 02]: Efetuar Login
<<entity>>
EntidadeAtor
Diagrama de Classes –
Análise – Exemplo
 Controle:


Coordenam o comportamento (lógica de
controle) do caso de uso. Sendo, dependente
do caso de uso, independente do ambiente;
Interface entre fronteira e entidade.
<<control>>
ControladorLogin
Ator
CadastrarProduto
<<include>>
<<control>>
ControladorCadastrarProduto
EfetuarLogin
Diagrama de Classes –
Análise – Exemplo
 Persistência: Identificar as classes de
análise que devem ser persistentes,
criado << Entity Collection >>:

[UC 01]: Cadastrar Produto
<<entity collection>>
ColecaoAtor

<<entity>>
EntidadeAtor
<<entity>>
EntidadeProduto
[UC 02]: Efetuar Login
<<entity>>
EntidadeAtor
<<entity collection>>
ColecaoAtor
<<entity collection>>
ColecaoProdutos
Diagrama de Seqüências
 É utilizado para representar aspectos
dinâmicos do sistema através da troca de
mensagens entre objetos.
 É construído para cada caso de uso,
utilizando seu respectivo fluxo de evento e
classes de análise.
 Os objetos trocam mensagens entre si
para assim, realizar o caso de uso.
Diagrama de Seqüências
 [UC 01: Cadastrar Produto]
Diagrama de Seqüências
 [UC 02: Efetuar Login]
Poderia reportar um erro também!
Diagrama de Classes –
Análise – Exemplo
 Montando os relacionamentos e atributos:
[UC 01]
[UC 02]
<<boundary>>
<<boundary>>
FronteiraLogin
FronteiraCadastrarProduto
<<control>>
ControladorLogin
<<entity>>
<<entity collection>>
EntidadeAtor
ColeçãoAtor

<<control>>
ControladorCadastrarProduto
<<entity collection>>
<<entity>>
ColeçãoProduto
EntidadeProduto
Evidentemente, faltam mostrar os métodos (mensagens) e
atributos que ajudam a formar os relacionamentos e trocas de
mensagens entre os objetos!
Diagrama de Classes –
Análise – Exemplo
 Finalmente:

Resta apenas conferir e revisar se o modelo acima descreve a
realização de todos os casos de uso solicitados neste exemplo.
E Agora?
 Temos um modelo de análise, que nos permitiu
entender o problema em termos de orientação a
objetos;
 Descobrimos erros prematuramente (o custo por
erro descoberto cresce exponencialmente ao
longo do projeto);
 Temos um artefato escrito numa linguagem
padrão e comum, que todos podem entender;
 Caminhamos a passos largos para obter o
modelo de implementação (o diagrama de
classes final), após a fase de projeto, onde
definimos a arquitetura do sistema.
Perguntas
Download

analiseEProjetoMonitoria