Abstract
Designkontrakter og ansvarsfordeling
 

 

I denne lektion tager vi udgangspunkt i en meget vigtig kvalitet ved software, nemlig korrekthed. Vi stiller os selv spørgsmålet: 'korrekt i forhold til hvad'? Svaret på spørgsmålet er korrekthed i forhold til en specifikation. Vi ser på forskellige muligheder for at specificere et program, og vi vælger at koncentrere os om brugen af logiske udtryk i termer af pre- og postbetingelser. Ud over specifikationsproblemet ser vi også på problemstillingen omkring ansvarsfordeling. I et stort program er der meget vundet ved at være bevidst og eksplicit om fordelingen af ansvar mellem forskellige dele af programmet. Disse dele er helt naturligt objekter og operationer i det objekt-orienterede paradigme. Under behandlingen af ansvarsfordeling læner vi os op ad en god metafor, nemlig kontraktbegrebet, som vi ofte støder på i vores hverdag. Det viser sig at kontraktbegrebet - og subkontrakter - kan forklare væsentlige aspekter af nedarvningsmekanismen. Dette ser vi naturligvis på. Vi slutter af med forskellige praktiske spin off effekter af de foregående ideer, såsom kontraktovervågning (i forhold til programbeviser) samt undtagelseshåndtering.
 

Start
Start audio slides
Table of contents