Vaihe 2 - Analyysi
Edellisessä vaiheessa on suoritettu kehitettävän järjestelmän
rajaus ja käyttötapausten kuvaus. Tämän vaiheen tavoitteena on
tuottaa ensimmäinen versio luokkakaaviosta, luokkien sanalliset
kuvaukset sekä hahmotella luokkien yhteistyötä korkean tason
yhteistoimintakaavioilla.
Tehtävät
- Piirrä analyysivaiheen luokkakaavio kohdealueen luokista (kohdealuemalli - käyttöliittymä- ja ohjainluokkia ei tässä vaiheessa tarvitse merkitä luokkakaavioon) sisältäen vähintään keskeisimmät attribuutit ja luokkien väliset suhteet.
- Piirrä jokaisesta tarkempaan mallinnukseen valitusta käyttötapauksesta korkean tason yhteistoimintakaavio (UML- tai ICONIX-tyyli), joka näyttää käyttötapauksen kulun luokkakaavioon merkittyjen luokkien kannalta. Yhteistoimintakaavion askeleita ei välttämättä tarvitse numeroida.
- Kirjoita lyhyet kuvaukset luokista ja olennaisimmista
attribuuteista tietohakemistoksi.
Vinkkejä
- Prosessi luokkien mallintamiseen (katso tarkemmin luentomonisteen luku 4.2.2):
-
- Tunnista luokat
- ota lähtökohdaksesi käyttötapauskuvaukset ja etsi sieltä potentiaalisia luokkia; tarkastele niiden soveltuvuutta
- mallinna liiketoimintaluokat - analyysivaiheen luokkakaavio on kuva liiketoiminnan alueesta jossa toimitaan
- Tunnista assosiaatiot
- mieti, millaisia rakenteellisia suhteita luokilla on toisiinsa
- esitä suhteet ensisijassa assosiaatioina
- käytä abstraktiorakenteita (yleistys, kooste, kompositio) tilanteen vaatiessa
- lisää kardinaalisuusmerkinnät
- tarkista tulos
- Tunnista attribuutit
- mieti, mistä olioiden attribuuteista ollaan kiinnostuneita, ts. mitä olioiden tulisi tietää ja olla valmis muille viestimään itsestään
- Suorita luokkien uudelleenorganisointi
- Tunnista luokat
- Prosessi korkean tason yhteistoimintakaavion (Collaborations, Robustness diagrams) laatimiseen (huom. VioletUML:ssä voit käyttää oliokaavion symboleja, Umletissa sekvenssikaavion). Ks. moniste, luku 4.3:
-
- Valitse käyttötapaus
- Ota selvää luokkakaaviosta, minkä luokkien mukaisten olioiden toimintaa ko. käyttötapaus kuvaa ja mitkä aktorit siihen liittyvät.
- Esitä suorakulmioilla luokkia vastaavat oliot ja ulkoiset aktorit tikku-ukoilla (tai muulla symbolilla työkalusta riippuen).
- Lisää kaavioon geneerinen käyttöliittymäluokka, jonka avulla käyttäjä ja järjestelmä voivat olla vuorovaikutuksessa. Geneerinen käyttöliittymäluokka kuvaa siis kaikkia käyttöliittymään liittyviä luokkia.
- Lisää kaavioon tärkeimmät ohjausluokat; pienten järjestelmien ollessa kyseessä voidaan käyttää vain yhtä ohjausluokkaa, isommissa järjestelmissä ohjausta voi hajoittaa useammille ohjausluokille. Ohjausluokan tehtävänä on siis pitää hallussaan viitteitä järjestelmän liiketoimintaluokkiin tai niiden säiliöluokkiin ja ohjata (l. käyttää) järjestelmän liiketoimintaluokkien tarjoamia toimintoja (l. operaatioita).
- Käyttämällä lähtökohtana tekemääsi tekstimuotoista käyttötapauskuvausta mieti, millaisia viestejä ko. olioiden/aktoreiden välillä on välitettävä, jotta toiminta olisi mahdollista. Mieti toiminnan etenemistä, mitä vaiheita tarvitaan oikean olion hakemiseksi, tietojen näyttämiseksi, muuttamiseksi.
- Kuvaa viestit nuolilla ja nimeä ne kuvaavilla termeillä (verbi-muodossa).
- Kuvaa edellä osoitetulla tavalla ensin normaalitapaukset. Poikkeustapaukset ja vaihtoehtoiset toimintatavat voit kuvata normaalitapausten kanssa samassa kaaviossa, jos ne siihen sopivat, muutoin voidaan sivuttaa tässä vaiheessa.
- Tarkista, että kaikkia yhteistoimintakaaviossa esiintyviä olioita vastaavat luokat ovat luokkakaaviossa. Jos eivät ole, täydennä luokkakaaviota. Mieti käsiteltävien suhteita, pitääkö joitain assosiatiivisia suhteita kuvata koostesuhteina. Ovatko kaikki luokat tiedossa, voiko esim. ohjausluokka kutsua liiketoimintaluokkia? Olio-ohjelmoinnissa oliot voivat kutsua toisiaan, mikäli ne ovat jotenkin saaneet viitteen ko. olioon, esim. ohjausluokista on usein yhdestä moneen koostesuhteita liiketoimintaluokkiin.
- Lisää tarvittavat operaatiot ko. luokkiin luokkakaaviossa. Täydennä luokkakaavion luokkien operaatiolista vastaavasti yhteistoimintakaavioissa esiintyvillä operaatioilla.
- Valitse käyttötapaus
- Yhteistoimintakaavioiden tarkkuustasosta ks. myös Robustness
Diagrams ja
Robustness Analysis.
- Merkitse tietohakemistoon vain ne luokat ja attribuutit, joiden merkitys ei käy "itsestään selvästi" (huom. järjestelmän käyttäjän kannalta - ei kehittäjän) nimestä ilmi. Esim. jos käytät yleistyssuhdetta, kiinnitä erityistä huomiota luokkahierarkian ylätason (mahdollisesti abstraktien) luokkien dokumentointiin. Tarvittaessa voit määritellä myös assosiaatioita. Voit käyttää esim. seuraavaa tietohakemistopohjaa (html, doc, odt).
- Luokkakaaviota, tietohakemistoa ja yhteistoimintakaaviota
kannattaa mallintaa samanaikaisesti - varmista lopuksi, että eri
mallien tiedot ovat johdonmukaisia keskenään ja käyttötapauksiin
nähden.
