13
Contratos de Operação

Contratos de Operação. Introdução Descrevem modificações detalhadas em objetos em um modelo de domínio fazendo uso de uma pré e pós-condições; Podem

Embed Size (px)

Citation preview

Page 1: Contratos de Operação. Introdução Descrevem modificações detalhadas em objetos em um modelo de domínio fazendo uso de uma pré e pós-condições; Podem

Contratos de Operação

Page 2: Contratos de Operação. Introdução Descrevem modificações detalhadas em objetos em um modelo de domínio fazendo uso de uma pré e pós-condições; Podem
Page 3: Contratos de Operação. Introdução Descrevem modificações detalhadas em objetos em um modelo de domínio fazendo uso de uma pré e pós-condições; Podem

Contratos de OperaçãoIntrodução

Descrevem modificações detalhadas em objetos em um modelo de domínio fazendo uso de uma pré e pós-condições;Podem ser considerados parte do Modelo de Casos de Uso do PU;Fornecem mais detalhes de análise sobre o efeito das operações do sistema implicito nos casos de uso.

Page 4: Contratos de Operação. Introdução Descrevem modificações detalhadas em objetos em um modelo de domínio fazendo uso de uma pré e pós-condições; Podem

Contratos de Operação

Definição e ObjetivoOs contratos para operações podem

ajudar a definir o comportamento do sistema; eles descrevem os resultados da execução de operações do sistema em termos de mudança de estado nos objetos do domínio.

Page 5: Contratos de Operação. Introdução Descrevem modificações detalhadas em objetos em um modelo de domínio fazendo uso de uma pré e pós-condições; Podem

Contratos de Operação Operações do sistema e a interface do sistema

Page 6: Contratos de Operação. Introdução Descrevem modificações detalhadas em objetos em um modelo de domínio fazendo uso de uma pré e pós-condições; Podem

Seções do Contrato

O esquema a seguir mostra uma descrição de cada seção em um contrato:

•Operação:Nome da operação e parâmetros.•Referências Cruzadas:(opcional) Casos de uso nos quais esta operação pode ocorrer.•Pré-Condições:Hipóteses dignas de nota sobre o estado do sistema ou de objetos no Modelo de Domínio antes da execução da operação. Essas hipóteses não serão testadas na lógica da operação, pressupondo-se que sejam verdadeiras. São hipóteses não triviais que o leitor deveria saber que foram formuladas.•Pós-Condições:- o estado dos objetos no Modelo de Domínio, concluída a operação.

Contratos

Page 7: Contratos de Operação. Introdução Descrevem modificações detalhadas em objetos em um modelo de domínio fazendo uso de uma pré e pós-condições; Podem

Contratos – ExemploContrato : entrarItem

Operação: entrarItem( itemID: itemID, quantidade:inteiro)

Referências Cruzadas: Casos de Uso: Processar Venda

Pré-Condições: Existe uma venda em andamento.

Pós-Condições: - Foi criada uma instância liv da linhaDeItemDeVenda (criação de instância ).- liv foi associada com a Venda corrente (associação formada).- liv.quantidade tornou-se quantidade (modificação de atributo).- liv foi associada com uma EspecificaçãoDeProduto, com base na correspondência de um itemID (associação formada).

Page 8: Contratos de Operação. Introdução Descrevem modificações detalhadas em objetos em um modelo de domínio fazendo uso de uma pré e pós-condições; Podem

Pós-condiçõesAs pós-condições descrevem mudanças no

objeto no Modelo de Domínio. Mudanças de estado no Modelo de Domínio incluem instâncias criadas, associações formadas ou desfeitas e atributos mudados.

Uma vantagem das pós-condições Se forem usados contratos, como

devem ser as pós-condições completas?

Escrever contratos leva a atualizações no Modelo de Domínio

Quando os Contratos São Úteis? Contratos X Casos de Uso?

Contratos

Page 9: Contratos de Operação. Introdução Descrevem modificações detalhadas em objetos em um modelo de domínio fazendo uso de uma pré e pós-condições; Podem

Conselho para a redação de contratos

Contratos, Operações e a UML■ Contratos na UML: especificações de operação

■ Contratos de operações expressos com a OCL

■ Contratos em projeto por contrato

■ Suporte de linguagem de programação para contratos

Contratos de Operações no PU ■ Fases:

- Concepção

- Elaboração

Contratos

Page 10: Contratos de Operação. Introdução Descrevem modificações detalhadas em objetos em um modelo de domínio fazendo uso de uma pré e pós-condições; Podem
Page 11: Contratos de Operação. Introdução Descrevem modificações detalhadas em objetos em um modelo de domínio fazendo uso de uma pré e pós-condições; Podem

ConclusãoOs contratos devem ser utilizados quando o

sistema necessita de especificações mais complexas, onde os casos de uso não atendem a necessidade. Os contratos descrevem o comportamento do sistema em termos de mudança de estado para objetos no Modelo de Domínio, após a execução de uma operação.Quando a equipe de desenvolvimento escreve um contrato para cada caso de uso isso diz que os casos de uso foram mal feitos e isso acarreta em documentação desnecessária.

Contratos

Page 12: Contratos de Operação. Introdução Descrevem modificações detalhadas em objetos em um modelo de domínio fazendo uso de uma pré e pós-condições; Podem

1) Quando os contratos não devem ser utilizados?

2) Qual a diferença entre operação e método?

3) O que são as pós condições de uma operação?

4) Em que situações utilizamos os contratos?

5) Qual a função dos contratos?

6) Quais as seções do contrato?

Revisão

Page 13: Contratos de Operação. Introdução Descrevem modificações detalhadas em objetos em um modelo de domínio fazendo uso de uma pré e pós-condições; Podem

Desenvolva os contratos para as operações:

a)Obter Filme

b)Gravar Filme

Exercícios