În domeniul programării computerelor și al informaticii, contractele de operare sunt o modalitate de a specifica sau de a documenta modul în care o anumită funcție va modifica diferitele elemente dintr-un program. Spre deosebire de o interfață de programare abstractă (API) sau un document de control al interfeței, contractele de operare sunt folosite pentru a ajuta în timpul fazei de dezvoltare și modelare a creării unei aplicații sau a unui sistem de calculator. La cel mai elementar nivel, contractul definește patru caracteristici ale operațiunii, în special numele operațiunii, orice referințe la operațiune în alte domenii ale proiectului, orice cerințe de intrare sau stare înainte de efectuarea operațiunii și starea sistemul sau variabilele după ce operația a fost efectuată. Contractul nu definește nimic specific despre modul în care funcționarea funcționează intern, ci se ocupă doar de modul în care starea unui program este afectată de utilizarea acestuia.
Contractele de operare, în general, nu sunt construite pentru fiecare operațiune din cadrul unui model de program. În schimb, acestea sunt rezervate operațiunilor care sunt deosebit de complexe sau dificil de urmărit. Mai multe limbaje de modelare pe computer, cum ar fi Unified Modeling Language (UML), acceptă contracte de operare și au modalități de a ajuta la vizualizarea modului în care starea unui program se poate schimba odată ce operația a fost efectuată.
Primele două definiții necesare pentru a crea contracte de operare sunt numele operațiunii, care poate fi orice și orice referințe încrucișate. O referință încrucișată este o listă de alte operațiuni sau zone ale unui model de program care utilizează operația în curs de definire sau pe care operația le va folosi în procesarea sa. Acest lucru vă ajută să vedeți cum interacționează un design general și este util în special pentru a vedea cum modificările aduse unei zone a modelului vor afecta alte zone.
Contractele de operare definesc în continuare condițiile preliminare necesare pentru derularea operațiunii. Acest lucru poate implica necesitatea ca anumite variabile să fie încărcate cu valori adecvate sau poate necesita ca anumite părți ale programului să fie într-o anumită stare. Dacă condițiile preliminare nu sunt îndeplinite atunci când operația este executată, atunci operația nu va avea loc sau ar putea eșua complet. Contractul este folosit ca instrument abstract, deci precondițiile sunt de obicei destul de generale și implică mai mult starea programului decât variabile specifice.
Partea finală a contractelor de operare definește orice postcondiții. Postcondițiile sunt o listă de elemente din modelul programului care au fost modificate din cauza execuției operației. Aceasta poate specifica modificări ale unei structuri de date sau modificări ale stării programului, cum ar fi schimbarea controlului la un modul separat. Prin utilizarea unor contracte de operare bine definite, programele pot fi modelate și modificate efectiv înainte de începerea realizării implementării.