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