Versions Compared

Key

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

...

Vi har valget mellom tre strategier: 1) skrive MemoryProgram og dermed avdekke mer presist hvilke metoder Memory må tilby, 2) skrive Memory først og tilpasse MemoryProgram deretter, eller 3) en hybrid strategi hvor vi jobber parallelt med begge to. Dette er ofte en smaksak, men jeg foretrekker ofte å jobbe topp-ned på skissestadiet, som vi er på nå, og bunn-opp med selve kodingen. Imidlertid kan en godt jobbe litt mer på papir, for å klargjøre i litt mer detalj hva hver metode er ment å gjøre, og her kan både sekvensdiagrammer og objekttilstandsdiagrammer være nyttige. Førstnevnte illustrerer hvordan objekter utveksler data i metodekall, trigget av interaksjon med brukeren. Her er et slikt diagram basert på eksemplet over:

PlantUML Macro
actor bruker
MemoryProgram -> Memory: genererNesteTall()
Memory --> MemoryProgram: 3
MemoryProgram -> bruker: Element nr. 1 er 3
MemoryProgram -> bruker: Gjenta element nr. 1 av 1
bruker -> MemoryProgram: 3
MemoryProgram -> Memory: sjekkNesteTallFraBruker()
Memory --> MemoryProgram: ok og ferdig
MemoryProgram -> Memory: genererNesteTall()
Memory --> MemoryProgram: 4
MemoryProgram -> bruker: Element nr. 1 er 3
MemoryProgram -> bruker: Gjenta element nr. 1 av 2
bruker -> MemoryProgram: 3
MemoryProgram -> Memory: sjekkNesteTallFraBruker()
Memory --> MemoryProgram: ok, men ikke ferdig
MemoryProgram -> bruker: Gjenta element nr. 2 av 2
bruker -> MemoryProgram: 4
MemoryProgram -> Memory: sjekkNesteTallFraBruker()
Memory --> MemoryProgram: ok og ferdig
MemoryProgram -> Memory: genererNesteTall()
Memory --> MemoryProgram: 4

 

Her er kode for å representere tallsekvensen, generere et nytt tall, huske hvor langt i sekvensen brukeren har kommet og sjekke et nytt tall mot riktig tall i sekvensen:

...