Kaj so pogodbe o delovanju?

Na področju računalniškega programiranja in računalništva so pogodbe o delovanju način za določitev ali dokumentiranje, kako bo določena funkcija spremenila različne elemente v programu. Za razliko od vmesnika za abstraktno programiranje (API) ali kontrolnega dokumenta vmesnika se pogodbe o delovanju uporabljajo kot pomoč med fazo razvoja in modeliranja ustvarjanja računalniške aplikacije ali sistema. Na najosnovnejši ravni pogodba opredeljuje štiri značilnosti operacije, natančneje ime operacije, vse reference na operacijo na drugih področjih načrtovanja, vse zahteve za vnos ali stanje pred izvedbo operacije in stanje sistem ali spremenljivke po izvedbi operacije. Pogodba ne opredeljuje ničesar posebnega o tem, kako operacija deluje interno, temveč se ukvarja le s tem, kako na stanje programa vpliva njegova uporaba.

Operativne pogodbe na splošno niso sestavljene za vsako operacijo znotraj programskega modela. Namesto tega so rezervirani za operacije, ki so posebej zapletene ali jim je težko slediti. Več jezikov za računalniško modeliranje, kot je Unified Modeling Language (UML), podpira pogodbe o operacijah in ima načine za pomoč pri vizualizaciji, kako se lahko stanje programa spremeni, ko je operacija izvedena.

Prvi dve definiciji, potrebni za ustvarjanje operacijskih pogodb, sta ime operacije, ki je lahko karkoli, in morebitne navzkrižne sklice. Navzkrižna sklic je seznam drugih operacij ali področij programskega modela, ki uporabljajo operacijo, ki se definira, ali ki jih bo operacija uporabila pri svoji obdelavi. To pomaga videti, kako celotna zasnova deluje, in je še posebej koristno pri uvidu, kako bodo spremembe na enem področju modela vplivale na druga področja.

Operativne pogodbe nato določajo predpogoje, potrebne za izvajanje operacije. To lahko vključuje zahtevo, da se določene spremenljivke naložijo z ustreznimi vrednostmi, ali pa zahteva, da so določeni deli programa v določenem stanju. Če predpogoji niso izpolnjeni, ko se operacija izvede, se operacija ne bo izvedla ali pa bi lahko popolnoma neuspešna. Pogodba se uporablja kot abstraktno orodje, zato so predpogoji običajno precej splošni in bolj vključujejo stanje programa kot specifične spremenljivke.

Končni del pogodb o delovanju opredeljuje morebitne naknadne pogoje. Postpogoji so seznam elementov v modelu programa, ki so bili spremenjeni zaradi izvedbe operacije. To lahko podaja spremembe podatkovne strukture ali spremembe stanja programa, kot je prenos nadzora na ločen modul. Z uporabo dobro opredeljenih operacijskih pogodb je mogoče programe učinkovito modelirati in spreminjati, preden se začne dejanska implementacija.