Hva er et design av Contract®?

Design av Contract® er en metode som brukes til å utvikle programvare som er avhengig av etablering av veldefinerte grensesnittparametere, eller kontrakter, for alle deler av et program. Selv om design av Contract® kan sees på som en konseptuell utviklingsstil som implementeres gjennom dokumentasjon eller modellering, brukes den mer utbredt for å referere til en innfødt eller tredjepartsmekanisme innenfor noen programmeringsspråk som faktisk krever implisitt koding av kontraktene i et program. Målet med å bruke Design by Contract® er at et program vil bli utviklet og til slutt kodet på en mye mer komplett måte som fjerner mer trivielle feil, mens håndhevelse av kontraktene fra støttespråket gjør eventuelle restfeil lett funnet og fanget. Et program som bruker kontrakter for funksjoner og klasser kan ha en mer modulær design der individuelle klasser enkelt kan brukes på nytt i andre programmer på grunn av den klare definisjonen av kontraktene sine.

grunnlaget forr Design av Contract® Programming Philosophy er ideen om forretningskontrakter i den virkelige verden. I denne modellen definerer hver metode og klasse i et objektorientert program en kontrakt som en hvilken som helst annen metode eller objekt som samhandler med den, må overholde. Hver klasse kan også ha en kontrakt, kalt en klasse invariant, at den må følge internt for å sikre at utvendige kontrakter ikke kompromitterer dens evne til å fungere.

De to delene av en kontrakt som er viktigst under design og koding, er forutsetningene og post-conditionene. Disse to delene av designen av Contract® -modellen definerer tilstanden til programmet før en metode kalles og tilstanden til programmet etter at metoden er fullført. Andre deler av en kontrakt kan variere ved implementering, men kan omfatte kryssreferanser til andre moduler, synkroniseringsbetingelser og krav til utførelsesrekkefølge.

Ved å utvikle kontrakter for hver klasse og metode, kan samspillet mellom de forskjellige delene av et program lett kartlegges og forutsies. Håndhevelse av kontraktene, enten ved bruk av påstander eller andre mekanismer, sikrer også at programmet ikke vil forsøke å utføre hvis det er brudd på kontrakter, fordi en hvilken som helst produksjon produsert i den staten teknisk sett vil være ugyldig uansett. Når det er implementert som morsmål, kan Design by Contract® bidra til å sikre at et sluttprodukt vil fungere som forventet med liten sjanse for uforutsette feil.

Noen av komplikasjonene som følger med bruk av design av Contract® -filosofien inkluderer lengre designtider og mer granulær utvikling av et system før koding begynner, noe som noen ganger kan være vanskelig med et stort prosjekt. Mer praktisk kan kontraktsvalideringsmekanismen som brukes på et programmeringsspråk som ikke støtter kontrakter, redusere utførelsen av programmet. En dårlig forståelse av tHan design av Contract® -metodikk kan føre til et program som bruker kontrakter for å utføre grunnleggende feilsjekking, og potensielt føre til en applikasjon som er utsatt for plutselige krasj etter løslatelse.

ANDRE SPRÅK