Upload
sandra-gama-benevides
View
213
Download
0
Embed Size (px)
Citation preview
Fluxo de Análise e Projeto
5 - AtividadeProjetar Caso de Uso
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 2
Fluxo de Análise e Projeto
Analisar caso de usoProjetista
Projetista de banco de
dados
Revisar projeto
Projetar caso de uso
ArquitetoRevisor do
projeto
Projetar base de dados
Projetar arquitetura
Projetar subsistema
Analisar Caso de Uso
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 3
Fluxo de Análise e Projeto
O que foi feito até agora
• 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 das oportunidades de reuso• Definição da organização do sistema
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 4
Fluxo de Análise e Projeto
Objetivos desta atividade
• Refinar as realizações de casos de uso (elaboradas na análise de casos de uso) incluindo os elementos de projeto – Incorporando persistência nas realizações
• O objetivo final é ter um modelo consistente que sirva de referência para a implementação do caso de uso
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 5
Fluxo de Análise e Projeto
Visão geral dos artefatos
Classes de projeto
ProjetarCaso de Uso
Caso de uso
Realização decaso de uso
Subsistemas de projetoDocumento derequisitos
Realização decaso de uso
Fonte: Rational
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 6
Fluxo de Análise e Projeto
Passos para Projetar Caso de Uso
1. Refinar as realizações de casos de uso– incluir os elementos de projeto– incluir persistência
2. Simplificar os diagramas de interação usando (possivelmente novos) subsistemas (opcional)
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 7
Fluxo de Análise e Projeto
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– View of participating classes (VOPC)
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 8
Fluxo de Análise e Projeto
Refinando as realizações de casos de uso
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 9
Fluxo de Análise e Projeto
Subsistemas e Interfaces Exemplo: Auto Atendimento
Análise
<<boundary>>SistemaBanco
selecionarConta(numeroConta, senha)sacar(numeroConta, valorSaque)...
<<subsystem>>SubSistemaBanco
Projeto
ISubSistemaBanco
selecionarConta(numeroConta:String, senha:String)sacar(numeroConta:String, valorSaque:double)...
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 10
Fluxo de Análise e Projeto
Exemplo: Atualizando diagramas de classe (VOPC) Caso de uso Sacar dinheiro (antes)
FronteiraContadorDinheiro
entregardinheiro()
(from perifericos)
FronteiraLeitorCartao
recuperaNumeroCartao()entregarCartao()
(from perifericos)
FronteiraBanco
selecionarConta()sacar()
(from banco)
FormularioSaque(from gui)
ControladorSaque
sacar()validarSenha()
( from atm)
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 11
Fluxo de Análise e Projeto
Exemplo: Atualizando diagramas de classe (VOPC) Caso de uso Sacar dinheiro (depois)
I subSistemaBanco( from subSistemaBanco)
<<Interface>>
FronteiraContadorDinheiro
entregardinheiro()
(from perifericos)
FronteiraLeitorCartao
recuperarNumeroCartao()entregarCartao()
(from perifericos)
FachadaATM
selecionarConta()sacar()validarSenha()
( from atm)
FormularioSaque
setValorSaque()confirmarSaque()
(from gui)
FormularioATM
setNumeroConta()setSenha()escolheOpcao()
(from gui)
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 12
Fluxo de Análise e Projeto
Incorporando persistência
• Seguir orientações de estruturação de aplicações em camadas
• Exemplo:
RepositorioTransacao
LogTransacao
Transacao
RepositorioTransacaoBDR
Fluxo de Análise e Projeto
cliente do log : ControladorLogTransacoes : Transacao : LogTransacoes
registrar transacao (dados da transacao)
criar transacao (dados da transacao)
gravar transacao()
Exemplo de um Diagrama de Seqüência:Caso de uso Registrar Transação
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 14
Fluxo de Análise e Projeto
Exemplo: Atualizando diagramas de seqüênciaCaso de uso Registrar transação (depois)
new Transacao(dadosTransacao)
cliente do log
: (ControladorLogTransa
transacao :
: LogTransac
: RepositorioTransa
incluir (transacao)
incluir (transacao)
incluir (transacao)
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 15
Fluxo de Análise e Projeto
Exemplo: Atualizando diagramas de classe (VOPC)Caso de uso Registrar Transação (antes)
Transacao
ControladorSaque
ControladorSaldo
ControladorTransferencia
ControladorExtrato
ControladorDepositoControladorLogTransacao
incluir( )
(from log)
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 16
Fluxo de Análise e Projeto
Exemplo: Atualizando diagramas de classe (VOPC)Caso de uso Registrar Transação (depois)
Transacao
RepositorioTransacoes
(from log)
LogTransacoes
incluir( )
(from log)
FachadaATM
selecionarC onta()sacar()validarS enha()
(from atm)ControladorLogTransacaoincluir( )
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 17
Fluxo de Análise e Projeto
Passo 2. Simplificar os diagramas de interação usando subsistemas
• Identifique subfluxos comuns nos diagramas de interação e encapsule estes em subsistemas (possivelmente novos)
• Substitua os elementos internos pela interface dos subsistemas (nos diagramas)
• Interações internas ao subsistema serão descritas no projeto de subsistemas
Fonte: Rational
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 18
Fluxo de Análise e Projeto
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– é responsabilidade de uma equipe/pessoa– produz um resultado bem definido– é encapsulado dentro de um componente de
implementação
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 19
Fluxo de Análise e Projeto
Alguns benefícios de se encapsular interações em subsistemas
• As realizações dos casos de uso passam a oferecer uma visão de mais alto nível
• As realizações podem ser descritas antes dos detalhes internos do projeto de subsistemas serem desenvolvidos
• As realizações se tornam mais genéricas e modulares (permitindo que subsistemas sejam substituídos praticamente sem impacto nos diagramas de interação)
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 20
Fluxo de Análise e Projeto
O uso de subsistemas favorece o desenvolvimento paralelo• Definição das interfaces • Concentração nos requisitos que afetam as
interfaces dos subsistemas• Modelar mensagens fora do escopo interno do
subsistema• Diagramas de interação devem mostrar
mensagens entre interfaces de subsistemas
As interfaces são vistas como pontos de sincronização
Maio, 2000Copyright CESAR-Qualiti, Maio 2000. Todos os direitos reservados. 21
Fluxo de Análise e Projeto
Exercício: Projeto
• 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– Identificação das classes persistentes
• Produzir:– Realizações de caso de uso com elementos de
projeto (incluindo subsistemas e persistência)• Diagramas de seqüência e colaboração• Diagrama de classes