Skip to main content

Hvad er et design af kontrakt reg;?

Design efter kontrakt reg;er en metode, der bruges til at udvikle software, der er afhængig af etablering af veldefinerede interface-parametre eller kontrakter for alle dele af et program.Selvom design efter kontrakt reg;Kan ses som en konceptuel udviklingsstil, der implementeres gennem dokumentation eller modellering, det bruges mere udbredt til at henvise til en indfødt eller tredjepartsmekanisme inden for nogle programmeringssprog, der faktisk kræver den implicitte kodning af kontrakterne i et program.Målet med at bruge design efter kontrakt reg;Er det et program vil blive udviklet og til sidst kodet på en meget mere komplet måde, der fjerner mere trivielle fejl, mens håndhævelse af kontrakterne fra det understøttende sprog gør eventuelle resterende fejl, der let findes og er fanget.Et program, der bruger kontrakter for funktioner og klasser, kan have et mere modulært design, hvor individuelle klasser let kan genbruges i andre programmer på grund af den klare definition af deres kontrakter.

Grundlaget for design af kontrakt og reg;Programmeringsfilosofi er ideen om forretningskontrakter i den virkelige verden.I denne model definerer hver metode og klasse i et objektorienteret program en kontrakt, hvor enhver anden metode eller objekt, der interagerer med den, skal overholde.Hver klasse kan også have en kontrakt, kaldet en klasse invariant, at den skal følge internt for at sikre, at eksterne kontrakter ikke går på kompromis med dens evne til at fungere.

De to dele af en kontrakt, der er vigtigst under design og kodning, er forudsætningerneog postkonditionerne.Disse to dele af designet efter kontrakt reg;Model definerer programmets tilstand, før en metode kaldes, og programmets tilstand, efter at metoden er afsluttet.Andre dele af en kontrakt kan variere efter implementering, men kan omfatte krydshenvisninger til andre moduler, synkroniseringsbetingelser og ordre-af-eksekutionskrav.

Ved at udvikle kontrakter for hver klasse og metode, kan interaktionen mellem de forskellige dele af et program kanlet kortlægges og forudsages.Håndhævelsen af kontrakterne, enten ved hjælp af påstande eller andre mekanismer, sikrer også, at programmet ikke vil forsøge at udføre, hvis der er en overtrædelse af kontrakter, fordi ethvert output, der er produceret i denne stat, teknisk set ville være ugyldigt alligevel.Når det implementeres som en modersmål, design efter kontrakt og reg;kan hjælpe med at sikre, at et slutprodukt fungerer som forventet med ringe chance for uforudsete fejl.

Nogle af de komplikationer, der følger med brugen af designet efter kontrakt og reg;Filosofi inkluderer længere designtider og mere granulær udvikling af et system, før kodning begynder, hvilket undertiden kan være vanskeligt med et stort projekt.Mere praktisk kan den kontraktvalideringsmekanisme, der bruges på et programmeringssprog, som naturligt understøtter kontrakter, bremse programudførelsen.En dårlig forståelse af designet efter kontrakt og reg;Metodologi kan føre til et program, der bruger kontrakter til at udføre grundlæggende fejlkontrol, hvilket potentielt fører til en applikation, der er tilbøjelig til pludselige nedbrud efter frigivelse.