Hva er driftskontrakter?
På området programmering og informatikk er operasjonskontrakter en måte å spesifisere eller dokumentere hvordan en bestemt funksjon vil endre forskjellige elementer i et program. I motsetning til et abstrakt programmeringsgrensesnitt (API) eller et grensesnittkontrolldokument, brukes operasjonskontrakter for å hjelpe i utviklings- og modelleringsfasen for å lage et dataprogram eller system. På det mest grunnleggende nivået definerer kontrakten fire funksjoner i operasjonen, spesifikt navnet på operasjonen, eventuelle referanser til operasjonen på andre områder av designen, eventuelle krav til innspill eller tilstand før operasjonen utføres, og tilstanden til systemet eller variablene etter at operasjonen er utført. Kontrakten definerer ikke noe spesifikt om hvordan operasjonen fungerer internt, og handler i stedet bare om hvordan tilstanden til et program blir påvirket av bruken.
Generelt er driftskontrakter ikke bygget for hver operasjon innenfor en programmodell. I stedet er de forbeholdt operasjoner som er spesielt komplekse eller vanskelige å spore. Flere datamodelleringsspråk, for eksempel Unified Modelling Language (UML), støtter operasjonskontrakter og har måter å hjelpe visualisere hvordan tilstanden til et program kan endres når operasjonen er utført.
De to første definisjonene som kreves for å opprette operasjonskontrakter, er navnet på operasjonen, som kan være hva som helst, og eventuelle kryssreferanser. En kryssreferanse er en liste over andre operasjoner eller områder i en programmodell som bruker operasjonen som blir definert, eller som operasjonen vil bruke i behandlingen. Dette hjelper deg med å se hvordan et samlet design samhandler, og er spesielt nyttig for å se hvordan endringer i ett område av modellen vil påvirke andre områder.
Operasjonskontrakter definerer deretter forutsetningene som er nødvendige for å utføre operasjonen. Dette kan innebære å kreve at visse variabler blir lastet med passende verdier, eller det kan kreve at visse deler av programmet er i en bestemt tilstand. Hvis forutsetningene ikke er oppfylt når operasjonen utføres, vil operasjonen ikke finne sted eller mislykkes fullstendig. Kontrakten brukes som et abstrakt verktøy, så forutsetningene er vanligvis ganske generelle og mer involverer programmets tilstand enn spesifikke variabler.
Den endelige delen av driftskontraktene definerer eventuelle etterbetingelser. Etterbetingelser er en liste over elementer i programmodellen som er endret på grunn av utførelsen av operasjonen. Dette kan spesifisere endringer i en datastruktur eller endringer i programmets tilstand, for eksempel å skifte kontroll til en egen modul. Gjennom bruk av veldefinerte driftskontrakter kan programmer modelleres og modifiseres effektivt før faktisk implementering begynner.