160 likes | 271 Views
Fase de Construção - Análise. Notas. Ciclo de Desenv. 2. Ciclo de Desenv. 1. a. se ainda não feito. b. contínuo. c. opcional. Implemen- tação. Refin. Plano. Sinc. Artefatos. Análise. Projeto. Teste. 4. Refinar Glossário. 1. Definir Casos de Uso Essenciais.
E N D
Fase de Construção - Análise Notas Ciclo de Desenv. 2 Ciclo de Desenv. 1 a. se ainda não feito ... b. contínuo c. opcional Implemen- tação Refin. Plano Sinc. Artefatos Análise Projeto Teste 4. Refinar Glossário 1. Definir Casos de Uso Essenciais 3. Refinar Modelo Conceitual 2. Refinar Diag. Casos de Uso b a 5. Definir Diag. Seq. 6. Definir Contrat. de Operação 7. Definir Diag. Estado c
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 “caixa-preta”
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
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: 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. Tipo: Referencia: Notas de projeto, algoritmos, etc. Casos excepcionais Notas: Exceções: Saídas não-IU, tais como mensagens ou registros enviados para fora do sistema Saída: Pré-condições: Pré-suposições sobre o estado do sistema antes da execução da operação Pós-condições: 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. Sistema Funções: R1.1, R1.3, R1.9 Casos de uso: Comprar Itens Tipo: Referencia: Notas: Exceções: Saída: Usar acesso rápido ao BD Se UPC inválido, indicar erro.
Contrato - Exemplo (cont) UPC é conhecido do sistema Pré-condições: Pós-condições: • 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!