UML -mallinnus TILAKAAVIO



Samankaltaiset tiedostot
Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

UML- mallinnus: Tilakaavio

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , )

Luokka- ja oliokaaviot

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

UML -mallinnus Viestiyhteyskaavio EERO NOUSIAINEN

Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita.

Toimintokaavio. UML-Toimontokaavio 1

811120P Diskreetit rakenteet

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN

11. Javan valintarakenteet 11.1

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

811120P Diskreetit rakenteet

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1

Tilan luonnehdinta (yksi tapa)

Kiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??)

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

11. Javan toistorakenteet 11.1

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 9. lokakuuta 2016

Ohjelmistotekniikan menetelmät, UML

UML:n yleiskatsaus. UML:n osat:

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Dynaaminen analyysi II

P e d a c o d e ohjelmointikoulutus verkossa

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat

11. Javan valintarakenteet 11.1

5/20: Algoritmirakenteita III

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Luento 5. Timo Savola. 28. huhtikuuta 2006

Java-kielen perusteita

Esimerkki 1: Kahviautomaatti.

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä.

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

Suoritusten seuranta ja opiskelijan edistyminen

Ehto- ja toistolauseet

TAITAJA 2007 ELEKTRONIIKKAFINAALI KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:

2. Olio-ohjelmoinnin perusteita 2.1

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

Tutustuminen tuotantolinjastoon

13. Loogiset operaatiot 13.1

Ehto- ja toistolauseet

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Sisällys. Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö. 8.2

1. Mitä tehdään ensiksi?

Palvelut. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut käyttöjärjestelmät

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)

Kaavioista luettavat UML-laajennukset

2. Olio-ohjelmoinnin perusteita 2.1

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Mittalaite ja puhelin on laitettu toimimaan automaattisesti yhdessä, sinun tulee seurata puhelimen antamia ohjeita mittauksen suorittamiseen.

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Javan perusteita. Janne Käki

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Sisältö. Tilakaaviot 2

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Itsestabilointi: perusmääritelmiä ja klassisia tuloksia

Muuttujien roolit Kiintoarvo cin >> r;

58160 Ohjelmoinnin harjoitustyö

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

Mikä yhteyssuhde on?

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmistojen mallintaminen, sekvenssikaaviot

S BAB ABA A aas bba B bbs c

Harjoitustyön testaus. Juha Taina

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

Oliot viestivät metodeja kutsuen

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut

Suvi Junes Tampereen yliopisto /Tietohallinto 2012

Tutoriaaliläsnäoloista

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013

Muutamia peruskäsitteitä

Mitä on periytyminen?

Ohjelmistotekniikan menetelmät, kesä 2008

OPPITUNTI 5 Ohjelman kulku

Luento 4. Timo Savola. 21. huhtikuuta 2006

Listarakenne (ArrayList-luokka)

Ohjelmistotuotanto, s

Fortum Fiksu Etäohjattava roiskeveden kestävä sähkökytkin (IP44) Käyttöohjeet

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VIII Suunnittelumallit Observer ja State

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

13. Loogiset operaatiot 13.1

Simulointi. Tapahtumapohjainen

Automaatit. Muodolliset kielet

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. X Poikkeusten käsittelystä

Transkriptio:

UML -mallinnus TILAKAAVIO

SISÄLLYS 3. Tilakaavio 3.1 Tilakaavion alku- ja lopputilat 3.2 Tilan nimi, muuttujat ja toiminnot 3.3 Tilasiirtymä 3.4 Tilasiirtymän vai tilan toiminnot 3.5 Tilasiirtymän tapahtumat 3.6 Tilakaaviosta C++ -koodista

3. Tilakaavio Tilakaavio rakennetaan luokan oliolle Tilakaaviossa kuvataan yhden olion tilat olion elinaikana Tilakaavio kuvaa olion toiminnan ja sen, miten tapahtumat muuttavat olion tilaa Tapahtumat, jotka voivat muuttaa olion tilaa ovat - viestit eli funktiokutsut - ajan kuluminen eli ajastimet (timer) - ehtojen toteutuminen - tilassa suoritettavien tehtävien päättyminen - virheet

3. Tilakaavio Tilakaavio rakennetaan sellaisille luokille, joiden olioille löydetään eri tiloja (enemmän kuin 1) olion elinaikana Tilakaavion avulla voidaan olion käyttäytyminen kuvata ja se miten ne vaihtavat tilaansa ollessaan vuorovaikutuksessa ympäristönsä kanssa Tiloja sisältävät luokat ovat tyypillisesti aktiiviset luokat (kontrolli-/ohjausluokat, joiden oliot ohjaavat muiden olioiden toimintaa) Muillekin luokille voidaan rakentaa tilakaavio, jos se auttaa ymmärtämään luokan olion dynaamista luonnetta

3. Tilakaavio Kaikilla olioilla on tila, joka on aikaisempien olioon kohdistuneiden toimien tulos (vaikka tiloja olisi vain yksi) Esimerkkejä olion tiloista - Lasku (olio) on maksettu (tila) - Auto (olio) on liikkuu (tila) - Moottori (olio) on käynnissä (tila) - Ohjausyksikkö (olio) kuuntelee (tila) - Anturi (olio) lähettää viestin (tila) - Laitteen näppäin (olio) lähettää merkin (tila)

3.1 Tilakaavion alku- ja lopputilat Tilakaavio kuvaa luokan ilmentymien (olioiden) dynaamisen käyttäytymisen (tilat ja tilojen vaihdon) Alkutila Tilasiirtymä TILA1 Tila Tilan nimi TILA2 Lopputila

