Vaihe 4 - Suunnittelu II - dynaaminen mallintaminen
Tarkennetaan analyysivaiheen yhteistoimintakaaviot
sekvenssikaavioiksi siten, että ne sisältävät myös
suunnitteluvaiheessa lisätyt uusia luokkia vastaavat oliot ja
kuvaavat aiempaa tarkemmin myös järjestelmän sisäistä
käyttäytymistä. Lisäksi täsmennetään järjestelmän toimintalogiikan
kuvausta tilakaaviolla.
Huomaa, että järjestelmän alkuperäinen kuvaus on epätäydellinen,
erityisesti käyttäytymisen ja poikkeustapausten osalta. Samoin
vaiheen 3 aikana luokkakaavioon on voinut jäädä puutteita tai
epäloogisuuksia, jotka tulee korjata sekvenssi- ja tilakaavioista
saatavan lisätiedon pohjalta.
Tehtävät
- Laadi jokaisesta vaiheessa 2 mallinnetusta
yhteistoimintakaaviosta yksi tai useampi sekvenssikaavio, jotka kuvaavat
järjestelmän normaalin toiminnan ja yleisimmät poikkeustapaukset
(laajoilla sekvenssikaavioilla osan yksityiskohdista voi jättää
pois). Muista huomioida sekvenssikaavioissa vaiheessa 3 toteutetut
assosiaatiot erityisesti kohdealueluokkien osalta.
- Järjestelmästä riippuen: mallinna käyttöliittymän
toimintalogiikka tai järjestelmän monimutkaisimman tai muuten
kiinnostavan (=enemmän kuin 2 tilaa) ohjain- tai kohdealueluokan
toiminta tilakaaviolla.
Osita alitiloja tarvittaessa.
- Viimeistele vaiheiden
1-3 tehtävät ja tulokset ja mallien yhtenäisyys: toimintayksikön
kuvaus ja tavoitemäärittelyt, käyttötapauskaavio ja käyttötapausten
sanalliset kuvaukset, tietohakemisto, analyysi- ja
suunnitteluvaiheen luokkakaaviot. Huom. analyysivaiheen luokkakaavio pidetään
edelleen "analyysitasoisena", eli assosiaatioiden toteutuksia (ja
niihin liittyviä metodeita), kokoelmaluokkia, käyttöliittymä- tai
ohjausluokkia ei päivitetä - ainoastaan suunnitteluvaiheen aikana
löydetyt uudet kohdealueeseen liittyvät attribuutit ja
kohdealueluokat. Yhteistoimintakaavioita ja CRC-kortteja ei
tarvitse päivittää.
Vinkkejä
- Prosessi sekvenssikaavion laatimiselle:
-
- Valitse käyttötapaus ja siihen liittyvä
yhteistoimintakaavio.
- Esitä suorakaiteilla luokkia vastaavat oliot (tarvittaessa eri muuttujanimillä eriteltynä) ja ulkoiset aktorit tikku-ukoilla.
- Lisää kaavioon aiemmin mallinnetut liiketoimintaluokat sekä vaiheessa 3 määritellyt tarkennetut käyttöliittymä-, ja ohjaus- ja mahdolliset säiliöluokat.
- Käyttämällä lähtökohtana tekemääsi tekstimuotoista käyttötapauskuvausta ja yhteistoimintakaaviota mieti, millaisia viestejä, missä järjestyksessä ja millä ehdoin ko. olioiden/aktoreiden välillä on välitettävä, jotta toiminta olisi mahdollista suunnitteluvaiheen mallissa.
- Kuvaa viestit nuolilla ja nimeä ne kuvaavilla termeillä (verbi-muodossa). Viestien yhteydessä suluissa tulee esittää myös tärkeimmät parametrit, joiden arvoja välitetään oliolta toiselle. Yksinkertaisia palauteviestejä ei tarvitse esittää, ellei paluuarvoa käytetä jatkossa (esim. olioviitemuuttuja). Viestin tulee olla vastaanottavan olion luokan operaatio..
- Kuvaa edellä osoitetulla tavalla ensin normaalitapaukset. Poikkeustapaukset ja vaihtoehtoiset toimintatavat voit kuvata normaalitapausten kanssa samassa kaaviossa, jos ne siihen sopivat, muutoin erillisenä kaaviona. Ehto- ja toistorakenteet voidaan kuvata UML 2.0:n alikaavioilla tai yksinkertaistetuilla UML 1.4-tyylisillä merkinnöillä ([ehto] viestin nimessä ehdollisille rakenteille, * toistosymbolina jne). vrt. esim. Repeat-rakenne kirjastojärjestelmässä).
- Tarkista, että käyttötapaukseen ajateltu käyttäytyminen on tullut kuvattua.
- Tarkista, että kaikkia sekvenssikaaviossa esiintyviä olioita
vastaavat luokat ovat luokkakaaviossa. Ovatko kaikki luokat
tiedossa, voiko esim. ohjausluokka kutsua
liiketoimintaluokkia?
- Täydennä luokkakaaviota sekvenssikaavioiden laatimisen aikana huomattujen muutostarpeiden osalta. Sijoita luokkakaavion luokkiin kaikki ne operaatiot, jotka käyvät ilmi sekvenssikaavioista.
- Valitse käyttötapaus ja siihen liittyvä
yhteistoimintakaavio.
- Tilakaavioiden laadinnasta ks. moniste, luku 5.3.2
- Kuvausten oikeellisuuden tarkastamisesta:
-
- Kattavatko vuorovaikutuskaaviot (tässä sekvenssikaaviot) tärkeimpien käyttötapausten kuvaaman käyttäytymisen, myös yleisimmät poikkeustapaukset?
- Tietävätkö oliot sen, mitä niiden oletetaan tietävän vuorovaikutuskaavioiden perusteella? Onko luokilla kaikki sellaiset attribuutit, joiden arvoja oliot tarvitsevat - jos ei ole, voiko tarvittavan viitteen pyytää toiselta oliolta? Attribuutteja joita lisätään ja haetaan, viiteattribuutit,...
- Onko kaikki tarpeelliset assosiaatiot kuvattu luokkakaaviossa?
- Onko vuorovaikutuskaavioiden kuvaaman käyttäytymisen edellyttämät operaatiot esitetty suunnitteluvaiheen luokkakaaviossa?
- Onko toiminnan ohjausvastuu jaettu tarkoituksenmukaisesti, so. ovatko operaatiot oikeissa luokissa?
- Onko nimiä käytetty johdonmukaisesti: esim. olion nimi sekvenssikaaviossa = luokkanimi luokkakaaviossa; viestin nimi sekvenssikaaviossa = operaatio luokkakaaviossa?
- Onko analyysivaiheen luokkakaavio ajan tasalla (esim. jos
suunnitteluvaiheen aikana löytynyt uusia kohdealueluokkia tai
kohdealueeseen liittyviä attribuutteja)
- Ovatko tietohakemiston määritykset ajan tasalla?
