650 likes | 744 Views
Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo. perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin. OSA 2: Olioperustainen analyysi ja suunnittelu.
E N D
Olioperustainen ohjelmistokehitysTampereen yliopisto, syksy 2000Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin
OSA 2: Olioperustainen analyysi ja suunnittelu Sisältö: UML-notaatio, mallinnusmenetelmät, olioperustainen analyysi- ja suunnitteluprosessi
Luku 7: Esimerkki ohjelmiston kehittämisestä Olioperustainen ohjelmistokehitysprosessi
7.1. Vaatimusanalyysi Käyttäytymisnäkökulma: Käyttötapaukset Rakennenäkökulma: Käsitteellinen malli
Vaatimusanalyysi: Käyttötapaukset Analyysin lähtökohta: VAATIMUSMÄÄRITTELY • identifioidaan käyttötapaukset • määritellään niiden suhteet käyttötapauskaaviolla • kuvataan ne tarkemmin sekvenssikaavioilla • yksi sekvenssikaavio käyttötapausta kohden tavallisimmasta tapauksesta • poikkeustilanteet voidaan kuvata erikseen • muodostetaan tehtävälista
Esimerkki ohjelmiston kehittämisestä Olioperustainen analyysi, arkkitehtuurisuunnittelu ja yksityiskohtainen suunnittelu käsitellään tässä esimerkin avulla. • Tarkoituksenamme on simuloida erästä lautapeliä. • Vaatimusten keräämisvaiheesta on saatu seuraavan kalvon mukainen vaatimuskuvaus, joka on analyysin pohjana.
Vaatimuskuvaus Peli on toteutettava tietokoneelle interaktiivisena graafisena sovelluksena. Peliä pelaa kaksi tai useampia pelaajia. Kullakin pelaajalla on oman värinen nappulansa, jota liikutellaan pelilaudalla. Aluksi kaikkien nappuloiden sijainti on lähtöpaikassa. Kukin pelaaja saa pelin alussa tietyn summan pelirahoja. Peliin kuuluu noppa, joka näyttää, montako askelta nappula vuorollaan ottaa. Nappulat liikkuvat pitkin paikoista koostuvia polkuja, jotka voivat haarautua. Yhden siirron aikana ei voi kääntyä välipaikasta takaisin tulosuuntaansa, ellei välipaikka ole lähtöpaikka. Lähtöpaikkaan voi pysähtyä vain, jos se on nopan määräämä kohdepaikka. Kukin paikka vaatii yhden askeleen. Paikat voivat olla joko tavallisia tai erikoispaikkoja. Jokaisen erikoispaikan päällä on nurinpäin lappu, joka ilmoittaa mitä pelaaja saa jos kääntää lapun. Päätyessään erikoispaikkaan pelaaja voi ostaa yhdellä pelirahallaan lapun kääntämisen. Lappu voi olla rosvo, jolloin pelaaja menettää kaikki rahansa, jalokivi, jolloin pelaaja saa sen arvon verran rahaa, tai aarre. Aarretta ei voi myydä, mutta pelaaja, jolla on aarre ja jonka nappula sijaitsee lähtöpaikassa, on voittanut pelin. Aarteen menettää toiselle pelaajalle, joka siirtyy samaan paikkaan aarteen omaavan pelaajan kanssa. Joidenkin erikoispaikkojen välillä on lentoreittejä. Ollessaan erikoispaikassa pelaaja voi omalla siirtovuorollaan halutessaan lentää lentoreittiä maksamalla yhden yksikön pelirahaa, ja siirtyä sillä tavoin toiseen erikoispaikkaan. Pelilaudan, paikkojen, nappuloiden, lappujen ym. ulkonäköä ei spesifioida, mutta kullakin oletetaan olevan oma graafinen esityksensä näytöllä.
Käyttötapausten määrittely 1. Vaatimusanalyysi aloitetaan käyttötapausten määrittelyllä.
Pohdintaa vaatimusmäärittelyn perusteella Vaatimusmäärittelyn ja aihepiirin yleisen tietämyksen perusteella: • Varsinainen peli koostuu sarjasta pelikierroksia siten, että kullakin kierroksella pelaajat järjestyksessä liikuttavat nappulaansa. • Näin siis pelikierros puolestaan koostuu sarjasta pelaajien pelivuoroja. • Vuorollaan pelaaja voi joko käyttää lentoreittiä tai arpaa.
Käyttötapausten määrittely • Voimme tulkita toisaalta yhden kokonaisen pelikierroksen ja toisaalta yhden pelivuoron (joko arpaa tai lentoreittiä käyttäen) käyttötapauksina. • Pelivuoron aikana siirron jälkeen mahdollisesti tapahtuva erikoispaikan lapun kääntö voidaan myös ottaa käyttötapaukseksi. • Lisäksi voimme ajatella, että pelin alussa tapahtuvapelaajien rekisteröinti ja nappuloiden jakaminen on oma käyttötapauksensa.
Pelisovelluksen käyttötapauskaavio Pelisovellus Aloitus <<extend>> Pelikierros <<extend>> Lento Pelaaja Askellus <<extend>> Lapunkääntö <<extend>>
Käyttötapaus Aloitus Pelisovellus näyttää dialogin, johon kukin pelaaja kirjoittaa nimensä. Sovellus arpoo ja näyttää kullekin nappulan värin. Pelitilanne alustetaan asettamalla nappulat lähtöruutuun ja arpomalla laput erikoispaikkoihin.
Käyttötapaus Pelikierros Kaikille pelaajille tehdään järjestyksessä seuraavat toimet: Jos pelaaja on erikoispaikassa ja hänellä on pelirahaa, näytetään dialogi, jossa kysytään, haluaako pelaaja lentää vai kulkea polkua. Pelaaja valitsee jomman kumman, jonka jälkeen menetellään kuten Lento- tai Askellus-käyttötapauksessa. Jos pelaaja ei ole erikoispaikassa tai hänellä ei ole rahaa, menetellään kuten Askellus-käyttötapauksessa.
Käyttötapaus Lento Pelaaja on ilmoittanut haluavansa lentää. Pelaajalle osoitetaan mahdolliset kohteet, joista pelaaja valitsee yhden. Pelaajan nappula siirretään kohteeseen, ja hänen rahojaan vähennetään yhdellä yksiköllä. Jos kohde on lähtöpaikka ja pelaajalla on aarre, pelaaja on voittanut ja peli päättyy. Muuten: Jos kohteessa on toinen pelaaja, jolla on aarre, anastetaan aarre. Jos kohteessa on jäljellä lappu ja pelaajalla on rahaa, kysytään, haluaako pelaaja kääntää lapun. Jos pelaaja vastaa myöntävästi, menetellään kuten Lapunkääntö-käyttötapauksessa.
Käyttötapaus Askellus Pelaaja on ilmoittanut haluavansa käyttää noppaa, tai hänellä ei ole muuta mahdollisuutta. Arpaa heitetään, tulos näytetään, ja pelaajalle osoitetaan mahdolliset kohdepaikat. Pelaaja valitsee niistä yhden ja pelaajan nappula siirretään siihen. Jos kohde on lähtöpaikka ja pelaajalla on aarre, pelaaja on voittanut ja peli päättyy. Muuten: Jos kohteessa on toinen pelaaja, jolla on aarre, anastetaan aarre. Jos kohde on erikoispaikka, siinä on jäljellä lappu ja pelaajalla on rahaa, kysytään, haluaako pelaaja kääntää lapun. Jos pelaaja vastaa myöntävästi, menetellään kuten Lapunkääntö-käyttötapauksessa.
Käyttötapaus Lapunkääntö Pelaaja on päätynyt lappupaikalle ja ilmoittanut haluavansa kääntää lapun. Pelaajalta veloitetaan yksi rahayksikkö, ja lappu käännetään. Jos lappu on jalokivi, pelaajalle annetaan vastaava rahasumma, jos lappu on rosvo, pelaajalta otetaan pois kaikki rahat, ja jos lappu on aarre, pelaajalle annetaan aarre.
Käyttötapauksen täsmennys • tulo- ja jättöehdot • sekvenssikaavio • käyttäjän ja järjestelmän vuorovaikutus tavanomaisimmassa tapauksessa
Käyttötapauksen Askellus kuvaus (1/3) Käyttötapaus: Askellus Kuvaus: Pelaajan pelivuoro noppaa käyttäen Tuloehdot: Aloitus on suoritettu. Vuorossa oleva pelaaja on ilmoittanut haluavansa käyttää noppaa tai hänellä ei ole muuta mahdollisuutta. Jättöehdot: Pelaaja on siirtynyt uuteen paikkaan ja suorittanut tähän paikkaan liittyvät toimet. Peli on päättynyt, jos uusi paikka on lähtöpaikka ja pelaajalla on aarre. Sekvenssikaavio: Kaavio kuvaa tilanteen, missä kohdepaikassa on lappu, jonka pelaaja kääntää.
Käyttötapauksen Askellus kuvaus (2/3) Sovellus :Käyttäjä heitä noppaa näytä noppatulos ja kohteet kohteen valinta näytä siirto, käännetäänkö lappu? Laajennuskohta: lapunkääntö- käyttötapaus kyllä näytä tilanne
Käyttötapauksen Askellus kuvaus (3/3) Poikkeukset: Jos kohdepaikka on lähtöpaikka ja pelaajalla on aarre, peli päättyy. Jos kohdepaikalla on toinen pelaaja, jolla on aarre, aarre siirtyy paikkaan tulleelle pelaajalle.
Tehtävälista • Kun käyttötapausten kuvaukset on tehty, ne analysoidaan tehtävälistan muodostamiseksi. • Jokainen käyttäjältä järjestelmälle menevä sanomanuoli vastaa tiettyä palvelua, jota järjestelmältä pyydetään. • Jokainen järjestelmältä käyttäjälle menevä nuoli vastaa järjestelmän tulostetta.
Tehtävälista (1/2) • Pelaajan rekisteröinti • Pelin aloittaminen • Nopan heittäminen • Kohdepaikan valinta • Pelaajan siirto valittuun kohteeseen (lento, askellus) • Lapun kääntäminen • Pelin päättäminen
Tehtävälista (2/2) • Pelilaudan ja -tilanteen näyttö (kaikissa vaiheissa) • Noppatuloksen näyttö • Kohdepaikkojen näyttö • Pelaajan siirron näyttö • Lapun kääntämisen kysyminen
Vaatimusanalyysi: Analyysimalli Analyysimallin (joskus kutsutaan myös käsitteelliseksi malliksi) rakentamisen vaiheita: • luokkien tunnistaminen • mallisanaston koostaminen • assosiaatioiden tunnistaminen • luokkien vastuiden määrittely • attribuuttien tunnistaminen • periytymissuhteiden selvittäminen • metodien tunnistaminen • tarkistukset, korjaukset ja organisointi
Käsitteellinen malli: luokat Tehtävä: poimi vaatimusmäärittelystä nimisanat (eli substantiivit). • Nimisanat ovat potentiaalisia luokkia.
Potentiaaliset luokat Peli on toteutettava tietokoneelle interaktiivisena graafisena sovelluksena. Peliä pelaa kaksi tai useampia pelaajia. Kullakin pelaajalla on oman värinen nappulansa, jota liikutellaan pelilaudalla. Aluksi kaikkien nappuloiden sijainti on lähtöpaikassa. Kukin pelaaja saa pelin alussa tietyn summanpelirahoja. Peliin kuuluu noppa, joka näyttää, montako askelta nappula vuorollaan ottaa. Nappulat liikkuvat pitkin paikoista koostuvia polkuja, jotka voivat haarautua. Yhden siirron aikana ei voi kääntyä välipaikasta takaisin tulosuuntaansa, ellei välipaikka ole lähtöpaikka. Lähtöpaikkaan voi pysähtyä vain, jos se on nopan määräämä kohdepaikka. Kukin paikka vaatii yhden askeleen. Paikat voivat olla joko tavallisia tai erikoispaikkoja. Jokaisen erikoispaikan päällä on nurinpäin lappu, joka ilmoittaa mitä pelaaja saa jos kääntää lapun. Päätyessään erikoispaikkaan pelaaja voi ostaa yhdellä pelirahallaan lapun kääntämisen. Lappu voi olla rosvo, jolloin pelaaja menettää kaikki rahansa, jalokivi, jolloin pelaaja saa sen arvon verran rahaa, tai aarre. Aarretta ei voi myydä, mutta pelaaja, jolla on aarre ja jonka nappula sijaitsee lähtöpaikassa, on voittanut pelin. Aarteen menettää toiselle pelaajalle, joka siirtyy samaan paikkaan aarteen omaavan pelaajan kanssa. Joidenkin erikoispaikkojen välillä on lentoreittejä. Ollessaan erikoispaikassa pelaaja voi omalla siirtovuorollaan halutessaan lentää lentoreittiä maksamalla yhden yksikön pelirahaa, ja siirtyä sillä tavoin toiseen erikoispaikkaan. Pelilaudan, paikkojen, nappuloiden, lappujen ym. ulkonäköä ei spesifioida, mutta kullakin oletetaan olevan oma graafinen esityksensänäytöllä.
Potentiaaliset luokat peli tietokone pelaaja nappula pelilauta summa peliraha noppa askel vuoro paikka polku erikoispaikka lappu rosvo jalokivi aarre lähtöpaikka esitys näyttö lentoreitti sijainti sovellus siirto tulosuunta välipaikka kohdepaikka
Luokkien hylkäämisperusteita • epäolennainen • oleellisesti sama kuin jokin toinen luokka • todennäköinen attribuutti, arvo • todennäköinen operaatio • kontrolliin liittyvä käsite • toisen luokan rooli • suhde luokkien välillä • epämääräinen • liittyy toteutukseen
Hylätyt luokat (1/2) • tietokone (epäolennainen) • pelilauta (oleellisesti sama kuin polku) • summa (todennäköisesti attribuutti) • peliraha (arvo: ei todennäköisesti tarvitse luokkaa) • askel (toimenpide, mahdollisesti operaatio) • vuoro (kontrolliin liittyvä) • lähtöpaikka (kuvaa paikan roolia) • esitys (epäolennainen)
Hylätyt luokat (2/2) • näyttö (epäolennainen) • sijainti (suhde: ei todennäköisesti tarvitse luokkaa) • sovellus (epäolennainen) • siirto (toimenpide, mahdollisesti operaatio) • tulosuunta (epäolennainen) • välipaikka (kuvaa paikan roolia) • kohdepaikka (kuvaa paikan roolia) Korvaamme vielä nimen "polku" kuvaavammalla nimellä "kartta".
Käsitteellinen malli: mallisanasto • Kun luokat on karsittu, tehdään jäljelle jääneistä luokista alustava mallisanasto. • Tätä täydennetään myöhemmin tärkeimpien assosiaatioiden, attribuuttien ja operaatioiden nimillä. • Laaja sanasto kannattaa jakaa loogisiin osiin. • Mallisanastoa käytetään analyysin pohjana vaatimusmäärittelyn ja käyttötapausten lisäksi.
Alustava mallisanasto (1/2) Aarre Lapun eräs symbolivaihtoehto. Esiintyy täsmälleen kerran. Pelaaja, jolla on aarre hallussaan, kun hänen nappulansa on lähtöpaikassa, on voittanut pelin. Erikoispaikka Paikka, joka on merkitty sellaiseksi, että siihen voidaan asettaa lappu. Erikoispaikkaan päätyessään pelaaja voi ostaa lapun kääntämisen. Jalokivi Lapun eräs symbolivaihtoehto. Aiheuttaa pelaajan rahojen lisäämisen arvollaan. Kartta Pelin symbolinen tapahtumapaikka. Koostuu paikoista, jotka on järjestetty symmetrisellä suhteella "viereinen": jos paikka a on viereinen paikalle b, paikasta a voi yhdellä askeleella siirtyä paikkaan b. Paikka voi olla viereinen useille muille paikoille. Lappu Jokaiseen erikoispaikkaan asetettava symboli, joka on aluksi peitetty, mutta jonka pelaaja voi ostaa käännettäväksi.
Alustava mallisanasto (2/2) Lentoreitti Kahden erikoispaikan välinen suhde, joka mahdollistaa pelaajalle siirtymisen vuorollaan erikoispaikasta toiseen maksamalla pelirahan. Nappula Pelaajan edustaja pelilaudalla. Noppa Väline, joka antaa pyydettäessä satunnaisesti jakautuneen kokonaisluvun väliltä 1-6. Käytetään askelluvun määräämiseen, kun nappulalla on vuoro liikkua pelilaudalla. Paikka Pelilaudan kartalla oleva merkitty kohta, jossa nappula voi sijaita pelin kuluessa. Pelaaja Pelin osallistuja. Peli Pelisääntöjen ohjaama pelaajien vuorovaikutteinen toiminta, jossa pyritään pelin voittamiseen. Rosvo Lapun eräs symbolivaihtoehto. Aiheuttaa pelaajan rahojen nollaamisen.
Analyysimalli: assosiaatiot • Assosiaatiot ovat luokkien välisiä suhteita, viittauksia ja riippuvuuksia vaatimusmäärittelyssä. • Assosiaatiot esitetty usein verbeinä tai adverbeina. • sijainti (esim. seuraava, edellinen) • ohjaus (esim. liikutella, kääntää) • kommunikointi (esim. ilmoittaa) • sisältyvyys (esim. koostua) • muu suhde (esim. lainata)
Käsitteellinen malli: assosiaatiot Tehtävä: poimi vaatimusmäärittelystä verbit ja adverbit, jotka ovat mahdollisia assosiaatioita. • analyysin pohjana käytetään myös käyttötapausten kuvauksia ja mallisanastoa
Potentiaaliset assosiaatiot Peli on toteutettava tietokoneelle interaktiivisena graafisena sovelluksena. Peliäpelaa kaksi tai useampia pelaajia. Kullakin pelaajalla on oman värinen nappulansa, jota liikutellaan pelilaudalla. Aluksi kaikkien nappuloiden sijainti on lähtöpaikassa. Kukin pelaaja saa pelin alussa tietyn summan pelirahoja. Peliin kuuluu noppa, joka näyttää, montako askelta nappula vuorollaan ottaa. Nappulat liikkuvat pitkin paikoista koostuvia polkuja, jotka voivat haarautua. Yhden siirron aikana ei voi kääntyä välipaikasta takaisin tulosuuntaansa, ellei välipaikka ole lähtöpaikka. Lähtöpaikkaan voi pysähtyä vain, jos se on nopan määräämä kohdepaikka. Kukin paikka vaatii yhden askeleen. Paikat voivat olla joko tavallisia tai erikoispaikkoja. Jokaisen erikoispaikan päällä on nurinpäin lappu, joka ilmoittaa mitä pelaaja saa jos kääntää lapun. Päätyessään erikoispaikkaan pelaaja voi ostaa yhdellä pelirahallaan lapun kääntämisen. Lappu voi olla rosvo, jolloin pelaaja menettää kaikki rahansa, jalokivi, jolloin pelaaja saa sen arvon verran rahaa, tai aarre. Aarretta ei voi myydä, mutta pelaaja, jolla on aarre ja jonka nappula sijaitsee lähtöpaikassa, on voittanut pelin. Aarteen menettää toiselle pelaajalle, joka siirtyy samaan paikkaan aarteen omaavan pelaajan kanssa. Joidenkin erikoispaikkojen välillä on lentoreittejä. Ollessaan erikoispaikassa pelaaja voi omalla siirtovuorollaan halutessaan lentää lentoreittiä maksamalla yhden yksikön pelirahaa, ja siirtyä sillä tavoin toiseen erikoispaikkaan. Pelilaudan, paikkojen, nappuloiden, lappujen ym. ulkonäköä ei spesifioida, mutta kullakin oletetaan olevan oma graafinen esityksensä näytöllä.
Potentiaaliset assosiaatiot (1/2) (1) Pelaajat pelaavat peliä (2) Pelaajalla on nappula (3) Nappula sijaitsee lähtöpaikassa (4) Nappulaa liikutellaan pelilaudalla (5) Peliin kuuluu noppa (6) Noppa näyttää askeleet (7) Nappulat liikkuvat kartalla (8) Kartta koostuu paikoista (9) Paikka vaatii askeleen (10) Erikoispaikan päällä on lappu (11) Pelaaja ostaa lapun kääntämisen
Potentiaaliset assosiaatiot (2/2) (12) Lappu ilmoittaa pelaajalle (13) Pelaaja menettää rahat (14) Pelaaja saa rahaa (15) Pelaajalla on aarre hallussaan (16) Pelaaja voittaa pelin (17) Pelaajat ovat samassa paikassa (18) Erikoispaikkojen välillä on lentoreittejä (19) Pelaaja maksaa lentoreitin (20) Pelaaja käyttää lentoreittiä (21) Pelilaudalla on graafinen esitys (22) Paikka on viereinen toiselle paikalle
Assosiaatioiden hylkäämisperusteita • liittyy hylättyyn luokkaan (HL) • liittyy hetkelliseen toimintaan, eikä pysyvään suhteeseen (HT) – huom. näistä voidaan saada metodeja • triviaali (TRIV) • epäolennainen (EO) • liittyy toteutukseen (TOT) • kuvaa monikkoassosiaation, joka pitäisi purkaa binäärisiksi assosiaatioiksi (MA) • johdettavissa muista assosiaatioista (JOHD)
Hylätyt assosiaatiot (1/2) (1) Pelaajat pelaavat peliä (2) Pelaajalla on nappula (3) Nappula sijaitsee lähtöpaikassa jossakin paikassa (4) Nappulaa liikutellaan pelilaudalla (HL) (5) Peliin kuuluu noppa (6) Noppa näyttää askeleet (HL) (7) Nappulat liikkuvat kartalla (HT) (8) Kartta koostuu paikoista (9) Paikka vaatii askeleen (HL) (10) Erikoispaikan päällä on lappu (11) Pelaaja ostaa lapun kääntämisen (HT)
Hylätyt assosiaatiot (2/2) (12) Lappu ilmoittaa pelaajalle (TRIV) (13) Pelaaja menettää rahat (HL) (14) Pelaaja saa rahaa (HL) (15) Pelaajalla on aarre hallussaan (16) Pelaaja voittaa pelin (HT) (17) Pelaajat ovat samassa paikassa (JOHD) (18) Erikoispaikkojen välillä on lentoreittejä (19) Pelaaja maksaa lentoreitin (HT) (20) Pelaaja käyttää lentoreittiä (HT) (21) Pelilaudalla on graafinen esitys (HL) (22) Paikka on viereinen toiselle paikalle
Assosiaatioiden täsmentäminen (1/2) • Annetaan kullekin assosiaatiolle mahdollisimman kuvaava, lyhyt nimi. • Lisätään mahdolliset rajoitteet, roolinimet, yksilöinnit ja kertautumiset.
Assosiaatioiden täsmentäminen nimi yksil. kert. rajoite Pelaajat pelaavat peliä pelaa nimi *-1 {ordered} Pelaajalla on nappula käyttää 0..1-0..1 Nappula sijaitsee paikassa sijaitsee *-1 Peliin kuuluu noppa kuuluu 1-1 Kartta koostuu paikoista koostuu 1-* Erikoispaikan päällä on lappu peittää 1-0..1 Pelaajalla on aarre hallussaan omistaa 0..1-0..1 Erikoispaikkojen välillä on lentoreittejä päättyy 2-* Paikka on viereinen toiselle paikalle seuraa *-*
Analyysivaiheen alustava luokkakaavio omistaa Aarre käyttää Pelaaja Nappula 0..1 0..1 0..1 0..1 {ordered} * * sijaitsee pelaa 1 Erikoispaikka Noppa Peli kuuluu 1 1 2 1 päättyy peittää 0..1 * 1 Lentoreitti Lappu koostuu Paikka Kartta * 1 * * seuraa
Analyysimalli: luokkien vastuut • Tietoja tallettava luokka • Ei ole useinkaan tarpeen antaa vastuita. • Säiliöluokille on kuitenkin syytä antaa vastuut, koska niiden tulee huolehtia myös alkioidensa organisoimisesta. • Samankaltaiset luokat • Jos kahden luokan vastuut näyttävät tulevan samoiksi, eikä kyse ole aliluokkasuhteesta, on syytä pohtia ovatko molemmat tarpeellisia.
Analyysimalli: luokkien vastuut Lappu Aiheuttaa pelaajan tilan muutoksen, kun pelaaja kääntää sen. Lentoliikenne Ylläpitää ja antaa tiedot lentoreiteistä. Nappula Pitää kirjaa pelaajan paikasta kartalla. Noppa Antaa satunnaisesti jakautuneen kokonaisluvun väliltä 1-6. Paikka Pitää kirjaa mahdollisesta lapustaan ja siitä onko se käännetty vai ei. Kääntää lapun tarvittaessa. Pelaaja Pitää kirjaa pelaajan omaisuudesta (rahat ja aarre) ja nappulasta.
Analyysimalli: luokkien vastuut Peli Rekisteröi pelaajat, alustaa pelin, ja ohjaa pelin kulkua huolehtien siitä, että pelaajat noudattavat pelin sääntöjä. Peliseurue Ylläpitää ja antaa tiedot pelaajista. Kartta Ylläpitää tiedot paikoista ja niiden keskinäisistä suhteista. Antaa tietyn paikan n-viereiset paikat (n = 1, 2, ... , 6). (Paikka a on n-viereinen paikalle b, jos a:sta pääsee n:llä askeleella b:hen)
Luokkien lisääminen • Millään aiemmista luokista ei ollut vastuullaan lentoreittitietojen ylläpitämistä ja antamista. • Tämän vuoksi tehtiin uusi luokka Lentoliikenne, joka kokoaa yhteen lentoreitit. • Samoin selkeyden vuoksi tehtiin luokka Peliseurue, joka huolehtii pelaajiin liittyvästä kirjanpidosta.
Assosiaatioiden lisääminen Lisättyihin luokkiin liittyvät uudet assosiaatiot: nimi yksil. kert. rajoite Lentoliikenne koostuu lentoreiteistä Koostuu paikka 1-* Peliin sisältyy lentoliikenne Sisältyy 1-1 Peliseurue koostuu pelaajista Koostuu nimi 1-1 {ordered} Peliseurue pelaa peliä Pelaa 1-1 Kaksi viimeistä korvaavat aiemman assosiaation: Pelaajat pelaavat peliä (JOHD) pelaa nimi *-1 {ordered}
Analyysimalli: attribuutit Tehtävä: poimi vaatimusmäärittelystä nimisanat, jotka esiintyvät genetiivin (tai vast.) yhteydessä. • Nämä ovat mahdollisia attribuutteja.