Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio 21.11.2008 Harri Laine 1
Joidenkin järjestelmien sisältömallissa on erotettavissa luokkia, joiden ilmentymien käyttäytymisen kuvaaminen, kirjaus ja hallinta ovat tärkeässä asemassa koko järjestelmän kannalta. Järjestelmä saattaa olla olemassa pelkästään näitä varten puhelinkeskuksen puhelunhallinta hakemus tai valitusprosessi tilaustenhallinta liikenteenohjaus prosessinhallinta 21.11.2008 Harri Laine 2
Myös ohjelmiston toteutukseen käytettävien teknisten luokkien olioihin voi liittyä erilaisia tiloja ja sääntöjä jotka kontrolloivat siirtymisiä tilojen välillä, esim ohjelman toimintaa ohjaavat kontrollioliot jotkin käyttöliittymäoliot syötteiden tulkinta UML tarjoaa olioiden käyttäytymisen kuvaukseen tilakaavio (state diagram) tekniikan 21.11.2008 Harri Laine 3
Käyttäytyminen perustuu siihen, että olio on elinkaarensa aikana erilaisissa tiloissa (state). Tila (state) = attribuuttien arvojen ja olion kytkentöjen muodostama nimetty kokonaisuus, olotila. Tilan määrytymiseen voi vaikuttaa vai yksi attribuutti tai useampien yhdistelmä. Tuoppi on tilassa täysi Lasku on tilassa maksettu Lompakko on tilassa tyhjä tila Perinteisessä tila-automaattimallissa automaatti (tässä yhteydessä olio) voi olla vain yhdessä tilassa tietyllä hetkellä. 21.11.2008 Harri Laine 4
Siirtymä (transition) = Siirtyminen tilasta toiseen. Siirtymän saa aikaan jokin heräte (event, message). Heräte on jokin tapahtuma. Siirtymiseen tilasta toiseen liittyy olion suorittamaa toimintaa. maksamatta maksaminen maksettu Laskun tiloja, heräte maksaminen vaihtaa tilaa. 21.11.2008 Harri Laine 5
Siirtymään voidaan liittää ehto, joka säätelee siirtymismahdollisuutta. maksamatta maksaminen [eräpäivään alle viikko] maksettu Laskua ei saa maksaa liian aikaisin. 21.11.2008 Harri Laine 6
Siirtymään voidaan liittää myös toimintaa tai viestin lähetys toiselle oliolle. LASKU: maksaminen [eräpäivään alle viikko] / lompakko. anna_rahaa(määrä) maksamatta maksettu LOMPAKKO pullottaa anna_rahaa tyhjä 21.11.2008 Harri Laine 7
Alkutila ja lopputilat (alla laskun elinkaarta) maksamatta maksaminen maksettu alkutila eräpäivä ohi karhuttu maksaminen lopputila nyt_saa_jo_riittää perinnässä tuloutus uffet luottotappiona 21.11.2008 Harri Laine 8
Tiloihin voidaan liittää toimintaa. Toiminta voidaan liittää tilaan saapumiseen (entry) tilasta poistumiseen (exit) tilassa olemiseen (do) (kaikki toiminnot toteutetaan olion palveluina) 21.11.2008 Harri Laine 9
odotus kolikko Saatu rahaa do:lisää pottiin näytä kolikko Painettu valintanappia Saatu liian vähän entry:lisää Laskettu [vaihto<=0] Karkit_jakoon entry: vaihtoraha Laskettu [vaihto=>0] Tilanne tarkistettu [on] Karkki_valittu entry: tarkista Tilanne tarkistettu [ei ole] Painettu valintanappia Kolikko/ lisää pottiin Saatu liikaa entry:palauta liika Karkkia ei ole Painettu peruutusnappia Rahat otettu Ei vaihtorahaa Painettu peruutusnappia Karkit otettu valmis entry:anna karkit Rahat otettu valmis entry: palauta Peruttu entry:palauta 21.11.2008 Painettu peruutusnappia Harri Laine 10
Rakenteinen tila-automaatti (statechart) Harel: Statecharts: A visual formalism for complex systems, Science of computer programming, 8, 1987, 231-274 Poikkeaa perinteisestä tila-automaatista esim. tarjoamalla rinnakkaiset tilakoneet kokonaisuus voi olla samanaikaisesti useassa rinnakkaisessa tilassa - seuraus pienemmät tilakoneet rinnakkaiset tilakoneet voivat olla toisistaan riippumattomia tai riippuvia esim. olion tilaa tarkastellaan eri ominaisuuksien suhteen. 21.11.2008 Harri Laine 11
yleistyshierarkia tiloille - alitila - ylitila (xor-tila) ylitila H Paluu siihen missä oltiin help s13 ali_1 ali_2 ali_3 Siirtyminen mistä tahansa alitilasta Siirtyy sisällä alkutilaan s15 21.11.2008 Harri Laine 12
Edellisen kalvon automaatissa 'help' siirtää mistä tahansa alitilasta ali_1, ali_2, ali_3 tilaan s13. Automaatti voi olla joko tilassa ali_1, ali_2, ali_3, s13 tai s15. Jos ulkopuolelta siirrytään ylitilaan valitaan alitilaksi aloitustilaksi merkitty eli s15:sta siirrytään ali_1:een. Tässä automaatissa on historiatila H, joka tarkoittaa paluuta siihen alitilaan, josta viimeeksi poistuttiin, eli tässä palataan help-toiminnon jälkeen samaan tilaan, josta lähdettiin 21.11.2008 Harri Laine 13
Yhteydet muihin malleihin Tilakaavio vs. käyttötapaukset Käyttötapausten joukosta pitää löytyä siirtymiä aiheuttavat käyttötapaukset Tilat vs tietosisältö Määriteltävä miten tila ilmaistaan tietosisällössä Märiteltävä palvelut tilasiirtymien toteuttamisesksi 21.11.2008 Harri Laine 14
Uuden version saapuminen 4. korjattavana Artikkelin saapuminen hylkäyspäätöksen teko 1. valmisteilla 5. hylätty artikkelin elinkaari Lähetys lausunnoille Lausuntoa ei saada Korjattavaksi lähettäminen 3. käsiteltävänä hylkäyspäätöksen teko 2. lausunnolla Lausuntojen saapuminen Hyväksyminen Viimeistelyyn lähetys 7. viimeisteltävänä 6. hyväksytty Viimeistelty versio saapuu Sijoitetaan lehteen 21.11.2008 8. oikoluettavana Harri Laine 15 9. julkaistu