240 likes | 509 Views
UML-notaatio staattinen ja dynaaminen mallintaminen. Kalvot: Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo. Dynaaminen mallintaminen: Tilakaavio. Tilakaavio (statechart diagram) kuvaa tietyn luokan ilmentymien reagoimisen ulkoisiin tapahtumiin (message).
E N D
UML-notaatiostaattinen ja dynaaminen mallintaminen Kalvot: Olioperustainen ohjelmistokehitysTampereen yliopisto, syksy 2000Roope Raisamo
Dynaaminen mallintaminen: Tilakaavio Tilakaavio (statechart diagram) kuvaa tietyn luokan ilmentymien reagoimisen ulkoisiin tapahtumiin (message).
Tilakaavio alkutila palauta/ lopeta ajan lasku Käytettävissä Käytössä otaKäyttöön/ aloita ajan lasku valmis huolla Huollossa Varattu exit/huoltoilmoitus varaa
Tilakaavio • Tilakaavio on suunnattu verkko, joka koostuu tiloista (states) ja niitä yhdistävistä siirtymistä (transitions) eli tapahtumista. • Tilakaavio kuvaa systeemin tilamuutokset nykyisen tilan ja tapahtuman funktiona.
Tilasuuntautuneet luokat Tilakaavio on mielekäs vain tilasuuntautuneille luokille, eli luokille, joiden ilmentymät ovat selvästi identifioitavissa tiloissa elinaikanaan • usein vain harvat sovellukset luokat ovat tilasuuntautuneita • tyypillisesti aktiiviset luokat ja sovelluksen kontrollia ohjaavat luokat • ohjausolioita ovat mm. pelisovelluksen kontrolliolio ja graafisen käyttöliittymän tapahtumankäsittelystä vastaava olio • joskus paikallaan muidenkin luokkien kohdalla, jos on tarpeen ymmärtää luokan dynaamista toimintaa
Alku- ja lopputilat Salasanan luku help / nayta avuste do / nayta kehote entry / kaiutus pois exit / kaiutus päälle alkutila = pieni musta ympyrä • jos olion ylimmän tason tilakaaviolla on alkutila, olio on tässä tilassa syntyessään (enintään yksi alkutila) • ei alkutilaa: olion tila on aluksi määrittelemätön lopputila = kehän sisällä oleva musta ympyrä • jos olion ylimmän tason tilakaaviolla on lopputila, ja olio joutuu siihen, se lakkaa olemasta • yksi tai useampi
Tilasymbolin osat SalasanaSyöttö entry/kaiutus pois exit/kaiutus päälle do/näytä kehote help/näytä avuste funktionäppäin/defer Tilaan voi liittyä: • nimi • toimia (action) • aktiviteetteja (activity) • sisäisiä siirtymiä (internal transition) • viivästettyjä tapahtumia (deferred event) • alitiloja Mikä tahansa näistä voi myös puuttua.
Tilasymbolin osat SalasanaSyöttö entry/kaiutus pois exit/kaiutus päälle do/näytä kehote help/näytä avuste funktionäppäin/defer Toimet • mallin kannalta hetkellisiä, keskeytymättömiä toimintoja, joiden ei ajatella kuluttavan aikaa • tulotoimen muoto: entry/toimi • jättötoimen muoto: exit/toimi Aktiviteetti • mallin kannalta aikaa kuluttava toiminta, jota suoritetaan tilassa ollessa • aktiviteetin muoto: do/aktiviteetti
Tilasymbolin osat SalasanaSyöttö entry/kaiutus pois exit/kaiutus päälle do/näytä kehote help/näytä avuste funktionäppäin/defer Sisäiset siirtymät • sallivat reagoimisen tiettyyn tapahtumaan jättämättä kyseistä tilaa • eroavat tilaan palaavasta tavallisesta siirtymästä (ei jättö- ja tulotoimia) • sisäisen siirtymän muoto:tapahtuma {(parametrit)}} {[ehto]} {/toimet} Viivästetyt tapahtumat • tapahtumaa ei käsitellä kyseisessä tilassa, mutta se säilytetään tapahtumapuskurissa • viivästetyn tapahtuman muoto: tapahtuma/defer • tuntemattomat tapahtumat sivuutetaan
Yhteenveto määrittelyistä • Tilaan liittyvät toiminnot voivat olla: • aktiviteetteja, jotka kuvaavat tilan toimintaa do/aktiviteetti • tulotoimia, jotka suoritetaan tilaan siirryttäessä entry/tulotoimet • jättötoimia, jotka suoritetaan tilasta poistuttaessa exit/jättötoimet • tilan sisäisiä siirtymiä, joissa sanoma liitetään tilan toimintoontapahtuma/toimet • viivästettyjä toimiatapahtuma/defer
Siirtymiin liittyvät määreet • Siirtymä laukeaa (fire), kun • olio on sen lähtötilassa, ja • siirtymään liittyvä laukaisin aktivoituu. • Tällöin olio: • suorittaa lähtötilan jättötoimet, • siirtyy siirtymän kohdetilaan, • suorittaa kohdetilan tulotoimet, • suorittaa tilan varsinaiset (tavalliset) toimet, sekä • jää odottamaan seuraavan siirtymän laukeamista.
Siirtymiin liittyvät määreet • Siirtymän laukaisin on yleisesti muotoa: {nimi:} {tapahtuma {(parametrit)}} {[ehto]} {/toimet} • mikä hyvänsä laukaisimen osa voi puuttua Laukaisin aktivoituu, kun • olio saa laukaisimessa annetun tapahtuman, ja • ehto joko puuttuu tai on tosi. Siirtymätoimet ovat hetkellisiä toimia, jotka suoritetaan, kun siirtymä laukeaa.
Siirtymän laukaisimen merkinnöistä Laukaisimessa voi esiintyä seuraavia määreitä: sanoma(parametrit) [ehto] ^sanoman_oheislähetys /siirtymätoimi
Tapahtumat • Tapahtumat: • tapahtuvat tiettyinä aikana • hetkellisiä • jaksottavat systeemin toiminnan tiloihin • ovat joko signaaleja tai tapahtumaolioita • Signaali: ei sisäistä informaatiota • Tapahtumaolio: attribuutteja kuten oliolla • Tapahtumaluokka: kuvaa tietyn tyyppiset tapahtumat
Tapahtumat Esimerkki: • luokka: Koneen lähtö • attribuutit: • lennon numero • lähtöaika • lähtöpaikka • tulopaikka • tapahtumaolio: ”Lento AY835 lähtee Pariisiin Helsingistä, lähtöaika 17.30” Esimerkki: Javan tapahtumankäsittely
Liikennevalojen ohjaimen tilakaavio after(30s) [on vas. E-P] do/Vihreä valo E-P suunnalle do/Vihreä valo E-P suunnassa vasemmalle after(30s) [ei vas. I-L] after(30s) after(30s) [ei vas. E-P] after(30s) do/Vihreä valo I-L suunnalle do/Vihreä valo I-L suunnassa vasemmalle after(30s) [on vas. I-L]
Haarautumissymbolin käyttö do/Vihreä valo E-P suunnalle do/Vihreä valo E-P suunnassa vasemmalle [on vas. E-P] after(30s) [ei vas. E-P] [ei vas. I-L] after(30s) after(30s) do/Vihreä valo I-L suunnassa vasemmalle do/Vihreä valo I-L suunnalle [on vas. I-L] after(30s)
Tilakaaviot • Tiloihin voidaan soveltaa periytymistä. • Alitila perii ylitilansa lähtevät siirtymät • Saapuvia siirtymiä ei voi periä, koska useampi kuin yksi alitila tekisi tilakaaviosta epädeterministisen. • Jos ylitilaan on siirtymä, suoritus jatkuu alitilan alkutilasta • Tilaa voidaan myös tarkentaa. • Rinnakkaiset prosessit voidaan esittää tilan sisäisinä säikeinä, jotka erotetaan katkoviivoilla.
Koostetilan käyttö yhteisten siirtymien yhdistelyyn Aktiivinen entry/lue kortti exit/poista kortti kortti syötetty Tarkistus Vapaa [jatka] peruuta huolto Prosessointi Valinta Huollossa [lopeta] Kuitin tulostus
Rinnakkaistettu koostetila Huolto Testaus Komponenttien testaus Itsetesti Käyttövalmis huolla Komentotila näppäin(n) Odotus Komennon suoritus [lopetus] [ei lopetus]
Herätyskellon ohjausyksikön tilakaavio Soitto [aika=soittoaika] do/soita /tee alkuasetukset ALARM/sammuta valo ALARM Perustila Soittovalmis do/näytä aika do/näytä aika ALARM/sytytä valo SET painetaan SET painetaan M/ajan minuutti- lisäys Herätysasetus Aika-asetus do/näytä soittoaika do/näytä aika H/soittoajan tuntilisäys M/soittoajan minuuttilisäys H/ajan tunti- lisäys SET vapautetaan SET vapautetaan
Sanomakaaviot (OMT) Sanomakaavio ei kuulu UML-kaavioihin, mutta sitä voidaan käyttää sovelluksen tarkasteluun yleisemmällä tasolla. • Sanomakaavio (event flow diagram) esittää yhteenvedon olioiden välisistä sanomista. • Luokat kuvataan suorakaiteina. • Luokkien välisiin nuoliin kirjoitetaan mahdolliset sanomat näiden luokkien välillä.
Sovelluksen täydellinen spesifikaatio • Jos kaikilla sovelluksen olioilla on tilakaavio, näiden kaavioiden joukko on sovelluksen täydellinen toiminnallinen spesifikaatio. • Jos annetut käyttötavat kattavat tarkasti kaikki sovelluksen mahdolliset käyttötavat, ne antavat saman informaation kuin tilakaavioiden joukko. • ei kuitenkaan esitä suoraan yhden olion käyttäytymistä
Kaavioiden välisiä suhteita • Skenaario (sekvenssikaavio) on yksi käyttötapauksen ilmentymä. • Yhtä käyttötapausta vastaa (jopa ääretön) joukko skenaarioita. • Skenaario vastaa myös tilakaavioiden joukon yhtä mahdollista suorituspolkua, eli on myös tilakaaviojoukon ilmentymä. --> kalvot