Um contrato de operação ajuda a definir o comportamento do
sistema em fase de concepção. Ele descreve o resultado da execução de
uma operação de sistema em termos de mundanças de estado de objetos do domínio ("o que" e não "como") e não deve contemplar ações específicas.
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.
=================
Em outra referência, encontrei os seguintes itens de um contrato:
Nome: Nome da operação e de seus parâmetros (assinatura)
Responsabilidades: Breve descrição dos objetivos da operação
Tipo: Sistema
Casos de uso: Casos de uso em que a operação pode ocorrer
Exceções: Situações que impedem completar a execução da operação
Saída: Dados de alta relevância
apresentados ao ator responsável pela execução da operação em
decorrência de um evento de sistema por ele gerado
Pré-condição: Premissas dignas de nota
sobre o estado do sistema ou objetos do modelo de domínio antes da
execução da operação. Tais premissas não serão verificadas na lógica da
operação, são assumidas como verdadeiras e devem ser não triviais.
Espera-se que sejam o suficientemente importantes para que mereçam ser
conhecidas pelo leitor do contrato
Pós-condições: O estado dos objetos do
modelo de domínio após a execução da operação. As possíveis mudanças
referem-se a: valores de atributos alterados, criação de instâncias de
objetos, associações estabelecidas ou quebradas. A destruição de objetos
é relatada apenas quando altamente relevante
=================
Referência: http://slideplayer.com.br/slide/335729/ e http://www.unicamp.br/~hans/mc426/contratos.html