Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
Element nr. 1 er 3
Gjenta element nr. 1 av 1
3
// Memory sjekker om 3 er riktig neste tall => ok og ferdig
// Memory genererer nytt tall i sekvensen => 4
Element nr. 2 er 4
Gjenta element nr. 1 av 2
3
// Memory sjekker om 3 er riktig neste tall => ok, men ikke ferdig
Gjenta element nr. 2 av 2
4
// Memory sjekker om 4 er riktig neste tall => ok og ferdig
// Memory genererer nytt tall i sekvensen => 7
...

...

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.