Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin.

Samankaltaiset esitykset


Esitys aiheesta: "SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin."— Esityksen transkriptio:

1 SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin

2 SE-02 OSA 2: Olioperustainen analyysi ja suunnittelu Sisältö: UML-notaatio, mallinnusmenetelmät, olioperustainen analyysi- ja suunnitteluprosessi

3 SE-02 Luku 7: Esimerkki ohjelmiston kehittämisestä Olioperustainen ohjelmistokehitysprosessi

4 SE-02 7.1. Vaatimusanalyysi Käyttäytymisnäkökulma: Käyttötapaukset Rakennenäkökulma: Käsitteellinen malli

5 SE-02 Vaatimusanalyysi: Käyttötapaukset Analyysin lähtökohta: VAATIMUSMÄÄRITTELY 1.identifioidaan käyttötapaukset 2.määritellään niiden suhteet käyttötapauskaaviolla 3.kuvataan ne tarkemmin sekvenssikaavioilla –yksi sekvenssikaavio käyttötapausta kohden tavallisimmasta tapauksesta –poikkeustilanteet voidaan kuvata erikseen 4.muodostetaan tehtävälista

6 SE-02 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.

7 SE-02 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ä.

8 SE-02 Käyttötapausten määrittely 1. Vaatimusanalyysi aloitetaan käyttötapausten määrittelyllä.

9 SE-02 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.

10 SE-02 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 tapahtuva pelaajien rekister ö inti ja nappuloiden jakaminen on oma k ä ytt ö tapauksensa.

11 SE-02 Aloitus Pelikierros Lento Askellus Lapunkääntö Pelisovellus Pelaaja > Pelisovelluksen käyttötapauskaavio

12 SE-02 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.

13 SE-02 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.

14 SE-02 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.

15 SE-02 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.

16 SE-02 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.

17 SE-02 Käyttötapauksen täsmennys •tulo- ja jättöehdot •sekvenssikaavio –käyttäjän ja järjestelmän vuorovaikutus tavanomaisimmassa tapauksessa

18 SE-02 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 liit ­ tyv ä 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 ää.

19 SE-02 :Käyttäjä Sovellus heitä noppaa näytä noppatulos ja kohteet kohteen valinta näytä siirto, käännetäänkö lappu? kyllä näytä tilanne Laajennuskohta: lapunkääntö- käyttötapaus Käyttötapauksen Askellus kuvaus (2/3)

20 SE-02 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 pelaa ­ jalle.

21 SE-02 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.

22 SE-02 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

23 SE-02 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

24 SE-02 Vaatimusanalyysi: Analyysimalli Analyysimallin (joskus kutsutaan myös käsitteelliseksi malliksi) rakentamisen vaiheita: 1.luokkien tunnistaminen 2.mallisanaston koostaminen 3.assosiaatioiden tunnistaminen 4.luokkien vastuiden määrittely 5.attribuuttien tunnistaminen 6.periytymissuhteiden selvittäminen 7.metodien tunnistaminen 8.tarkistukset, korjaukset ja organisointi

25 SE-02 Käsitteellinen malli: luokat Tehtävä: poimi vaatimusmäärittelystä nimisanat (eli substantiivit). –Nimisanat ovat potentiaalisia luokkia.

26 SE-02 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 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ä.

27 SE-02 Potentiaaliset luokat pelitietokonepelaaja nappulapelilautasumma pelirahanoppaaskel vuoropaikkapolku erikoispaikkalappurosvo jalokiviaarrel ä ht ö paikka esitysn ä ytt ö lentoreitti sijaintisovellussiirto tulosuuntav ä lipaikkakohdepaikka

28 SE-02 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

29 SE-02 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)

30 SE-02 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".

31 SE-02 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.

32 SE-02 Alustava mallisanasto (1/2) AarreLapun er ä s symbolivaihtoehto. Esiintyy t ä sm ä lleen kerran. Pelaaja, jolla on aarre hallussaan, kun h ä nen nappulansa on l ä ht ö paikassa, on voittanut pelin. ErikoispaikkaPaikka, joka on merkitty sellaiseksi, ett ä siihen voidaan asettaa lappu. Erikoispaikkaan p ää tyess ää n pelaaja voi ostaa lapun k ää nt ä misen. JalokiviLapun er ä s symbolivaihtoehto. Aiheuttaa pelaajan rahojen lis ää misen arvollaan. KarttaPelin 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. LappuJokaiseen erikoispaikkaan asetettava symboli, joka on aluksi peitetty, mutta jonka pelaaja voi ostaa k ää nnett ä v ä ksi.

33 SE-02 Alustava mallisanasto (2/2) LentoreittiKahden erikoispaikan v ä linen suhde, joka mahdollistaa pelaajalle siirtymisen vuorollaan erikoispaikasta toiseen maksamalla pelirahan. NappulaPelaajan edustaja pelilaudalla. NoppaV ä 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. PaikkaPelilaudan kartalla oleva merkitty kohta, jossa nappula voi sijaita pelin kuluessa. PelaajaPelin osallistuja. PeliPelis ää nt ö jen ohjaama pelaajien vuorovaikutteinen toiminta, jossa pyrit ää n pelin voittamiseen. RosvoLapun er ä s symbolivaihtoehto. Aiheuttaa pelaajan rahojen nollaamisen.

