Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos...
Transcript of Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos...
![Page 1: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/1.jpg)
Aula 8Aula 8
ContratosContratos
Aula 8Aula 8
ContratosContratos
![Page 2: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/2.jpg)
Atividades da Fase AnalisarRefinarPlano
Sincronizarartefatos
Analisar Projetar Construir Testar
1. Definir Casos deUso Essenciais
2. Refinar Diagramas de Casos de Uso
3. Refinar o Modelo Conceitual
4. Definir Diagramas deSeqüência do Sistema
5. Definir Contratos deOperação
6. Definir Diagramas de Estado
![Page 3: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/3.jpg)
O que foi visto até agora
Casos de Uso Completo Abstrato
(descrição textual)
![Page 4: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/4.jpg)
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
.
.
.
![Page 5: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/5.jpg)
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.
![Page 6: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/6.jpg)
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
![Page 7: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/7.jpg)
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
![Page 8: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/8.jpg)
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.
![Page 9: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/9.jpg)
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.
![Page 10: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/10.jpg)
Exemplo DSS para o caso de uso Emprestar Livro
![Page 11: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/11.jpg)
Outro Exemplo DSS para o UC Emprestar Livro
![Page 12: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/12.jpg)
Eventos e Operações de Sistema
• Um evento de sistema é um evento externo de entradaentrada 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ídasaída.
![Page 13: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/13.jpg)
Evento de Entrada X Evento de Saída
![Page 14: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/14.jpg)
Contratos das Contratos das OperaçõesOperações
Contratos das Contratos das OperaçõesOperações
![Page 15: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/15.jpg)
Atividades da Fase AnalisarRefinarPlano
Sincronizarartefatos
Analisar Projetar Construir Testar
1. Definir Casos deUso Essenciais
2. Refinar Diagramas de Casos de Uso
3. Refinar o Modelo Conceitual
4. Refinar Glossário 5. Definir Diagramas deSeqüência do Sistema
6. Definir Contratos deOperação
7. Definir Diagramas de Estado
![Page 16: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/16.jpg)
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.
![Page 17: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/17.jpg)
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.
![Page 18: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/18.jpg)
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.
![Page 19: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/19.jpg)
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
![Page 20: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/20.jpg)
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
![Page 21: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/21.jpg)
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.
![Page 22: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/22.jpg)
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?
![Page 23: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/23.jpg)
ExemploOperaçã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”.
![Page 24: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/24.jpg)
Como fazer um contrato: Relacionamento entre artefatos
Caso de Uso: Comprar Itens
. . .1. Este caso de uso começa...
:SistemaCaixa
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üênciado sistema
Operações de sistema
Contratos
![Page 25: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/25.jpg)
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.
![Page 26: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/26.jpg)
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.
![Page 27: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/27.jpg)
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.
![Page 28: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/28.jpg)
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.
![Page 29: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/29.jpg)
Estudo de Caso: Sistema Estudo de Caso: Sistema Terminal de Ponto de Terminal de Ponto de
VendasVendas
Estudo de Caso: Sistema Estudo de Caso: Sistema Terminal de Ponto de Terminal de Ponto de
VendasVendas
Criação dos contratos das Criação dos contratos das operações:operações:
EntrarItem(codProd,quantidade)EntrarItem(codProd,quantidade)
TerminarVenda()TerminarVenda()
RegistrarPagamento(quantiaRegistrarPagamento(quantia))
![Page 30: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/30.jpg)
Modelo conceitual para o domínio do PDV
1..1
1..1
Caixa
1..1
Gerente
1..*
1..*
1..1
*
1..1
1..1
Pagamento
quantia
1..1
1..1
Cliente
1..1
1..1
*
1..1TPV
1..1
< Registra-Vendas-do
1..11..*
Iniciado por
1..1
*1..1
Loja
endereçonome
1..*
1..1Possui
1..*1..1
Catálogo de Produtos
*
1..1Usado-por
*
1..1
Venda
datatempo
1..1
1..1Paga-por
1..1
1..1
Iniciada-por
1..1
*
Registra-Dados-dav
1..1
1..1Capturada-em
1..*
1..1
Item
*1..1
Estoca
0..1
1..1
Especificação de Produto
descriçãopreçoCUP
1..*1..1
Contém
*
Descreve
*
LinhadeItemdeVenda
quantidade
1..1
1..*
Contido-em
1..1
0..1
Registra-venda-de
1..1
*
Descritos-por
1..1
![Page 31: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/31.jpg)
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: SistemaReferências cruzadas:Caso de Uso: Comprar ItensNotas: Use acesso super-rápido ao banco de dadosExceçõ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 deinstânciaf.a = formada umaassociaçãom.a = modificaçãode atributo
Contrato
![Page 32: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/32.jpg)
ContratoNome: terminarVenda()Responsabilidades: Registrar que é o fim da entrada de itens de Venda e exibir o total da venda.Tipo: SistemaRefs cruzadas: Caso de Uso: Comprar ItensExceções: Se uma venda não está em andamento,
indicar o erro.Saída: Pré-condições: Uma venda deve ter sido iniciadaPó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.
![Page 33: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/33.jpg)
Mudanças no modelo conceitual
• Existe um atributo sugerido no contrato de terminarVenda que não aparece no modelo conceitual.
Venda
estáCompleta:Booleanodatahora
![Page 34: Aula 8 Contratos. Atividades da Fase Analisar Refinar Plano Sincronizar artefatos AnalisarProjetarConstruirTestar 1. Definir Casos de Uso Essenciais 2.](https://reader035.fdocumentos.com/reader035/viewer/2022062623/552fc0fb497959413d8b9a45/html5/thumbnails/34.jpg)
ContratoNome: registrarPagamento(quantia:quantidade)Responsabilidades: Registrar o pagamento, calcular o troco e imprimir o recibo.Tipo: SistemaRefs cruzadas: Função do sistema: R2.1 Caso de Uso: Comprar ItensNotas: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ânciaf.a = formada uma associaçãom.a = modificação de atributo