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.