UMLnotaatio staattinen ja dynaaminen mallintaminen Kalvot Olioperustainen ohjelmistokehitys











![Siirtymiin liittyvät määreet • Siirtymän laukaisin on yleisesti muotoa: {nimi: } {tapahtuma {(parametrit)}} {[ehto]} Siirtymiin liittyvät määreet • Siirtymän laukaisin on yleisesti muotoa: {nimi: } {tapahtuma {(parametrit)}} {[ehto]}](https://slidetodoc.com/presentation_image_h/89020d9150c2364c967b008e3b8fa158/image-12.jpg)
![Siirtymän laukaisimen merkinnöistä Laukaisimessa voi esiintyä seuraavia määreitä: sanoma(parametrit) [ehto] ^sanoman_oheislähetys /siirtymätoimi SE-02 Siirtymän laukaisimen merkinnöistä Laukaisimessa voi esiintyä seuraavia määreitä: sanoma(parametrit) [ehto] ^sanoman_oheislähetys /siirtymätoimi SE-02](https://slidetodoc.com/presentation_image_h/89020d9150c2364c967b008e3b8fa158/image-13.jpg)


![Liikennevalojen ohjaimen tilakaavio do/Vihreä valo E-P suunnalle after(30 s) [on vas. E-P] after(30 s) Liikennevalojen ohjaimen tilakaavio do/Vihreä valo E-P suunnalle after(30 s) [on vas. E-P] after(30 s)](https://slidetodoc.com/presentation_image_h/89020d9150c2364c967b008e3b8fa158/image-16.jpg)



![Rinnakkaistettu koostetila Huolto Testaus Komponenttien testaus Itsetesti Käyttövalmis huolla Komentotila näppäin(n) Odotus [ei lopetus] Rinnakkaistettu koostetila Huolto Testaus Komponenttien testaus Itsetesti Käyttövalmis huolla Komentotila näppäin(n) Odotus [ei lopetus]](https://slidetodoc.com/presentation_image_h/89020d9150c2364c967b008e3b8fa158/image-20.jpg)
![Herätyskellon ohjausyksikön tilakaavio Soitto [aika=soittoaika] do/soita /tee alkuasetukset ALARM/sammuta valo ALARM Perustila Soittovalmis do/näytä Herätyskellon ohjausyksikön tilakaavio Soitto [aika=soittoaika] do/soita /tee alkuasetukset ALARM/sammuta valo ALARM Perustila Soittovalmis do/näytä](https://slidetodoc.com/presentation_image_h/89020d9150c2364c967b008e3b8fa158/image-21.jpg)



- Slides: 24
UML-notaatio staattinen ja dynaaminen mallintaminen Kalvot: Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo SE-02
Dynaaminen mallintaminen: Tilakaavio (statechart diagram) kuvaa tietyn luokan ilmentymien reagoimisen ulkoisiin tapahtumiin (message). SE-02
Tilakaavio alkutila Käytettävissä valmis palauta/ lopeta ajan lasku Käytössä ota. Käyttöön/ aloita ajan lasku huolla Huollossa exit/huoltoilmoitus varaa SE-02 Varattu
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. SE-02
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 SE-02
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 SE-02
Tilasymbolin osat Salasana. Syöttö 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. SE-02 entry/kaiutus pois exit/kaiutus päälle do/näytä kehote help/näytä avuste funktionäppäin/defer
Tilasymbolin osat 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 SE-02 Salasana. Syöttö entry/kaiutus pois exit/kaiutus päälle do/näytä kehote help/näytä avuste funktionäppäin/defer
Tilasymbolin osat Sisäiset siirtymät Salasana. Syöttö – sallivat reagoimisen tiettyyn entry/kaiutus pois tapahtumaan jättämättä kyseistä tilaa exit/kaiutus päälle – eroavat tilaan palaavasta tavallisesta siirtymästä (ei jättödo/näytä kehote help/näytä avuste 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 SE-02 funktionäppäin/defer
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 toimintoon tapahtuma/toimet – viivästettyjä toimia tapahtuma/defer SE-02
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. SE-02
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. SE-02
Siirtymän laukaisimen merkinnöistä Laukaisimessa voi esiintyä seuraavia määreitä: sanoma(parametrit) [ehto] ^sanoman_oheislähetys /siirtymätoimi SE-02
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 SE-02
Tapahtumat Esimerkki: – luokka: Koneen lähtö – attribuutit: • • lennon numero lähtöaika lähtöpaikka tulopaikka – tapahtumaolio: ”Lento AY 835 lähtee Pariisiin Helsingistä, lähtöaika 17. 30” Esimerkki: Javan tapahtumankäsittely SE-02
Liikennevalojen ohjaimen tilakaavio do/Vihreä valo E-P suunnalle after(30 s) [on vas. E-P] after(30 s) [ei vas. I-L] after(30 s) [ei vas. E-P] do/Vihreä valo I-L suunnassa vasemmalle do/Vihreä valo E-P suunnassa vasemmalle after(30 s) [on vas. I-L] SE-02 do/Vihreä valo I-L suunnalle
Haarautumissymbolin käyttö do/Vihreä valo E-P suunnalle after(30 s) do/Vihreä valo I-L suunnassa vasemmalle [on vas. E-P] after(30 s) [ei vas. I-L] [on vas. I-L] after(30 s) SE-02 do/Vihreä valo E-P suunnassa vasemmalle [ei vas. E-P] after(30 s) do/Vihreä valo I-L suunnalle
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. SE-02
Koostetilan käyttö yhteisten siirtymien yhdistelyyn Aktiivinen kortti syötetty Vapaa entry/lue kortti exit/poista kortti Tarkistus [jatka] peruuta huolto Valinta Huollossa Prosessointi [lopeta] Kuitin tulostus SE-02
Rinnakkaistettu koostetila Huolto Testaus Komponenttien testaus Itsetesti Käyttövalmis huolla Komentotila näppäin(n) Odotus [ei lopetus] Komennon suoritus [lopetus] SE-02
Herätyskellon ohjausyksikön tilakaavio Soitto [aika=soittoaika] do/soita /tee alkuasetukset ALARM/sammuta valo ALARM Perustila Soittovalmis do/näytä aika ALARM/sytytä valo SET painetaan M/ajan minuuttilisäys Aika-asetus Herätysasetus M/soittoajan minuuttilisäys do/näytä aika do/näytä soittoaika H/soittoajan tuntilisäys SET vapautetaan do/näytä aika H/ajan tuntilisäys SET vapautetaan SE-02
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ä. SE-02
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ä SE-02
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 SE-02





