Systeemityö 2 Tilakaavio – State machine diagram Teppo Räisänen, Principal Lecturer Oulu University of Applied Sciences, School of Business and Information Management teppo.raisanen@oamk.fi, 050 382 6587
Tilakaavio Kuvaa olioiden, järjestelmien ja alijärjestelmien elinkaaret Missä tiloissa olio voi elämänsä aikana olla Kuinka tapahtumat vaikuttavat tiloihin Vastaanotetut viestit Ajan kuluminen Virheet Ehtojen toteutuminen Kuvaa olioiden käyttäytymisen tiloissa sekä tilanmuutokset
Tilakaavio Tilakaavio = State machine diagram Mallinnuselementit Alkutila / aloituspiste initial state Tila State Lopputila / lopetuspiste final state Siirtymä transition
Tilakaavio Aloituspisteitä on yksi Lopetuspisteitä on yksi, useampi tai ei yhtään
Tilakaavio Tila on olion aikaisempien toimintojen seuraus Tila määräytyy yleensä olion attribuuttien ja muihin olioihin vievien linkkien mukaan Olion tila Tietty attribuutti kertoo olion tilan Tila voi johtua olion ”tavallisten” muuttujien arvoista
Tilakaavio Mustang vuosimalli väri moottori nopeus kiihdytä() jarruta()
Tilakaavio Esimerkkejä olion tiloista VISA Lasku (olio) on maksettu (tila) Mustang (olio) on paikallaan (tila) Jaakko (olio) on pankinjohtajan roolissa (tila) Katja (olio) on naimisissa (tila) Asiakas (olio) on lainakiellossa (tila) Video (olio) on lainassa (tila) Opiskelija (olio) on ilmoittautunut läsnä olevaksi (tila)
Tilakaavio Teatterin istumapaikka
Tilakaavio voi sisältää 3 osastoa Ensimmäinen osasto = tilan nimi esimerkiksi odottaa, maksettu, liikkeessä Toinen osasto = tapahtumaosasto Kolme perustapahtumaa entry, exit, do Entry-tapahtuma suoritetaan, kun tullaan tilaan Exit-tapahtuma suoritetaan, kun lähdetään tilasta Do-tapahtuma suoritetaan, kun niin kauan kuin ollaan tilassa Tapahtumia voidaan luoda itse Syntaksi: Tapahtuma [ehto] / toiminto Logout [login==true] / disconnect Kolmas osasto = sisäiset tilasiirtymät Tilan sisäiset tapahtumat
Tilakaavio Esimerkki
Tilasiirtymät Kuvataan nuolella kahden tilan välillä Syntaksi Tapahtuma [ehto] / toiminto Tapahtuma = tapahtuman nimi Ehto = ehtolause, jonka pitää olla totta Toiminto = siirtymän aikana suoritettavat toiminnot Tila vaihtuu, kun tietty tapahtuma tapahtuu, ja mikäli ehto täyttyy
Tilasiirtymät Esimerkki Kun painat CD-soittimen play-nappia, soitin alkaa soittaa musiikkia mikäli CD-levy on sisällä Tapahtuma = play painettu Ehto = levy sisällä Toiminto = aloita soittaminen
Tilasiirtymät Erilaisia tapahtumia Ehto toteutuu (ei erillistä tapahtumaa nimettynä) Esim. [kerros=0] Signaali tai operaatiokutsu vastaanotettu Esim. käynnistä(), go up (floor) Määrätyn ajan kuluminen [timer=timeout] [t=15sec] after(15sec)
Tilakaavio
Tilakaavio Tilakaavion tapahtumat (nuolet) liittyvät usein luokkien operaattoreihin Mustang vuosimalli väri moottori nopeus kiihdytä() jarruta()
Tilakaavio Tilan sisällä voi olla toisia tiloja. Auto voi olla liikkeessä. Liike voi olla eteenpäin tai taaksepäin. Liikkeen vauhti voi olla hidas tai nopea
Harjoitus Pohtikaa ryhmissä mitä seuraavassa tilakaaviossa tapahtuu. Puuttuuko kuvasta mitään?
Harjoitus Mustangin kellossa on mode-nappi ja plus- nappi. Perustilassa kello näyttää ajan. Mode- napilla voidaan asettaa kellonaika. Painettaessa mode-nappia kerran, voidaan plus-napilla asettaa tunnit. Toinen painallus mahdollistaa minuuttien asetuksen plus- napilla. Kolmas mode-napin painallus palauttaa kellon takaisin perustilaan. Piirrä kellon toiminnasta tilakaavio
Harjoitus Piirtäkää ryhmässä tilakaavio liikennevaloista
Harjoitus Piirtäkää ryhmässä ATM-harjoituksesta tilakaavio