A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.

Apresentações semelhantes


Apresentação em tema: "Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2."— Transcrição da apresentação:

1 Aula 8 Contratos

2 Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2. Refinar Diagramas de Casos de Uso 3. Refinar o Modelo Conceitual 4. Definir Diagramas de Seqüência do Sistema 5. Definir Contratos de Operação 6. Definir Diagramas de Estado

3 O que foi visto até agora Casos de Uso Completo Abstrato (descrição textual)

4 O que já foi visto até agora Casos de uso com substantivos e verbos sublinhados Caso de Uso 1 Caso de Uso 2 Caso de Uso n......

5 Comportamento do Sistema (DSS) É uma especificação do que o sistema faz sem explicar como ele o faz. O comportamento é definido como uma caixa preta. O diagrama de seqüência é utilizado para especificar parte do comportamento. O comportamento é dependente dos casos de uso.

6 Cenários ou Diagramas de Seqüência do Sistema (DSS) Cenários ou DSSCenários ou DSS mostram um cenário global do funcionamento do sistema, dividindo o caso de uso em partes bem definidas denominadas operações, que são executadas em resposta aos eventos

7 Cenários ou Diagramas de Seqüência do Sistema (DSS) Processo Unificado: um DSS para cada caso de uso relevante. Pode haver várias soluções para o mesmo problema

8 O Diagrama de Seqüência do Sistema (DSS) Mostra uma particular seqüência de eventos dentro de um caso de uso, os atores que interagem com o sistema, o sistema (como uma caixa preta) e os eventos de sistema que os atores geram. Deve ser feito para uma seqüência típica eventos do caso de uso e, possivelmente, outros DSSs podem ser criados para as seqüências alternativas mais interessantes.

9 O Diagrama de Seqüência do Sistema (cont.) O tempo corre no sentido de cima para baixo. A ordem dos eventos deve seguir a ordem no caso de uso.

10 Exemplo DSS para o caso de uso Emprestar Livro

11 Outro Exemplo DSS para o UC Emprestar Livro

12 Eventos e Operações de Sistema entradaUm evento de sistema é um evento externo de entrada para o sistema, gerado por um ator. Eventos de sistema podem incluir parâmetros. Um evento inicia uma operação de resposta do sistema. Uma operação de sistema é uma operação executada em resposta a um evento de sistema. saídaOs eventos e operações também podem ser de saída.

13 Evento de Entrada X Evento de Saída

14 Contratos das Operações

15 Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2. Refinar Diagramas de Casos de Uso 3. Refinar o Modelo Conceitual 4. Refinar Glossário 5. Definir Diagramas de Seqüência do Sistema 6. Definir Contratos de Operação 7. Definir Diagramas de Estado

16 Contratos das Operações É importante que as tarefas atribuídas às operações sejam bem documentadas, para evitar redundâncias e inconsistências. Um contrato especifica o comportamento esperado para cada operação correspondente a um evento do sistema.

17 Contratos das Operações Auxiliam a definir o comportamento do sistema. Definem o efeito das operações sobre o sistema mudanças de estado que ocorrem quando uma operação é invocada Depende do modelo conceitual, dos diagramas de seqüência e da identificação das operações do sistema.

18 Contratos das Operações (cont.) A especificação dos contratos segue um estilo declarativo, enfatizando o que deve ser feito, sem explicar como. Pode ser escrito de maneira informal ou formal. Normalmente é expresso em termos de pré-condições e pós-condições. Deve ser especificado um contrato para cada operação do sistema (pelo menos para as mais importantes ou abrangentes) Podem ser elaborados também para métodos importantes e/ou complexos do sistema.

19 Contratos das Operações Características típicas de um contrato: –Nome da operação e Parâmetros de entrada –Objetivos (ou responsabilidade) – Tipo (responsável pela operação) –Notas e Exceções –Referências cruzadas –Pré-condições –Pós-condições

20 Pré-Condições Representam o estado do sistema antes da invocação da operação. Não serão verificadas pela operação, ou seja, assume-se que elas são verdadeiras ao invocar a operação

21 Pós-Condições Representam o estado do sistema após a invocação da operação, mostrando o que mudou como conseqüência da sua execução. Para cada operação, analisar os conceitos identificados no Modelo Conceitual e definir, para cada possível objeto do sistema, o que muda quando a operação é invocada. Observar o DSS, para ter uma melhor idéia do contexto em que a operação está inserida e o contexto resultante.

22 Exemplo Encerrar Empréstimo –Qual a responsabilidade desta operação? –Em quais casos de uso ela aparece? –O que ela considera como verdadeiro para ser executada? –O que muda no Modelo Conceitual após sua invocação?

23 Exemplo Operação: encerrarEmpréstimo() Referências Cruzadas: Caso de Uso: Emprestar Livro Pré-Condições: um leitor apto ao emprestar livros já foi identificado; pelo menos um livro já foi identificado e está disponível para ser emprestado. Pós-Condições: um novo empréstimo foi registrado; o novo empréstimo foi relacionado ao leitor já identificado na operação iniciar o empréstimo; a situação dos livros emprestados foi alterada para emprestado.

