...
PlantUML Macro |
---|
class MemoryProgram { Kommuniserer med brukeren } note top: Hovedprogram-klasse, kommuniserer med brukeren class Memory { Håndterer tilstanden underveis i spillet } note top: Logikk-klasse, håndterer tilstanden underveis i spillet MemoryProgram -right-> Memory: memory |
...
Det som ikke kommer frem av dialogen er hvordan MemoryProgram-objektet samspiller med Memory-objektet, dvs. hvilke kall MemoryProgram utfører på Memory og hvilke verdier som flyter frem (argumentverdier) og tilbake (returverdier). Dette er den vanskeligste delen av programmering: å bestemme når og hvordan objektene samhandler, altså å fordele oppgaver mellom objektene og konkretisere oppgavene som metoder med argumenter og returverdier. En måte å komme litt videre på er å legge inn kommentarer i dialogen over, som illustrerer hvordan MemoryProgram bruker Memory underveis. (Dette kunne vært tegnet som Merk at dette ikke er så ulikt et sekvensdiagram, men det er litt tidlig å bruke en så formell notasjon, siden vi ennå ikke har satt navn på metoder og gitt dem argument- og returtyper.)
// Memory genererer nytt tall i sekvensen => 3 |
...
PlantUML Macro |
---|
class MemoryProgram {
Kommuniserer med brukeren
}
class Memory {
tallsekvens
sekvensPosisjon
genererNesteTall()
sjekkNesteTallFraBruker()
}
MemoryProgram -right-> Memory: memory |
Dette er et godt utgangspunkt for å begynne å kode, og selv om det er mulig å fylle ut mer detaljer i diagrammet først, så er erfaringen at koding raskere skaper fremdrift og avdekker problemer.