~~NOTOC~~ {{ prog:images:banner_ooa.jpg |}} ====== Objektorienteret Analyse (OOA) på simpelt spil ====== === Formål === Lære at lave en **objektorienteret analyse (OOA)** på et simpelt spil. \\ Øvelsen træner: * Identifikation af objekter, attributter og handlinger(metoder) * Sproglig tilgang gennem ordklasser (substantiver, verber, adjektiver m.m.) * Visualisering gennem UML-diagram * Samarbejde, udarbejdning samt aflevering teknisk dokumentation ---- === Opgavebeskrivelse === * **Vælg et spil:** * Tag et simpelt brætspil fra skolens spilskab (fx Ludo, UNO, Fiskespil) * ELLER find et simpelt spil på nettet (blot det er simpelt, og de skrevne regler er tilgængelige) * **Vigtigt:** Vælg et relativt simpelt spil, ellers bliver opgaven uhåndterbar, indenfor vores tidsramme. * **Arbejd i par** * Diskuter hvilke objekter og handlinger spillet indeholder * Identificer egenskaber/attributter for objekterne * Bestem metoder/handlinger for objekterne * **Sproglig tilgang:** * Tag udgangspunkt i spillets **regelhæfte** * Marker i teksten med forskellige farver: - Substantiver → objekter/klasser - Adjektiver → attributter/egenskaber - Verber → metoder/handlinger * Dokumentationen af den sproglige tilgang kan være "quick n dirty" (//første og sidste gang i hører dette fra mig//): - Annoter i PDF med farver for de forskellige ord "klasser". - Eller print ud og brug farvede highlighters * **Modellering i UML** * Ud fra den sproglige analyse laves et UML-diagram med: * Klasser/objekter * Attributter * Metoder * Relationer mellem objekter (aggregering/nedarvning osv. ) * (interfaces?) * (patterns?) ---- ==== Dokumentation og aflevering ==== * Spil beskrivelse (kort) * OOA afleveres som PDF med af UML-diagram + tekstforklaring * Begge tilgange (sproglig og visuel) skal være (vel)dokumenteret ---- ==== Vurderingskriterier ==== * Identificerer de vigtigste objekter i spillet * Attributter og egenskaber er korrekt knyttet til objekterne. * Handlinger/metoder er korrekt identificeret og knyttet til de relevante objekter. * UML-diagrammet er overskueligt, korrekt og viser relationer mellem objekter. * Den sproglige analyse er tydelig: Substantiver, adjektiver og verber er markeret i reglerne. * Øvelsen afleveres i par, med dokumentation for både den sproglige og visuelle tilgang. ---- === Lille eksempel på OOA (for Ludo) === **Objekter og attributter** Klasse: Spiller * navn: string * farve: string - kastTerning(): int - flytBrik(brik: Brik, antal: int) Klasse: Brik * position: int * status: string - flyt(antal: int) Klasse: Terning * sider: int - kast(): int Klasse: Board * felter: liste - flytBrik(brik, antal) - erMål(brik) **Sproglig tilgang** - Substantiver → Spiller, Brik, Terning, Board - Adjektiver → farve, status - Verber → kast, flyt ---- === Tips === * Start med at identificere de vigtigste objekter i spillet, før I bekymrer jer om alle regler * Hold UML-diagrammet simpelt og overskueligt * Diskuter i par, så I får flere idéer til objekter, attributter og metoder