Fase de Construção - Análise Notas Ciclo de Desenv. 2 Ciclo de Desenv. 1 Refin. Plano Sinc. Artefatos a. se ainda não feito b. contínuo c. opcional ... Análise Projeto 1. Definir Casos de Uso Essenciais a 2. Refinar Diag. Casos de Uso 3. Refinar Modelo Conceitual 5. Definir Diag. Seq. 6. Definir Contrat. de Operação 7. Definir Diag. Estado c Implementação 4. Refinar Glossário Teste b Diagrama de Sequencia O Modelo Conceitual é estático - como representar o comportamento dinâmico do sistema? Diagrama de Sequencia ilustra a ordem das interações entre os atores e o sistema O Sistema é representado como uma “caixapreta” Diagrama de Sequencia Diagrama de Sequencia Na análise, é importante saber “o que” o sistema faz, e não “como” Tipicamente, um diagrama de sequencia está ligado a um caso de uso Os casos de uso indicam como os atores interagem com o sistema Os eventos cruzam fronteiras dos sistemas Diagramas de Sequencia Operações do sistema Para cada evento, o sistema desempenha uma operação correspondente Operações descrevem comportamento dinâmico O tempo flui de cima para baixo Texto do caso de uso no diagrama de sequencia facilita a compreensão Diagramas de Sequencia Diagrama de Sequencia Como elaborar um diagrama de sequencia Desenhe uma linha vertical representando o sistema como uma caixa-preta. Desenhe uma linha vertical representando cada um desses atores. Com base nos casos de uso, ilustre no diagrama os eventos de sistema gerados pelos atores. Opcionalmente, incluia o texto do caso de uso à esquerda do diagrama. Diagramas de Sequencia Outro exemplo Diagrama de Sequencia Recomendações Nomeie operações começando com verbos Enfatize a intenção, com alto nível de abstração EncerrarVenda em vez de pressionarTeclaEnter fazerPagamento em vez de entrarQuantia Evite diagramas de sequencia para situações óbvias Ótimos para ilustrar o comportamento de objetos em um único caso de uso Contratos Um contrato é um documento que descreve os compromissos de uma operação Estilo declarativo Pré e pós-condições de mudanças de estado Usamos contratos para representar melhor o comportamento do sistema Após o modelo conceitual e diag.de sequencia Contrato - Seções Contrato: Responsabilidades: Tipo: Referencia: Notas: Exceções: Saída: Pré-condições: Pós-condições: Nome e parâmetros da operação Descrição informal das responsabilidades da operação Nome do tipo (sistema, classe, interface) Funções, casos de uso, etc. Notas de projeto, algoritmos, etc. Casos excepcionais Saídas não-IU, tais como mensagens ou registros enviados para fora do sistema Pré-suposições sobre o estado do sistema antes da execução da operação O estado do sistema após a execução da operação Contrato - Exemplo Contrato: Responsabilidades: entrarItem (upc :número, quantidade :inteiro) Registra venda de um item e o adiciona à venda corrente. Mostra descrição e preço do item. Tipo: Referencia: Sistema Funções: R1.1, R1.3, R1.9 Casos de uso: Comprar Itens Notas: Exceções: Saída: Usar acesso rápido ao BD Se UPC inválido, indicar erro. Contrato - Exemplo (cont) Pré-condições: Pós-condições: UPC é conhecido do sistema Se nova venda, uma Venda foi criada (criação de instância). Se nova venda, a nova Venda foi associada com um POST (formação de associação. Um Item-de-Venda foi criado (criação de instância). O Item-de-Venda foi associado à Venda (formação de associação). Item-de-Venda.quantidade foi definido para quantidade (modificação de atributo). O Item-de-Venda foi associado com uma Especificação-Produto, baseado no casamento de UPCs (formação de associação). Contratos Ainda estamos em análise! Consideramos apenas operações do sistema(caixa-preta) Na fase de projeto, contratos para métodos individuais Identifique operações de sistema a partir dos diagramas de seqüência. Construa um contrato para cada operação Dica: comece escrevendo informalmente a seção Responsabilidades Contratos Na seção Pós-condições, descreva as mudanças de estado de objetos do modelo conceitual: Criação e remoção de instância Modificação de atributo Formação e quebra de associações Não indique ações, apenas mudança de estado! Contratos e outros artefatos