Kapitel 23. Objektorienteret analyse og design

Indhold:

Kapitlet giver idéer til, hvordan en problemstilling kan analyseres, før man går i gang med at programmere.

Forudsætter Kapitel 6, Nedarvning.

Når et program udvikles sker det normalt i fem faser:

  1. Kravene til programmet bliver afdækket.

  2. Analyse - hvad det er for ting og begreber programmet handler om.

  3. Design - hvordan programmet skal laves.

  4. Programmering.

  5. Afprøvning.

I traditionel systemudvikling udføres de fem faser efter hinanden, og en ny fase påbegyndes først når den forrige er afsluttet. Hver fase udmøntes i et dokument som senere kan bruges dokumentation af systemet.

Dette er i skarp modsætning til den måde som en selvlært umiddelbart ville programmere. Her blandes faserne sammen i hovedet på programmøren, som skifter mellem dem mens han programmerer. Resultatet er ofte et program, der bærer præg af ad-hoc-udbygninger og som er svært at overskue og vedligeholde - selv for programmøren selv.

Den bedste udviklingsmetode findes nok et sted mellem de to ekstremer. Der dukker f.eks. altid nye ting op under programmeringen som gør, at man må ændre sit design. Omvendt er det svært at programmere uden et gennemtænkt design.

Derfor er det ikke en god idé at bruge alt for lang tid på at lave fine tegninger og diagrammer - en blyantskitse er lige så god. Det er indholdet, der tæller, og ofte laver man om i sit design flere gange, inden programmet er færdigt.

Dette kapitel viser gennem et eksempel (et Yatzy-spil) en grov skitse til analyse og design af et program. Det er tænkt som inspiration til, hvordan man kunne gribe sit eget projekt an.

23.1. Krav til programmet

Vi skal lave et Yatzy-spil for flere spillere. Der kan være et variabelt antal spillere, hvoraf nogle kan være styret af computeren. Computerspillerne skal have forskellige strategier (dum/tilfældig, grådig, strategisk), der vælges tilfældigt.

Efter at spillet er afsluttet, huskes resultatet i et lager, hvorfra man kan generere en hiscore-liste.