Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio
Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia tehtäviä: Arkkitehtuurin mallintaminen, Staattinen mallintaminen, Dynaaminen mallintaminen, Käyttöliittymän suunnittelu.
Muokkaa käyttötapauksia Muokkaa dynaamisia malleja Muokkaa kohdealueen mallia Analyysia tehdään iteratiivisesti (Rosenberg & Stephens, 2007)
Staattinen mallintaminen Tarkoituksena on rakentaa ymmärrettävä kuvaus niistä rakenteellisista ilmiöistä, joita vaatimusmäärittelyt koskevat. Lähtökohtina toimivat vaatimusmäärittelyt, käyttötapausmalli sekä sovellusaluetta ja sen ympäristöä koskeva asiantuntemus, Tuloksena luokkakaavio (kohdealuemalli)
Kohdealueen malli = Luokkakaavio, jossa esitetään kohdealueen tietoja ja lainalaisuuksia. Kohdealueen malliin tulee pääsääntöisesti vain liiketoimintaluokkia.
Staattisen mallintamisen kaksi kaaviota (mihin niitä voi käyttää?) Oliokaaviot (object diagrams) kuvaavat yksittäisiä olioita ja niiden välisiä rakenteellisia suhteita. Näitä käytetään lähinnä monimutkaisten tietorakenteiden havainnollistamiseen. Luokkakaavio (class diagram) kuvaa olioluokat ja niiden väliset suhteet. Luokkakaaviota voidaan pitää eräänlaisena kaavana tai mallina, joka määrittää, millaiset ajonai- kaiset oliorakenteet ovat mahdollisia.
Luokkakaavio (mitä elementtejä siihen kuuluu?)
Toiminnot eli käyttäytyminen Tieto eli rakenteelliset ominaisuudet Olio (ks. määritelmä): rajattavissa ja yksilöitävissä oleva asia tai käsite, joka on merkityksellinen käsillä olevan tarkastelun kannalta ja joka kattaa sekä rakenteen(tilan) että käyttäytymisen.
-luo uusi -lisää korkeutta -muuta x-koord. -muuta y-koord. Koodi: OH414 Korkeus: 1500 jalkaa X-koord: 145 Y-koord: 346 Koodi: BA315 Korkeus: 3000 jalkaa X-koord: 176 Y-koord: 567
Olio OH414: Lentokone Lentokone koodi korkeus x-koord y-koord OH414 1500 jalkaa 145 346 koodi korkeus x-koord y-koord lentokone() lisääkorkeutta() vähennäkorkeutta() muutaxkoord() muutaykoord() lentokone() lisääkorkeutta() vähennäkorkeutta() muutaxkoord() muutaykoord() Olioluokka
Lentokone + koodi: string - korkeus: double = 0 - x-koord: int - y-koord: int lentokone() lisääkorkeutta() vähennäkorkeutta() muutaxkoord() muutaykoord() Nimi Attribuuttilista Operaatiolista Olioluokka
+ koodi: string Lentokone + paikka_ref[]:paikka Paikka + paikan numero + tyyppi + hinta lentokone().... paikka() varaa_paikka()..
Lentokone palautustyyppi parametri + koodi: string - korkeus: double = 0 - x-koord: int - y-koord: int void lisääkorkeutta(int uusikorkeus) { korkeus = korkeus + uusikorkeus; } lentokone() lisääkorkeutta(int uusikorkeus): void vähennäkorkeutta() muutaxkoord() muutaykoord() double haekorkeus() { return korkeus; }
Työntekijä * töissä 1 Yritys
Roolit ja assosiaatioluokka (Rumbaugh ym, 1999 s. 159)
Kooste ja kompositio(rumbaugh ym, 1999)
Yleistys ja erikostaminen(rumbaugh ym, 1999)
Yleistys ja erikostaminen
Miten luokkakaavio laaditaan? Suppea esitys: 1. Tunnista luokat. 2. Tunnista assosiaatiot. 3. Tunnista attribuutit. 4. Iteroi.
Luokkakaavio (miten sellainen laaditaan?) Lähtökohtana toimivat vaatimusmäärittelyt, käyttötapaukset ja keskustelut käyttäjien kanssa. Aloita luokkien tunnistamisella. Kiinnitä huomiota erityisesti usein toistuviin substantiiveihin. Kerää niistä lista. Karsi listalta kohdealueen malliin kuulumattomat luokat. Aloita liiketoimintaluokista ja vältä toteutukseen liittyviä seikkoja. Poista päällekkäiset, samaa asiaa kuvaavat luokat. Poista epämääräiset luokat. Ovatko luokat pikemminkin attribuutteja tai operaatioita?
Luokkakaavio (miten sellainen laaditaan?) Lähtökohtana toimivat vaatimusmäärittelyt, käyttötapaukset ja keskustelut käyttäjien kanssa. Jatka assosiaation tunnistamisella. Mikä tahansa kytkentä tai riippuvuus luokkien välillä on potentiaalinen assosiaatio. Etsi tekstistä verbejä. Kiinnitä huomioita ilmiöihin, jotka kuvaavat sidosta, toimintaa, yhteydenpitoa, omistusta, jne. Mallinna assosiaatiot luokkien välillä. Käytä sopivia assosiaationimiä. Lisää kardinaalisuusmerkinnät.
Luokkakaavio (miten sellainen laaditaan?) Lähtökohtana toimivat vaatimusmäärittelyt, käyttötapaukset ja keskustelut käyttäjien kanssa. Jatka attribuuttien tunnistamisella. Attribuutit kuvaavat luokkaan kuuluvien olioiden rakenteellisia ominaisuuksia. Löytyvät harvemmin tavoitemäärittelystä, tarvitaan lisänä yleistietämystä. Esiintyvät usein substantiiveina, ovat alisteisia luokille. Adjektiivit ilmaisevat yksittäisiä attribuuttiarvoja. Iteroi: Tarkenna luokkien määritystä ja assosiaatioita.
Luokkakaavio (Esimerkki) Tutkimuslaitoksessa on kymmeniä projekteja ja niiden kirjaamiseksi tarvitaan selainohjelmiston avulla käytettävä tietojärjestelmä. Kunkin projektin rahoitus tulee useammasta lähteestä, jotka voivat olla yrityksiä tai valtion yksiköitä. Projektissa työskentelee yksi tai useampi henkilö. Kullakin projektilla on johtaja. Projektin työ liittyy johonkin tai joihinkin tutkimusaiheisiin. Projekti tuottaa tutkimusraportteja, joiden kansilehdellä tuodaan esille myös raportin tekijät. Tutkimusraportti voi olla tutkimuslaitoksen sisäinen (sisältää julkaisunumeron), konferenssiartikkeli (sisältää konferenssin nimen ja vuoden. lisäksi yhden raportin kirjoittajista tulee esittää artikkeli konferenssissa) tai tieteellisessä lehdessä (sisältää vuoden ja lehden numeron) julkaistu artikkeli.