Contratos de Operação. Introdução Descrevem modificações detalhadas em objetos em um modelo de...

13
Contratos de Operação

Transcript of Contratos de Operação. Introdução Descrevem modificações detalhadas em objetos em um modelo de...

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