UMLnotaatio staattinen ja dynaaminen mallintaminen Kalvot Olioperustainen ohjelmistokehitys

  • Slides: 24
Download presentation
UML-notaatio staattinen ja dynaaminen mallintaminen Kalvot: Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo

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

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

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ä

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

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

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

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

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ä

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

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

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]}

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

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

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

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)

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

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

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

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]

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ä

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.

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 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

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