Hvordan finder man ansvar?

Ansvar kan findes på mindst tre måder, men ikke alle er lige effektive. Vi vil først beskrive, hvordan man kan finde ansvar for dernæst at kommenterer effektiviteten.

Metode 1:

Ud fra den funktionelle beskrivelse af systemet, finder man det systemet skal gøre. Den funktionelle beskrivelse kan foreligge på utallige måder, bl.a. som use cases og/eller scenarier, krav i en kravspecifikation eller diverse diagrammer hentet fra forskellige formelle specifikationsmetoder.

Centralt i denne metode er, at man ikke kobler det at finde ansvar sammen med, hvilke klasser man har. Ansvar bliver da siden hen placeret på klasserne.

Advarsel mod en almindelig fejl:

Det er vigtigt at fokusere på det, som systemet skal, og ikke det som systemets omgivelser skal.

I metoder til specifikation, der anvender uses cases, er det almindeligt at benytte aktører til at beskrive omgivelserne. En almindelig fejl er at medtage aktørernes handlinger som ansvar. Aktørenes handlinger er netop ikke noget systemet skal gøre, men ofte afspejler disse handlinger naturligvis noget systemet skal gøre. Det enkleste eksempel er at en aktør skal indtaste nogle informationer og dette modsvarer at systemet modtage disse informationer og måske også registrere dem. Ansvaret er således ikke

"indtast ..." men f.eks. "registrer ... "

Metode 2:

Lav "role play" også kaldet "walk through". Ved simpelthen at spille det færdige system med et sæt af CRC kort og derved opdage manglende ansvar som det gennemspillede scenarium udvikler sig.

Metode 3:

Betragt klasserne hver for sig og find ud af hvilke ansvar klassen bør have.

 

Effektiviteten af metoderne.

Det viser sig i praksis at disse tre metoder er effektive på forskellige tidspunkter i design forløbet.

Metode 1 er især god i starten af forløbet. Man finder på kort tid relativt mange ansvar.

Metode 2 er både god til at understøtte placeringen af de ansvar man fandt under metode 1 og til selvstændigt at finde nye ansvar.

Metode 3 ses ofte anbefalet til at starte med, men erfaringerne viser at den ikke er særlig effektiv i starten. Den er derimod god i afpudsningfasen, hvor man kontrollerer at designet er sammenhængende. I denne fase bør både metode 2 og 3 benyttes.

Undertiden kan det være en smule svært at udtrykke disse ansvar hensigtsmæssigt. Et godt råd er: udtryk ansvaret så tydeligt at det kan læses uden man kan huske sammenhængen, det oprindeligt stod i.