I contratti dichiarano un'operazione definendo ciò che deve essere vero prima e dopo il suo completamento.
Le sezioni di un contratto sono: Operazione, Riferimenti, Pre-condizioni e Post-condizioni.
Specifica il nome e i parametri dell'operazione (ad es. enterItem(itemID: ItemID, quantity: integer)).
Indica i casi d'uso in cui l'operazione può verificarsi (ad es. “è in corso una vendita”).
Sono le ipotesi significative sullo stato del sistema o degli oggetti nel Modello di Dominio prima dell'operazione.
Mostrano lo stato degli oggetti nel Modello di Dominio dopo l'operazione, come creazione, modifica o cancellazione di istanze e associazioni.
È un'operazione che il sistema "black box" offre nella sua interfaccia pubblica; può essere individuata dagli SSD.
Descrivono i cambiamenti nello stato degli oggetti nel modello di dominio al termine di un’operazione, come creazione di istanze, modifica di attributi o creazione/rimozione di associazioni.
1. Identificare le operazioni di sistema dagli SSD; 2. Creare contratti per operazioni complesse o poco chiare; 3. Usare categorie per descrivere le post-condizioni.
In forma dichiarativa, con verbi al passato e in forma passiva, evitando di descrivere azioni.