Skip to main content

Vad är en design av Contract ?

Design efter kontrakt reg;är en metod som används för att utveckla programvara som förlitar sig på upprättandet av väldefinierade gränssnittsparametrar eller kontrakt för alla delar av ett program.Även om design av Contract kan ses som en konceptuell utvecklingsstil som implementeras genom dokumentation eller modellering, den används mer för att hänvisa till en infödd eller tredje parts mekanism inom vissa programmeringsspråk som faktiskt kräver implicita kodning av kontrakten inom ett program.Målet med att använda design av Contract är att ett program kommer att utvecklas och så småningom kodas på ett mycket mer fullständigt sätt som tar bort mer triviala fel, medan verkställigheten av kontrakten från det stödjande språket gör att alla återstående fel lätt hittas och fångas.Ett program som använder kontrakt för funktioner och klasser kan ha en mer modulär design där enskilda klasser enkelt kan återanvändas i andra program på grund av den tydliga definitionen av sina kontrakt.

Grunden för designen efter kontrakt reg;Programmeringsfilosofi är idén om verkliga affärskontrakt.I denna modell definierar varje metod och klass i ett objektorienterat program ett kontrakt genom vilket någon annan metod eller objekt som interagerar med den måste följa.Varje klass kan också ha ett kontrakt, kallad en klassinvariant, att den måste följa internt för att säkerställa att externa kontrakt inte äventyrar dess förmåga att fungera.

De två delarna av ett kontrakt som är viktigast under design och kodning är förutsättningarnaoch efterkonditionerna.Dessa två delar av designen efter kontrakt reg;Modellen definierar tillståndet för programmet innan en metod kallas och programmets tillstånd efter att metoden har slutfört körning.Andra delar av ett kontrakt kan variera beroende på implementering men kan inkludera korsreferenser till andra moduler, synkroniseringsförhållanden och krav på utförande.

Genom att utveckla kontrakt för varje klass och metod kan interaktionen mellan de olika delarna av ett programlätt mappas och förutsägas.Tillämpningen av kontrakten, antingen genom användning av påståenden eller andra mekanismer, säkerställer också att programmet inte kommer att försöka genomföra om det finns en kränkning av kontrakt, eftersom varje produktion som produceras i det tillståndet tekniskt sett skulle vara ogiltigt.När den implementeras som ett modersmål, design efter kontrakt reg;kan hjälpa till att säkerställa att en slutprodukt kommer att fungera som förväntat med liten chans för oförutsedda fel.

Några av de komplikationer som följer med användning av designen genom kontrakt reg;Filosofin inkluderar längre designtider och mer granulär utveckling av ett system innan kodningen börjar, vilket ibland kan vara svårt med ett stort projekt.Mer praktiskt taget kan kontraktsvalideringsmekanismen som används på ett programmeringsspråk som naturligtvis stöder kontrakt bromsa programutförandet.En dålig förståelse av designen av Contract Metodik kan leda till ett program som använder kontrakt för att utföra grundläggande felkontroll, vilket potentiellt kan leda till en applikation som är benägen att plötsligt kraschar efter frigöring.