Comportamento Dinâmico: Contratos

    analise.gif (9568 bytes)

Objetivos

Introdução

Contratos

14-1.gif (2252 bytes)

Exemplo de um contrato

Segue um contrato possível para a operação entrarItem

Nome entrarItem(upc:número, quantidade:integer)
Responsabilidades Registrar a venda de um item a adicionar seu valor ao total da venda.
Exibir a descrição do item e seu preço
Tipo Sistema
Referências cruzadas Funções do sistema: R1.1, R1.3, R1.9
Anotações
Exceções Se o UPC não for válido, indicar erro
Saída Faz log da venda completada

Pré-condições UPC é conhecido pelo sistema
Pós-condições
  • Se for uma nova venda, uma Venda foi criada (criação de instância)
  • Se for uma nova venda, a nova Venda foi associada ao TPDV (formação de associação)
  • Uma LinhaDetalheVenda foi criada (criação de instância)
  • A LinhaDetalheVenda foi associada à Venda (formação de associação)
  • LinhaDetalheVenda.quantidade recebeu o valor quantidade (mudança de atributo)
  • A LinhaDetalheVenda foi associada com uma EspecificaçãoProduto, baseado no casamento de UPC (formação de associação)

Relação com outros artefatos

14-2.gif (6384 bytes)

anal1-6 programa anterior