3.1 Tilakaavion alku- ja lopputilat Tilakaaviolla on alkutila ja tarvittaessa lopputila Alkutila on ensimmäinen tilakaavion tila joka suoritetaan Yhdelle oliolle/luokalle voidaan mallintaa monta tilakaaviota, joilla kaikilla on oma alkutilansa Alkutila kuvataan täytetyllä ympyrällä Lopputila on tilakaavion viimeinen tila joka suoritetaan Lopputila kuvataan kehän sisällä olevalla täytetyllä ympyrällä Alkutilaan ei ole saapuvia siirtymiä, eikä lopputilasta ole lähteviä siirtymiä.

3.2 Tilan nimi, muuttujat ja toiminnot Kuhunkin tilaan voi tilan nimen lisäksi liittyä - tilamuuttujia - toimintoja - tilasiirtymiä Tilan nimi -Tilan nimi on aina hyvä kuvata mahdollisimman lyhyesti, kuvaavasti ja selkeästi Lahetetaan signaali Ei laheteta signaalia

3.2 Tilan nimi, muuttujat ja toiminnot Tilamuuttujat - Tilamuuttujia voidaan käyttää tiloissa ja tilasiirtymissä - Tilamuuttuja voi olla luokkaan kuuluva attribuutti, paikallismuuttuja tai ajastin

3.2 Tilan nimi, muuttujat ja toiminnot Tilan toiminnot (actions) koostuvat yhdestä tai useammasta toimenpiteestä Tilan toiminnot voivat olla - entry (tulotoiminnot), - exit (jättötoiminnot) tai - do toiminnot Entry toiminnot suoritetaan aina kun tilaan tullaan Do toimintoja suoritetaan tilassa ollessa Exit toimintoja suoritetaan kun tilasta poistutaan

3.2 Tilan nimi, muuttujat ja toiminnot Tulo- ja jättötoiminnot annetaan muodossa: - entry/toiminnot tai entry/toiminnot;toiminnot;toiminnot - exit/toiminnot tai exit/ toiminnot;toiminnot - mallin kannalta on selkeintä esitellä jokainen toiminto erikseen entry, exit tai do sanalla erikseen Esimerkkejä: - entry/printf( Ollaan tultu tilaan ) - entry/olionnimi->kutsuttavafunktio() - entry/muuttuja=olionnimi->kutsuttavafunktio(parametri1) - exit/printf( Poistutaan tilasta ) - exit/olionnimi->kutsuttavafunktio() - exit/muuttuja=olionnimi->kutsuttavafunktio(parametri1)

3.2 Tilan nimi, muuttujat ja toiminnot Do -toiminnon suoritus loppuu, kun kyseinen tehtävä tulee loppuun suoritetuksi, tai kun tilasiirtymä keskeyttää sen suorituksen Tilan do -toiminto annetaan muodossa - do/toiminto tai do/toiminto; toiminto do -toiminto voi olla jokin kyseissä tilassa suoritettava toiminto (muuttujan arvon asettaminen, funktiokutsu) tai toisessa tilassa tai tilakaaviossa suoritettava tehtävä esimerkkejä: - do/printf( Suorita toiminto ) - do/olionnimi->kutsuttavafunktio() - do/muuttuja=olionnimi->kutsuttavafunktio(parametri1) - do/laskuri=0 - do/timer++

3.3 Tilasiirtymä Tilasiirtymässä tila siirtyy toisesta tilasta toiseen Tapahtumat, jotka voivat muuttaa olion tilaa ovat - viestit eli funktiokutsut - ajan kuluminen - ehtojen toteutuminen - tilassa suoritettavien tehtävien päättyminen - virheet

3.4 Tilasiirtymän vai tilan toiminnot Tilassa suorittavat toiminnot vievät aina aikaa, kun tilan toimintoja suoritetaan - Entry toiminnot suoritetaan aina kun tilaan tullaan - Do toimintoja suoritetaan tilassa ollessa - Exit toimintoja suoritetaan kun tilasta poistutaan Aikakriittisissä tiloissa täytyy tarkkaan miettiä kuinka paljon toimintoja laitetaan itse tilaan vai laitetaanko iso osa toimintoja tilasiirtymiin, jolloin itse tilassa ollessa ei kuluteta aikaa Ohjelman rakenne määrää monesti sen laitetaanko osa toiminnoista tilasiirtymiin Suorittamalla perusteellista testausta ohjelman eri osille, pystytään selvittämään missä ohjelman osassa eri toiminnot on hyvä suorittaa

3.5 Tilasiirtymän tapahtumat Sulautetuissa reaaliaika -järjestelmissä tapahtumat ohjaavat järjestelmän toimintaa Tapahtuma liittyy joko järjestelmään tai ympäristöön ja järjestelmän on reagoitava siihen jotenkin Järjestelmän toiminta tapahtuman sattuessa on määriteltävä Toiminta liittyy usein jonkin olion tilaan tai tilasiirtymään

3.5 Tilasiirtymän tapahtumat Ajan kuluminen muuttaa olion tilaa Ajan kulumista seurataan ehtolauseella Ehdot kuvataan tilasiirtymässä hakasulkujen avulla [timer==10] Käytössä ovat operaattorit ==, &&, ja!= sekä sulut. Tilasiirtymiä voi olla useita ja näissä omat ehtolauseet timer=0 Odottaa Tilasiirtymään voidaan liittää toimintoja Action ominaisuuden avulla. [timer==10] do/timer++ Lahettaa signaalia do/anturiolio->lahetasignaali(timer) exit/timer=0 Jos ehto [timer==10] ei toteudu, suoritetaan ohjelmassa Else -lause. Tämä kuvataan ilman ehtolausetta.

3.6 Tilakaaviosta C++ -koodiksi TILA1 switch (TILATIETO) { case TILA1: break; TILA2 } case TILA2: break;