Inom datorprogrammering och datavetenskap är driftkontrakt ett sätt att specificera eller dokumentera hur en viss funktion kommer att förändra olika element i ett program. Till skillnad från ett abstrakt programmeringsgränssnitt (API) eller ett gränssnittskontrolldokument, används driftkontrakt som hjälp under utvecklings- och modelleringsfasen för att skapa en datorapplikation eller ett datorsystem. På den mest grundläggande nivån definierar kontraktet fyra funktioner för operationen, närmare bestämt namnet på operationen, eventuella referenser till operationen i andra delar av konstruktionen, eventuella krav på input eller tillstånd innan operationen utförs och tillståndet för operationen. systemet eller variablerna efter att operationen har utförts. Kontraktet definierar inget specifikt om hur verksamheten fungerar internt, utan handlar istället bara om hur ett programs tillstånd påverkas av dess användning.
Driftkontrakt, i allmänhet, byggs inte för varje verksamhet inom en programmodell. Istället är de reserverade för operationer som är särskilt komplexa eller svåra att spåra. Flera datormodelleringsspråk, som Unified Modeling Language (UML), stöder driftkontrakt och har sätt att visualisera hur tillståndet för ett program kan ändras när operationen har utförts.
De två första definitionerna som krävs för att skapa driftskontrakt är namnet på operationen, som kan vara vad som helst, och eventuella korsreferenser. En korsreferens är en lista över andra operationer eller områden i en programmodell som använder den operation som definieras eller som operationen kommer att använda i sin bearbetning. Detta hjälper till att se hur en övergripande design samverkar och är särskilt användbar för att se hur ändringar i ett område av modellen kommer att påverka andra områden.
Driftkontrakt definierar sedan de förutsättningar som krävs för att driva verksamheten. Detta kan innebära att vissa variabler ska laddas med lämpliga värden, eller så kan det kräva att vissa delar av programmet är i ett visst tillstånd. Om förutsättningarna inte är uppfyllda när operationen utförs, kommer operationen inte att ske eller kan misslyckas helt. Kontraktet används som ett abstrakt verktyg, så förutsättningarna är vanligtvis ganska generella och involverar mer programmets tillstånd än specifika variabler.
Den sista delen av driftskontrakten definierar eventuella eftervillkor. Post-villkor är en lista över poster inom programmodellen som har ändrats på grund av utförandet av operationen. Detta kan specificera ändringar i en datastruktur eller modifieringar av programmets tillstånd, såsom att flytta kontrollen till en separat modul. Genom att använda väldefinierade driftkontrakt kan program modelleras och modifieras effektivt innan den faktiska implementeringen börjar.