Projetar Caso de Uso
Analisar
Serviços
Arquiteto de
Software
Projetar
Arquitetura
Projetar
Serviços
Revisor de
projeto
Prototipar
Interface
gráfica
Arquiteto de
Informação
Analisar
Casos de Uso
Projetar
Casos de Uso
Check
List
 bla bla
 bla
 blabla
Projetar
Subsistemas
Analista de
Sistemas
decisões do
arquiteto
Projetar
classes
Projetar
Base de Dados
Projetista de
Banco de Dados
Análise e Projeto OO com UML e Padrões| 2
Revisar
Projeto
O que foi feito até agora (no RUP)
• Realização dos casos de uso (análise)
– Identificação das classes de análise, seus
atributos, responsabilidades e relacionamentos
• Mapeamento das classes de análise em
elementos de projeto
• Identificação de oportunidades de reuso e uso
de padrões
• Definição da organização do sistema
• Definição da distribuição do sistema
Análise e Projeto OO com
UML e Padrões| 3
Objetivos desta atividade
• Refinar as realizações de casos de uso
(elaboradas na análise de casos de uso)
– Substituindo elementos de análise por elementos
de projeto
– Incorporando persistência e outros detalhes nas
realizações
• O objetivo final é ter um modelo consistente
que sirva de referência para a implementação
do caso de uso
Análise e Projeto OO com
UML e Padrões| 4
Visão geral dos artefatos
Documento de
Requisitos
Caso de Uso
Subsistemas
Analista de
Sistemas
Classes de
Projeto
Realização de
Caso de Uso
Projetar Caso
de Uso
Realização de
Caso de Uso
(atualizada)
Análise e Projeto OO com
UML e Padrões| 5
Passos para Projetar Caso de Uso
1. Refinar as realizações de casos de uso
– Substituir elementos de análise por elementos de
projeto
– Incluir persistência
2. Simplificar os diagramas de interação usando
(possivelmente novos) subsistemas (opcional)
Análise e Projeto OO com
UML e Padrões| 6
Passo 1. Refinar as realizações de casos de uso
• Substitua as classes de análise por classes de
projeto e/ou interfaces dos subsistemas
associados
• Incorpore persistência
• Atualize as realizações de casos de uso
– Diagramas de interação
– Diagrama de classes
Análise e Projeto OO com
UML e Padrões| 7
Refinando as realizações de casos de uso
Análise e Projeto OO com
UML e Padrões| 8
QIB – Efetuar Login (análise)
Diagrama de seqüência
Análise e Projeto OO com
UML e Padrões| 9
QIB – Efetuar Login (projeto)
Diagrama de seqüência
Análise e Projeto OO com
UML e Padrões| 10
QIB – Efetuar Login (análise)
Diagrama de classes
<<boundary>>
TelaLogin
efetuarLogin()
0..n
1
<<control>>
ControladorLogin
efetuarLogin()
1
1
<<entity>>
Conta
<<entity collection>>
CadastroContas
existeConta()
0..n
login
senha
Análise e Projeto OO com
UML e Padrões| 11
QIB – Efetuar Login (projeto)
Diagrama de classes
TelaLogin
efetuarLogin()
0..n
1
Fachada
efetuarPagamentoQualitiCard()
efetuarLogin()
realizarDOC()
1
1
ControladorLogin
efetuarLogin()
1
1
CadastroContasInte
rnet
ContaInternet
login
senha
existeContaInternet()
1
1
RepositorioContasInternetBDR
<<Interface>>
IRepositorioContasInternet
Análise e Projeto OO com
UML e Padrões| 12
QIB – Efetuar Pagamento do Qualiti Card
Observe o diagrama de seqüência do caso de
uso Efetuar Pagamento do Qualiti Card e
verifique o que precisa ser atualizado
Análise e Projeto OO com
UML e Padrões| 13
QIB – Efetuar Pagamento do Qualiti Card (análise)
Diagrama de classes
<<boundary>>
TelaPagamentoQualitiCard
efetuarPagamentoQualitiCard()
<<entity>>
Comprovante
pagamentoCartao
0..n
1
<<entity collection>>
CadastroContas
consultarConta()
atualizar()
<<control>>
ControladorPagamentoQualitiCard
1
1 efetuarPagamentoQualitiCard()
verificarSaldo()
1
1
1
<<boundary>>
ComunicacaoOperadoraCartao
enviar()
0..n
<<entity>>
Conta
numero
saldo
getSaldo()
debitar()
1
<<entity collection>>
CadastroPagamentos
Cartao
inserir()
<<entity>>
PagamentoCartao
0..n
numeroFatura
data
hora
valor
contaBancaria
Análise e Projeto OO com
UML e Padrões| 14
QIB – Efetuar Pagamento do Qualiti Card (projeto)
Diagrama de classes
TelaPagamento
QualitiCard
efetuarPagamentoQualitiCard()
0..n
1
Comprovante
Fachada
RepositorioContasInternetBDR
transacao
ControladorPagamento
QualitiCard
1
efetuarPagamentoQualitiCard()
verificarSaldo()
IRepositorioContasInternet
1
1
CadastroContasInternet
existeContaInternet()
consultarContaInternet()
enviar()
1
1
CadastroContas
Bancarias
1
<<Interface>>
ISubsistemaComunicacao
OperadoraCartao
1
1
1
1
Cadastro
Transacoes
inserir()
atualizar()
Transacao
numero
contaBancaria
valor
1
Data
1
1
1
<<entity>>
ContaInternet
Cliente
nome
cpf
login
senha
1
Hora
IRepositorio
Transacoes
IRepositorio
ContasCorrente
PagamentoCartao
numeroFatura
1
getContaCorrente()
RepositorioTransacoesBDR
RepositorioContas
BancariasBDR
atualizar()
inserir()
Análise e Projeto OO com
UML e Padrões| 15
Exercício – Qualiti Internet Banking
• Dado:
– Realizações de caso de uso de análise (diagramas de interação e
VOPCs)
– Mapeamento de classes de análise em elementos de projeto
– Classes persistentes
• Produzir:
– Realização do caso de uso Realizar DOC com elementos de projeto e
persistência
• Diagrama de seqüência
• Diagrama de classes
Análise e Projeto OO com
UML e Padrões| 16
Passo 2. Simplificar os diagramas de interação
usando subsistemas
• Identifique subfluxos comuns nos diagramas
de interação e encapsule-os em subsistemas
(possivelmente novos)
• Substitua os elementos internos pela interface
dos subsistemas (nos diagramas)
• Interações internas ao subsistema serão
descritas na atividade Projetar subsistema
Fonte: Rational
Análise e Projeto OO com
UML e Padrões| 17
Quando encapsular fluxos em subsistemas
• Quando um sub-fluxo
– ocorre em vários casos de uso
– possui potencial de reuso
– é complexo e de fácil encapsulamento
– produz um resultado bem definido
Análise e Projeto OO com
UML e Padrões| 18
Download

Projetar Caso de Uso