24 Como fazer um contrato: Relacionamento entre artefatos Caso de Uso: Comprar Itens Este caso de uso começa... :Sistema Caixa Comprar Itens – versão 1 entrarItem(CUP, quantidade) terminarVenda() registrarPagamento(quantia) Sistema entrarItem() terminarVenda() entrarPagamento () Operação: entrarItem... Pós-condições... Operação: terminarVenda... Pós-condições:... Casos de Uso Diagrama de Seqüência do sistema Operações de sistema Contratos

25 Como fazer um contrato Identifique as operações do sistema a partir dos diagramas de seqüência do sistema. Para cada operação do sistema, construa um contrato. Comece escrevendo a seção Responsabilidade, descrevendo informalmente a finalidade (objetivo) da operação.

26 Como fazer um contrato (cont.) Então, complete a seção Pós-condições, descrevendo de forma declarativa as mudanças de estado que ocorrem nos objetos do modelo conceitual. Para descrever as pós-condições, use as seguintes categorias: –Criação e exclusão/instâncias. –Modificação de atributos. –Associações formadas e desfeitas.

27 Pós-condições A UML não restringe como as pós- condições devem ser expressas. Deve ser declarativa e orientada a mudanças de estado e não orientada a ações. Por isso, usar o verbo no passado. Ex. –Usar uma Venda foi criada, ao invés de –criar uma Venda As cláusulas das p.c. estão associadas ao modelo conceitual. Ao escrevê-las você pode notar erros ou omissões no modelo conceitual.

28 Pós-condições: quão completas devem ser ? Não é provável, e mesmo necessário, criar um conjunto de pós-condições completo na fase de análise. Alguns detalhes serão descobertos durante a fase de projeto. Isto segue o espírito do desenvolvimento iterativo.

29 Estudo de Caso: Sistema Terminal de Ponto de Vendas Criação dos contratos das operações: EntrarItem(codProd,quantidade)TerminarVenda() RegistrarPagamento(quantia)

30 Modelo conceitual para o domínio do PDV

31 Nome: entrarItem(codProd:número, quantidade:inteiro) Responsabilidade: Entrar(registrar) a venda de um item e acrescentá-lo à venda. Exibir a descrição e o preço do item. Tipo: Sistema Referências cruzadas:Caso de Uso: Comprar Itens Notas: Use acesso super-rápido ao banco de dados Exceções: Se o codProd não for válido, indique o erro. Saída: Pré-condições: O codProd existe (é conhecido do sistema) Pós-condições: Se for uma nova venda, uma Venda foi Criada (c.i.) Se for uma nova venda, a nova Venda foi associada ao TPV (f.a) Uma LinhadeItemdeVenda foi criada (c.i) A LinhadeItemdeVenda foi associada à Venda (f.a) LinhadeItemdeVenda.quantidade recebeu o valor de quantidade (m.a) A LinhadeItemdeVenda foi associada a um(a) (Especificaçãode) Produto, com base no codProd (f.a) c.i. = criação de instância f.a = formada uma associação m.a = modificação de atributo Contrato

32 Nome: terminarVenda() Responsabilidades: Registrar que é o fim da entrada de itens de Venda e exibir o total da venda. Tipo: Sistema Refs cruzadas: Caso de Uso: Comprar Itens Exceções: Se uma venda não está em andamento, indicar o erro. Saída: Pré-condições: Uma venda deve ter sido iniciada Pós-condições: Venda.estáCompleta recebeu o valor true (ma) Problemas: a.Exibir o total da venda b.A pré- condição c.No original traduzido, está escrito recebe na pós- condição. Problemas: a.Exibir o total da venda b.A pré- condição c.No original traduzido, está escrito recebe na pós- condição.

33 Mudanças no modelo conceitual Existe um atributo sugerido no contrato de terminarVenda que não aparece no modelo conceitual. Venda estáCompleta:Booleano data hora

34 Contrato Nome: registrarPagamento(quantia:quantidade) Responsabilidades: Registrar o pagamento, calcular o troco e imprimir o recibo. Tipo: Sistema Refs cruzadas: Função do sistema: R2.1 Caso de Uso: Comprar Itens Notas: Exceções: Se a venda não está completa, indicar um erro. Se a quantia for menor que o total da venda, indicar um erro. Saída: / Pré-condições: Pós-condições: Um Pagamento foi criado (ci) Pagamento.quantiaFornecida recebeu o valor de quantia (ma) O Pagamento foi associado à Venda (fa) A Venda foi associada à Loja, para acrescentá-la ao registro histórico de vendas completadas (fa) c.i. = criação de instância f.a = formada uma associação m.a = modificação de atributo


Carregar ppt "Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2."

Apresentações semelhantes


Anúncios Google