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

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

Aula 8 Contratos.

Apresentações semelhantes


Apresentação em tema: "Aula 8 Contratos."— Transcrição da apresentação:

1 Aula 8 Contratos

2 Atividades da Fase Analisar
Refinar Plano Sincronizar artefatos Analisar Projetar Construir Testar 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 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
Um 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. Os 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 Analisar Projetar Construir Testar 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 . . . 1. Este caso de uso começa... Comprar Itens – versão 1 :Sistema Caixa entrarItem(CUP, quantidade) Casos de Uso terminarVenda() Sistema entrarItem() terminarVenda() entrarPagamento() registrarPagamento(quantia) Diagrama de Seqüência do sistema Operações de sistema Operação: entrarItem . . . Pós-condições Operação: terminarVenda . . . Pós-condições: 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
1..1 Caixa Gerente 1..* * Pagamento quantia Cliente TPV < Registra-Vendas-do Iniciado por Loja endereço nome Possui Catálogo de Produtos Usado-por Venda data tempo Paga-por Iniciada-por Registra-Dados-da v Capturada-em Item Estoca 0..1 Especificação de Produto descrição preço CUP Contém Descreve LinhadeItemdeVenda quantidade Contido-em Registra-venda-de Descritos-por

31 Nome: entrarItem(codProd:número, quantidade:inteiro)
Contrato 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

32 Nome: terminarVenda()
Contrato 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: Exibir o total da venda A pré-condição 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 Nome: registrarPagamento(quantia:quantidade)
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."

Apresentações semelhantes


Anúncios Google