Nel campo della programmazione informatica e dell’informatica, i contratti operativi sono un modo per specificare o documentare come una particolare funzione cambierà diversi elementi all’interno di un programma. A differenza di un’interfaccia di programmazione astratta (API) o di un documento di controllo dell’interfaccia, i contratti operativi vengono utilizzati per aiutare durante la fase di sviluppo e modellazione della creazione di un’applicazione o di un sistema informatico. Al livello più elementare, il contratto definisce quattro caratteristiche dell’operazione, in particolare il nome dell’operazione, eventuali riferimenti all’operazione in altre aree del progetto, eventuali requisiti di input o stato prima dell’esecuzione dell’operazione e lo stato di il sistema o le variabili dopo che l’operazione è stata eseguita. Il contratto non definisce nulla di specifico su come l’operazione funzioni internamente, e invece si occupa solo di come lo stato di un programma è influenzato dal suo utilizzo.
I contratti di operazione, in generale, non sono costruiti per ogni operazione all’interno di un modello di programma. Sono invece riservati ad operazioni particolarmente complesse o difficili da tracciare. Diversi linguaggi di modellazione del computer, come l’Unified Modeling Language (UML), supportano i contratti operativi e hanno modi per aiutare a visualizzare come lo stato di un programma può cambiare una volta che l’operazione è stata eseguita.
Le prime due definizioni richieste per creare contratti di operazione sono il nome dell’operazione, che può essere qualsiasi cosa, ed eventuali riferimenti incrociati. Un riferimento incrociato è un elenco di altre operazioni o aree di un modello di programma che utilizzano l’operazione definita o che l’operazione utilizzerà nella sua elaborazione. Ciò aiuta a vedere come interagisce un progetto complessivo ed è particolarmente utile per vedere come le modifiche a un’area del modello influiranno su altre aree.
I contratti di operazione definiscono quindi le precondizioni necessarie per eseguire l’operazione. Ciò può comportare la richiesta di caricare determinate variabili con valori appropriati oppure può richiedere che determinate parti del programma si trovino in uno stato particolare. Se le precondizioni non vengono soddisfatte quando l’operazione viene eseguita, l’operazione non avrà luogo o potrebbe fallire completamente. Il contratto viene utilizzato come uno strumento astratto, quindi le precondizioni di solito sono abbastanza generali e coinvolgono più lo stato del programma che variabili specifiche.
La parte finale dei contratti operativi definisce eventuali post-condizioni. Le post-condizioni sono un elenco di elementi all’interno del modello di programma che sono stati modificati a causa dell’esecuzione dell’operazione. Questo può specificare modifiche a una struttura dati o modifiche allo stato del programma, come spostare il controllo su un modulo separato. Attraverso l’uso di contratti operativi ben definiti, i programmi possono essere modellati e modificati in modo efficace prima che inizi l’effettiva attuazione.