34 SE-02 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)

35 SE-02 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

36 SE-02 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ä.

37 SE-02 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

38 SE-02 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

39 SE-02 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)

40 SE-02 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)

41 SE-02 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

42 SE-02 Assosiaatioiden täsmentäminen (1/2) •Annetaan kullekin assosiaatiolle mahdollisimman kuvaava, lyhyt nimi. •Lisätään mahdolliset rajoitteet, roolinimet, yksilöinnit ja kertautumiset.

43 SE-02 Assosiaatioiden täsmentäminen nimiyksil.kert.rajoite Pelaajat pelaavat peliäpelaanimi*-1{ordered} Pelaajalla on nappulakäyttää0..1-0..1 Nappula sijaitsee paikassasijaitsee*-1 Peliin kuuluu noppakuuluu1-1 Kartta koostuu paikoistakoostuu1-* Erikoispaikan päällä on lappupeittää1-0..1 Pelaajalla on aarre hallussaanomistaa0..1-0..1 Erikoispaikkojen välillä on lentoreittejäpäättyy2-* Paikka on viereinen toiselle paikalleseuraa*-*

44 SE-02 käyttää omistaa sijaitsee kuuluu koostuu pelaa {ordered} peittää päättyy 0..1 2 * * * ** * seuraa Nappula Peli Erikoispaikka Aarre Pelaaja Noppa Kartta Lappu Paikka Lentoreitti 1 1 11 1 0..1 1 Analyysivaiheen alustava luokkakaavio

45 SE-02 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.

46 SE-02 Analyysimalli: luokkien vastuut LappuAiheuttaa pelaajan tilan muutoksen, kun pelaaja kääntää sen. LentoliikenneYlläpitää ja antaa tiedot lentoreiteistä. NappulaPitää kirjaa pelaajan paikasta kartalla. NoppaAntaa satunnaisesti jakautuneen kokonaisluvun väliltä 1-6. PaikkaPitää kirjaa mahdollisesta lapustaan ja siitä onko se käännetty vai ei. Kääntää lapun tarvittaessa. PelaajaPitää kirjaa pelaajan omaisuudesta (rahat ja aarre) ja nappulasta.

47 SE-02 Analyysimalli: luokkien vastuut PeliRekisteröi pelaajat, alustaa pelin, ja ohjaa pelin kulkua huolehtien siitä, että pelaajat noudattavat pelin sääntöjä. PeliseurueYlläpitää ja antaa tiedot pelaajista. KarttaYllä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)

48 SE-02 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.

49 SE-02 Assosiaatioiden lisääminen Lisättyihin luokkiin liittyvät uudet assosiaatiot: nimiyksil.kert.rajoite Lentoliikenne koostuu lentoreiteistäKoostuupaikka1-* Peliin sisältyy lentoliikenneSisältyy1-1 Peliseurue koostuu pelaajistaKoostuunimi1-1{ordered} Peliseurue pelaa peliäPelaa1-1 Kaksi viimeistä korvaavat aiemman assosiaation: Pelaajat pelaavat peliä (JOHD)pelaanimi*-1{ordered}

50 SE-02 Analyysimalli: attribuutit Tehtävä: poimi vaatimusmäärittelystä nimisanat, jotka esiintyvät genetiivin (tai vast.) yhteydessä. –Nämä ovat mahdollisia attribuutteja.

51 SE-02 Analyysimalli: attribuutit 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ä.

52 SE-02 Alustavat attribuutit •nappulan arvo •jalokiven arvo •pelaajan pelirahat

53 SE-02 Analyysimalli: attribuutit •Aluksi löytyy vain pieni osa attribuuteista –mutta ei huolta, ne tulevat sitten ajallaan... •Toteutukseen liittyviä attribuutteja ei oteta mukaan. –luokkien väliset suhteet assosiaatioina! •Alustava attribuutti hylätään myös, –jos se on luokka tai rooli, –jos se voidaan korvata yksilöinnillä, –jos kyse on viitearvosta, tai –jos kyse on vähäisestä attribuutista.

54 SE-02 Attribuuttien täsmentäminen •Kaikki edellä esitetyt alustavat attribuutit ovat hyväksyttäviä. Täsmennetään ne: nimityyppiluokka nappulan värivariIntegerNappula jalokiven arvoarvoIntegerJalokivi pelaajan pelirahat rahatIntegerPelaaja

55 SE-02 Analyysimalli: periytymissuhteet •Analyysivaiheessa kiinnitetään huomiota vain käsitteelliseen periytymiseen. –yleistys- ja erikoistussuhteet •Periytymissuhteita haetaan jo identifioitujen luokkien välille, tai niistä pyritään luomaan yleistyksiä ja erikoistuksia.

