Elaboração de Diagrama de
Classe a partir de Diagramas
de Caso de Uso
Profa. Priscila Facciolli
Análise e Proj. Sist. Orient.
Objetos
1
Conteúdo
 Realizando Casos de Uso
 Atores
 Casos de Uso
 Atribuindo operações às Classes
 Exercícios
Análise e Proj. Sist.
Orient. Objetos
2
Realizando Casos de Uso
Os Diagramas de Casos de Uso são úteis na
especificação e documentação dos requisitos do
sistema.
Estes requisitos precisam ser traduzidos para uma
arquitetura
de
sistema
que
realize
as
funcionalidades denotadas por eles.
Vejamos então, como converter um Diagrama de
Casos de Uso em um Diagrama de Classes.
Análise e Proj. Sist.
Orient. Objetos
3
Atores
Os atores representam entidades externas que
interagem com o sistema.
Para que esta interação ocorra, é necessário que os
atores sejam modelados. Em geral, se um ator
individual precisa ser identificado, utilizamos uma
classe.
Diversas instâncias dessa classe representam
atores diferentes desempenhando o mesmo papel.
Análise e Proj. Sist.
Orient. Objetos
4
Atores
Aluno
- ra: inteiro
- nome: string
- Endereço:string
Aluno
<<abstract>>
Terminal
- no.serie: longo
- Modelo: enumeração
- Endereço: Endereço IP
Terminal
Análise e Proj. Sist.
Orient. Objetos
5
Casos de Uso
Para se derivar classes a partir de casos de
uso, inicie listando as responsabilidades de
cada caso de uso.
Por exemplo, considere o seguinte Diagrama
de Casos de Uso:
Análise e Proj. Sist.
Orient. Objetos
6
Casos de Uso
Efetuar saque
Cliente
Efetuar depósito
Efetuar transferência
Banco
Análise e Proj. Sist.
Orient. Objetos
7
Casos de Uso
As responsabilidades de cada caso de uso acima podem ser listadas:
Efetuar Saque:







Obter a quantia do cliente
Verificar se a quantia está coberta pelo saldo em conta
Verificar se a quantia está dentro da política do banco
Verificar se o caixa eletrônico possui dinheiro suficiente
Entregar o dinheiro
Debitar a conta bancária
Imprimir o comprovante do cliente
Sistemas Operacionais
8
Casos de Uso





Efetuar Depósito:
Obter a quantia do cliente
Receber o envelope do cliente
Marcar a hora do depósito
Creditar a conta bancária
Imprimir o comprovante do cliente








Efetuar Transferência
Obter a conta de origem
Obter a conta de destino
Obter a quantia
Verificar se a conta de origem cobre a quantia
Verificar se a quantia está dentro da política do banco
Debitar a conta de origem
Creditar a conta de destino
Imprimir o comprovante do cliente
Sistemas Operacionais
9
Casos de Uso
Note que muitas dessas responsabilidades se sobrepõe.
Então, uma atitude eficiente é escrever apenas uma operação
que atenda ao maior número de responsabilidades.
Assim, poderíamos ter as seguintes operações:
obter Quantia ( )
verificar Quantia (quantia)
desembolsar Fundos (quantia)
debitar (quantia)
etc
Sistemas Operacionais
10
Atribuindo Operações á Classes
Quando uma classe é significativa no mundo
real, as operações nela normalmente são
claras, mas com o desenvolvimento do
sistema, vamos criando classes cada vez
mais abstratas.
Então, para se decidir em qual classe
escrever uma operação, podemos usar as
seguintes regras:
Análise e Proj. Sist.
Orient. Objetos
11
Atribuindo Operações á Classes
Receptor da Ação: Se um objeto recebe a ação enquanto outro a
realiza, é melhor associar a operação ao destino, não ao seu
iniciador.
Consulta versus alteração: Se um objeto é alterado enquanto
outros são apenas consultados pela operação, o objeto modificado
é o destino da ação.
Classe focal: Se uma classe é a mais central na subrede de
classes envolvidas pela ação, ela é o destino da operação
Analogia com o mundo real: Se os objetos fossem reais, o destino
da ação seria o objeto que você pressionaria, moveria, ativaria ou
manipularia de alguma forma
Análise e Proj. Sist.
Orient. Objetos
12
Atribuindo Operações á Classes
Com essas regras, poderíamos escrever as operações do caixa
eletrônico da seguinte forma:
 Cliente.obter Quantia ( ). Obtém a quantia do cliente.
 Conta.verificar.Quantia (quantia). Verifica se a quantia é coberta pela
conta.
 Banco.verificar.Quantia (quantia). Verifica se a quantia está dentro da
política do banco.
 Caixa Eletrônico.verificar Quantia (quantia). Verifica se o terminal
possui dinheiro suficiente.
 Caixa Eletrônico.desembolsar Fundos (quantia). Desembolsa o
dinheiro.
Sistemas Operacionais
13
Atribuindo Operações á Classes
 Conta.debitar (quantia) – Debita a conta bancária
 Comprovante.inserirTransação ( ). Acrescenta uma transação ao
comprovante do cliente
 Caixa Eletrônico.receber Fundos (quantia). Aceita o envelope do
cliente com seu depósito.
 Conta.creditar (quantia) . Credita a conta bancária.
 Cliente. Obter Conta ( ) Obtém tanto a conta de origem quanto a conta
de destino.
 Comprovante.emitido ( ). Emite o comprovante.
Análise e Proj. Sist.
Orient. Objetos
14
Atribuindo Operações á Classes
Podemos agora elaborar o Diagrama de Classes:
1
1
Banco
*
*
Conta
saldo
Verificar Fundos
Caixa Eletrônico
Verificar Quantia
Dinheiro disponível
Creditar
Verificar quantia
debitar
Desembolsar
fundos
Comprovante
transações
Receber fundos
1
*
Inserir
Transação
Cliente
*
1
Obter Quantia
Obter conta
Emitir
Análise e Proj. Sist.
Orient. Objetos
15
Exercício
1) Uma impressora multifuncional é capaz de imprimir, digitalizar, copiar,
enviar e receber fax. Considere o seguinte Diagrama de Casos de Uso para
essa impressora:
<< include >>
Receber
Fax
Imprimir
<< include >>
<< include >>
Copiar
Computador
Digitalizar
<< include >>
Linha
Telefônica
Enviar Fax
Análise e Proj. Sist.
Orient. Objetos
16
Download

verificar Quantia