Hvad er operationskontrakter?
Inden for computerprogrammering og datalogi er driftskontrakter en måde at specificere eller dokumentere, hvordan en bestemt funktion vil ændre forskellige elementer i et program. I modsætning til en abstrakt programmeringsgrænseflade (API) eller et interfacekontroldokument bruges driftskontrakter til at hjælpe i udviklings- og modelleringsfasen med at oprette en computerapplikation eller system. På det mest basale niveau definerer kontrakten fire funktioner i operationen, specifikt navnet på operationen, eventuelle henvisninger til operationen i andre områder af designet, eventuelle krav til input eller tilstand inden operationen udføres, og systemet for systemet eller variablerne efter operationen er udført. Kontrakten definerer ikke noget specifikt om, hvordan driften fungerer internt, og i stedet beskæftiger sig kun med, hvordan et programs tilstand påvirkes af dets anvendelse.
Operationskontrakter generelt er ikke bygget til enhver operation inden for en programmodel. InsTead, de er forbeholdt operationer, der er særligt komplekse eller vanskelige at spore. Flere computermodelleringssprog, såsom Unified Modelling Language (UML), supportoperationskontrakter og har måder at hjælpe med at visualisere, hvordan staten for et program kan ændres, når operationen er blevet udført.
De to første definitioner, der kræves for at oprette driftskontrakter, er navnet på operationen, som kan være hvad som helst, og eventuelle krydsreferencer. En krydshenvisning er en liste over andre operationer eller områder i en programmodel, der bruger operationen, der defineres, eller som operationen vil bruge i dens behandling. Dette hjælper med at se, hvordan et overordnet design interagerer og er især nyttigt til at se, hvordan ændringer i et område af modellen vil påvirke andre områder.
Betjeningskontrakter Definer derefter de forudsætninger, der er nødvendige for at køre operationen. Dette kan involvere at kræve visse variabler tilvære fyldt med passende værdier, eller det kan kræve, at visse dele af programmet er i en bestemt tilstand. Hvis forudsætningerne ikke er opfyldt, når operationen udføres, vil operationen ikke finde sted eller muligvis mislykkes fuldstændigt. Kontrakten bruges som et abstrakt værktøj, så forudsætningerne er normalt ret generelle og mere involverer programmets tilstand end specifikke variabler.
Den sidste del af driftskontrakter definerer eventuelle post-konditioner. Efterbetingelser er en liste over varer inden for programmodellen, der er ændret på grund af udførelsen af operationen. Dette kan specificere ændringer i en datastruktur eller ændringer af programmets tilstand, såsom at skifte kontrol til et separat modul. Gennem brug af veldefinerede driftskontrakter kan programmer modelleres og ændres effektivt, før den faktiske implementering begynder.