UML- mallinnus: Tilakaavio
Karkea kuvaus UML- kaavioiden käytöstä ohjelmistonkehityksen eri vaiheissa ja tehtävissä.
Mallinnus tilakaavioilla Tilakaaviolla kuvataan yhden luokan olioiden tilan muuttumista olioon kohdistuvien tapahtumien mukaan. Tilakaavio on täydellinen kuvaus, ei esimerkinomainen. Tilakaavio laaditaan vain olioista, joiden ymmärtäminen eri tilojen kautta on järjestelmän kannalta tärkeää.
Toiminnot (action) ovat välittömästi tapahtuvia - aiheutuvat tapahtumista - muuttuvat tilan mukaan Ero aktiviteettikaavioon: aktiviteettikaavio on tilakaavio, jonka tilat ovat aktiviteetteja aktiviteetti on operaatio, jonka suorittaminen kestää; ei välitön. Tilat (state) ovat abstraktioita luokan attribuuttien arvojen yhdistelmistä
Tilakaavio notaatio State name entry/action exit/action do/action eventname/action eventname/defer Suoritetaan tilaan saavuttaessa Suoritetaan tilasta poistuttaessa Suoritetaan tilassa ollessa Toiminto Vahti: tilasiirtymä mahdollinen, jos tosi Suoritetaan tapahtuman sattuessa eventname(param)[guard]/action Alkutila Lopputila Viivästetty tapahtuma Action: assignment call create destroy return send terminate
Tilakaaviot esimerkki Esimerkkinä VarauksenTeko-kontrolliolion tilakaavio; vain tilasiirtymiä aiheuttavat tapahtumat on esitetty. kysysaatavuus[ei löydy]/- Ei varaustietoja alustatiedot(v.tiedot)/- Varaus ei saatavilla etsivaraus[löytyi]/- timeout tai peruuta()/ peruuta alustava varaus kysysaatavuus[löytyi]/ alustava varaus ok/- Varaus vahvistettu Vahvista()/ vahvista alustava var. Varaus saatavana entry/aloita ajan lasku peruuta()/ peruuta varaus
Tilakaavioiden laadinta Haetaan kontrollin kannalta oleelliset tilat ja tilasiirtymät Käydään läpi olion operaatiot, joiden seurauksena tila muuttuu Jokaiselle tilalle mietitään kaikki mahdolliset tilasiirtymät - laukaisuehdot kaikille siirtymille - tilaan saapumis- ja tilasta poistumistoiminnot - siirtymiin liittyvät toiminnot ja niiden ehdot - alku- ja lopputila
Esimerkki ylitilasta reaaliluvun arvon laskeminen 6 /s = 0 piste alku merkki on d/ s = merkki merkki on "." merkki on d/ s = s+merkki/10 k = 2 loppu tai merkki ="."/ status = FAIL loppu tai merkki on "."/ status = FAIL kok.osa merkki on d/ s = 10*s + merkki des.osa merkki on d/ s = s+merkki/10**k k =k+1 loppu/ arvo = s status = OK loppu/ arvo = s status = OK merkki on "."/ status = FAIL merkki ei ole d eikä "."/ status = FAIL 6 6
Esimerkki rinnakkaisista tiloista dokumentin tallennus tyhjä nimetön editoi muutettu lataa tai talleta talleta talleta lataa editoi lataa nimetty talletettu poistu [tyhjä tai talletettu] poistu [muutettu ja nimetön]/ varmista talletus ja kysy tiedostolle nimi poistu [muutettu ja nimetty]/ varmista talletus
Tilakaaviot vs. sekvenssikaaviot Sekvenssikaaviot kuvaavat olioiden interaktion Tilakaaviot yhden olion toiminnallisuuden Sekvenssikaaviot ja tilakaaviot riippuvat vahvasti toisistaan. Sekvenssikaavion tapahtumien ja tilakaavion tilasiirtymien suhde: tilasiirtymät tapahtuvat sekvenssikaavion olioon tulevien nuolien kohdalla. Sekvenssikaaviossa - olioon tuleva nuoli on palvelupyyntö ja oliosta lähtevä nuoli on vaste pyynnölle tai palvelupyyntö toiselle oliolle.
Sekvenssikaaviossa yksittäisen olion pystyviiva kuvaa olioon kohdistuvia tilamuutoksia. Tällöin voidaan tarkistaa, tuottaako tilakone olion pystyviivalla olevan tilamuutossekvenssin ja etsiä tilakoneen tilasiirtymät sekvenssikaaviosta. Tilakaaviot ovat sekvenssikaavioita voimakkaampia, sillä ne sisältävät kaiken sen informaation minkä sekvenssikaaviotkin (jos jokaisesta oliosta tehtäisiin tilakone). Skenaariot ovat havainnollisempia, mutta epätäydellisiä.
Tilakaavion ja sekvenssikaavion yhteys Dialog diagrams Y:n tilakaaviossa:... / x.a() Y: Y X Z X:n tilakaaviossa: a b a /... User UI System Do: z.b Task specifications tai... /^x.a() tai... /send x.a()
Yhteys luokkakaavioihin Design model A B A B m m User View Contr Event traces
Dokumentoinnista Vaatimusmäärittelyn ja analyysin tulos dokumentoidaan yrityksen laatujärjestelmässä kuvatun mallin mukaan. Sisällysluettelo voisi näyttää vaikka tältä. 1. Johdanto 2. Nykyisen järjestelmän kuvaus ( jos sellainen on ) 3. Uuden järjestelmän kuvaus 3.1 3.2 3.3 3.4 Yleiskatsaus Toiminnalliset vaatimukset Ei-toiminnalliset vaatimukset Rajoitteet eli Pseudo requirements 3.5 Analyysivaiheen malli 3.5.1 Käyttöliittymän kuvaus 3.5.2 Käyttötapausmalli 3.5.2.1 Käyttötapauskaaviot 3.5.2.2. Käyttötapauskuvaukset 3.5.3 Oliomalli 3.5.3.1 Tietohakemisto 3.5.3.2 Luokkakaaviot 3.5.4 Dynaaminen malli 3.5.4.1 Sekvenssikaaviot käyttötapauksista 3.5.4.2 Tilakaavio(t) 4. Sanasto