56 SE-02 Yleistävät luokat •Yleistävä luokka: –onko jokin luokka jonkin toisen luokan erikoistapaus? –muodostavatko tietyt luokat vaihtoehtoisten muotojen kokoelman jollekin toiselle luokalle? •Esimerkissä: –Lappu: Aarre, Jalokivi, Rosvo –Paikka: Erikoispaikka •Havaittavissa usein yhdyssanoina.

57 SE-02 Yleistävät luokat •Uusien yleistävien luokkien hakeminen: –olisiko yhdyssanana esiintyvän luokan nimen jälkimmäinen osa järkevä luokka? –luokilla on samoja attribuutteja, operaatioita tai assosiaatioita: yhteinen yliluokka? •näin voi olla muistakin syistä, kuten koosteolioissa tapahtuva kutsun siirtäminen (propagate) osaolioille. •esimerkissä luokat Pelaaja ja Nappula, jotka eivät ole kuitenkaan samoja. –reaalimaailman käsitteistön tarkastelu ja siitä seuraavat yleistykset. •esim. Rosvo: Rikollinen – ei tarpeen.

58 SE-02 Erikoistavat luokat •Erikoistava luokka: –yleisesti tiedossa oleva erikoistus, joka ei kuitenkaan esiinny vaatimusmäärittelyssä. –symmetriasyistä voidaan myös lisätä luokkia. •Esimerkissä: –Paikka: Erikoispaikka, Normaalipaikka. •jos luokalla on vain yksi aliluokka, mutta useampia vaihtoehtoisia käyttömuotoja. •tekee luokkahierarkiasta säännöllisen. •Liiallista erikoistamista vältettävä.

59 SE-02 Tarkistukset, korjaukset ja organisointi Puuttuvasta luokasta voivat vihjata esimerkiksi: –luokkakaaviossa havaittava epäsymmetrisyys (täydennä symmetrisellä luokalla), –luokka, jossa on ei-yhteenkuuluvia piirteitä (jaa luokka kahdeksi), tai –samoja assosiaatioita tai piirteitä useissa luokissa (tee yhteinen uusi yliluokka).

60 SE-02 Tarkistukset, korjaukset ja organisointi •Luokka voi olla tarpeeton, jos sillä ei ole piirteitä eikä assosiaatioita. •Assosiaatio voi olla tarpeeton, jos mikään tehtävä ei näytä tarvitsevan sitä. •Assosiaatio voi olla väärällä luokkatasolla, jos sen roolinimi ei sovi yhteen luokan kanssa. •Jos jokin luokan attribuutti identifioi toisen luokan olion, voi olla kyse yksilöinnistä. •Kaikki kertautumiset on syytä tarkistaa.

61 SE-02 Tarkistukset, korjaukset ja organisointi •Jos assosiaation nimi on ”Koostuu” tai ”Sisältyy”, se kuvataan koostesymbolilla ja nimi jätetään pois. Esimerkissä: –assosiaatioon Lentoliikenne-Lentoreitti lisätään yksilöinti, joka ei kuitenkaan poista tässä tapauksessa kertautumista kokonaan.

62 SE-02 Analyysimalli: sekvenssikaaviot •Käyttötapausten sekvenssikaaviot kuvataan siten, että niissä käytetään analyysimallin olioita.

63 SE-02 Analyysimalli: metodit •Metodeja noin periaatteessa saadaan kahdesta paikasta: –Käyttötapausten sekvenssikaavioista, ja –Niistä kuvauksen teonsanoista, jotka hylättiin assosiaatioina, koska ne kuvaavat hetkellistä toimintaa

64 SE-02 Tarkistukset, korjaukset ja organisointi Yleisiä tarkistuksia: •Onko malli riittävä? –Ovatko kaikki oleelliset käsitteet ja suhteet mukana? •Onko tietty informaatio mallissa vain kerran? –Johdetut assosiaatiot ja attribuutit lisätään mahdollisesti suunnitteluvaiheessa. •Onko malli todenmukainen? •Onko malli helposti ymmärrettävä ja selkeä? –nimien kuvaavuus?

65 SE-02 Organisointi •Jos kaavio tulee liian suureksi hallita ja ymmärtää, se tulee jakaa osiin. –UML:ssä tämä tapahtuu pakkausten avulla. –Suositus kaavion koko enintään A4 tai noin 20 luokkaa. –Jos sovelluksessa looginen jako osajärjestelmiin, jaetaan tämän mukaan pakkauksiin. •usein tiiviit assosiaatiot keskenään ja liittyvät tiettyyn sovelluksen toiminnallisuuteen. –Kullekin pakkaukselle annetaan kuvaava nimi.


Lataa ppt "SE-02 Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo perustuu Kai Koskimiehen Oliokirjaan ja kurssin aiempiin materiaaleihin."

Samankaltaiset esitykset


Iklan oleh Google