Ohjelmistotuotanto, kuvaustekniikat Syksy Kuvaustekniikat. Miksi kuvaustekniikoita? Abstraktiotasot. Abstrahointi UML

Samankaltaiset tiedostot
3a. Projektin hallinta (lisäys lukuun 3)

5. Järjestelmämallit. Mallinnus

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005

Ohjelmistotekniikan menetelmät, UML

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

UML:n yleiskatsaus. UML:n osat:

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistotuotanto, s

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

Ohjelmistotekniikan menetelmät, kevät 2008

UML -mallinnus TILAKAAVIO

Ohjelmistojen mallintaminen, kesä 2010

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

UML - unified modeling language

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

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

Lähestymistavat - toiminnallinen

Ohjelmistojen mallintaminen

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

UML-kielen formalisointi Object-Z:lla

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

käyttötapaukset mod. testaus

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

Ohjelmistojen suunnittelu

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Luokka- ja oliokaaviot

Kertaus: yleistys-erikoistus ja perintä

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Mitä on periytyminen?

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI

UML- mallinnus: Tilakaavio

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Olioperustaisuus (object oriented)

TIE = JOTU. VH5 - MagicDraw

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustaisuus (object oriented)

Ohjelmistotuotanto, s /3/2003

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

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

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

UML-mallinnus ja prosessien kuvaaminen Microsoft Visiolla (versio 2003 professional) Jouni Huotari

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustainen ohjelmistokehitys

Unified Modeling Language

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

1. Tarkastellaan seuraavaa kaaviota

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

Olioiden yhteistyön mallintaminen

Ohjelmistojen mallintaminen, käyttötapauksiin perustuva vaatimusmäärittely

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

Mallinnus UML-yleiskatsaus

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet

Ohjelmistojen vaatimusmäärittely Helsingin yliopisto, TKTL, s2013. Harri Laine 1. Tietovuokaaviot (data flow diagrams)

UML metamallina. Seminaariesitelmä Minna Majuri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmistojen mallintaminen, mallintaminen ja UML

Tietokantojen suunnittelu, relaatiokantojen perusteita

Yhteistoimintakaavio (Esimerkki)

Johdatus sovellussuunnitteluun, s2001, osa 3 Helsingin yliopisto / TKTL. Harri Laine / Inkeri Verkamo 1. Järjestelmän palvelujen määrittely

Arkkitehtuuripankki. Mallintamisen metamalli ja notaatiot

2. Olio-ohjelmoinnin perusteita 2.1

Harjoitustehtävät ja ratkaisut viikolle 48

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

VH5, JOTU, MagicDraw:n käyttö

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

UML Luokkakaavio 14:41

Yhteenveto. Menettelytavat

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Kurssin aihepiiri: ohjelmistotuotannon alkeita

MagicDraw-pikaohje (VH5)

Määrittely- ja suunnittelumenetelmät

Ohjelmistotekniikan menetelmät, koe

Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset

Käyttötapausanalyysi ja testaus tsoft

Ohjelmistotuotanto, s

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Ohjelmistojen mallintaminen

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

Vaatimusmääritelystä UML:n avulla

Johdatus sovellussuunnitteluun, s2000, osa3 Helsingin yliopisto;/tktl. Harri Laine 1. Järjestelmän palvelujen määrittely

Dynaaminen analyysi II

Visual Case 2. Miika Kasnio (C9767)

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Ohjelmistojen mallintaminen, kertausta

UML OHJELMISTOPROSESSIEN TUKENA

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Paikkatiedon mallinnus Dokumentoinnin ymmärtäminen. Lassi Lehto

Olio-ohjelmointi Johdanto olio-ohjelmointiin

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

2. Olio-ohjelmoinnin perusteita 2.1

PROSESSIMALLINNUS. Ari Wahlstedt, KTT

Suorituskyky ja ohjelmistokehitys Suorituskykymallit

Transkriptio:

5. Kuvaustekniikat Miksi kuvaustekniikoita? Tämä luku perustuu Sommervillen lisäksi seuraaviin kirjoihin: Martin Fowler, UML Distilled - Second Edition. Addison-Wesley, 2000. Roger S. Pressman, Software Engineering, A Practitioner s Approach. McGraw-Hill, 1997 tai uudempi (tietovuokaaviot). (Kirjat löytyvät kurssikirjahyllystä eikä niitä tarvitse hankkia erikseen.) Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 1 Nimensä mukaisesti vaatimusanalyysiin kuuluu analyysivaihe. Tässä vaiheessa on järkevää rakentaa yksi tai useampi malli järjestelmästä. Malli toimii sekä kuvauksena järjestelmästä korkean tason komponentteineen että vaatimusanalyysin ja suunnittelun välisenä siltana. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 2 Abstrahointi Mallinnuksen tärkein piirre on abstrahointi. Kaikkea tietoa ei näytetä mallissa, vaan mallit esitetään eri tarkkuuksilla, eli abstraktiotasoilla. Korkein abstraktiotaso on käyttäjän vaatimusten taso. Matalin ohjelmistotuotannon abstraktiotaso on kirjoitettu koodi. Abstraktiotasot Vaatimusten ja koodin välissä meillä on abstraktiotasoja, joiden kuvaamiseen voidaan käyttää graafisia ja tekstipohjaisia malleja. Jokainen malli näyttää yhden näkymän järjestelmästä. Mallien näkymät ovat erilaiset, mutta kaikki kuvaavat samaa järjestelmää. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 3 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 4 UML Unified Modeling Language (UML) on nykyisin de facto standardi oliojärjestelmien kuvaustapa. Se määrittelee useita kieliä, joita voidaan käyttää prosessin työvaiheissa kuvaamaan ohjelmiston näkymiä ja abstraktioita. Käsiteltävät UML-kaaviot Tällä kurssilla esittelemme seuraavat UML-kaaviot: käyttötapauskaaviot, luokkakaaviot, tilasiirtymäkaaviot ja aktiviteettikaaviot. Lisäksi esittelemme UML:n ulkopuolelta tietovuokaaviot. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 5 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 6 Verkamo, Taina 1

5.1.Käyttötapauskaavio Käyttötapauskaavion rakenne Käyttötapauskaavio kuvaa yhden tai useamman käyttötapauksen, tapausten toimijat tai roolit (actors) ja tapauksien keskinäiset ja roolien väliset suhteet. Kaaviotekniikka selkeyttää käyttötapausten keskinäisiä suhteita ja käyttötapauksiin liittyviä toimijoita. Silti sanalliset kuvaukset ovat käyttötapausten ydin. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 7 Kuvattava käyttötapaus on jokin toimijan ja järjestelmän välinen toiminta alusta loppuun. Alku: Tila juuri ennen käyttötapausta. Esim. henkilö on käynnistämässä ohjelmaa. Loppu: Tila käyttötapauksen päätyttyä. Esim. henkilö sulkee käyttämänsä ohjelman. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 8 Toimijat Toimija tai rooli liittyy yhteen tai useampaan käyttötapaukseen, ja yhteen käyttötapaukseen liittyy yksi tai useampi toimija. Yksi henkilö voi olla useassa eri roolissa eli useana eri toimijana käyttötapauksessa. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 9 Erikoistapaukset Käyttötapauksista voidaan tehdä erikoistapauksia Yleistys-relaatiolla. Näitä käytetään esimerkiksi silloin, kun halutaan kuvata oikein toimittuun käyttötapaukseen liittyviä virheellisiä toimintoja. Relaatio on Yleistys, koska varsinainen käyttötapaus on yleistys erikoistuneesta käyttötapauksesta. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 10 Sisältyvyydet Käyttötapauskaavion symbolit Toisena käyttötapausten välisenä relaationa UML määrittelee sisältyvyyden (include). Se tarkoittaa, että useat käyttötapaukset voivat sisältää yhteisiä osia, jotka on eroteltu omaksi käyttötapaukseksi. Sisältyvyys on eräänlainen käyttötapauskaavion alikaavio, jota voidaan käyttää ylemmän tason kaavioista. Toimija/rooli (actor) Käyttötapaus (Use Case) Yleistys (generalization) Käyttötapaus (Use Case) <<include>> Sisältyvyys Käyttötapaus (Use Case) Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 11 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 12 Verkamo, Taina 2

Käyttötapauskaavioesimerkki 5.2. Luokkakaaviot Asiakas Automaatille Lainaus Varaus Palautus Tiskille Teos myöhässä Laskutus Kirjastojen välinen teoshakemisto Kirjastonhoitaja Luokkakaavio on UML:n yleisimmin käytetty kuvauskieli. Luokkakaavioita voidaan käyttää järjestelmäanalyysista aina testaukseen asti. Varsinkin korkeilla abstraktiotasoilla luokkakaavioiden lisäksi käytetään täydentäviä (UML:n ulkopuolisia) kuvaustekniikoita. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 13 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 14 Luokkakaavionäkökulmat Luokkakaavionäkökulmat - II Luokkakaavioihin on kolme näkökulmaa: Käsitenäkökulma (conceptual): kuvataan järjestelmää, sen komponentteja, suhteita muihin järjestelmiin ja käyttäjiin. Tämä on vaatimusanalyysin näkökulma. Määrittelynäkökulma (specification): kuvataan ohjelmistoa, mutta keskitytään rajapintoihin toteutuksen sijaan. Tämä on korkean tason suunnittelun näkökulma. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 15 Toteutusnäkökulma (implementation): kuvataan ohjelmistoa, sen toteutusta, navigointia oliosta toiseen, olioiden tarjoamia palveluja ja kutsutapoja. Tämä on matalan tason suunnittelun näkökulma. Malliin sopivan näkökulman tunnistus auttaa sekä piirtämään että ymmärtämään luokkakaavioita. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 16 Luokkakaavion sisältö UML:n luokkakaaviot on kuvattu yksityiskohtaisesti Johdatus sovellussuunnitteluun -kurssilla, joten meille riittää kertaus. Luokkakaavio sisältää: Luokkia (classes). Jokainen luokka esittää kokoelmaa abstrakteja tai todellisia olioita. Samaan luokkaan kuuluvat oliot näyttävät samalta ja toimivat samoilla säännöillä. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 17 Luokkakaavion sisältö - II Yhteyksiä (associations). Luokkien välillä voi olla yhteyksiä. Yhteys kuvaa jonkin suhteen, joka pätee kahden luokan olioiden välillä - tai saman luokan, jos yhteys on rekursiivinen. Yleistyksiä (generalizations). Jokin luokka voi erikoistapaus toisesta. Tällöin erikoistapausluokan oliot ovat myös yleisemmän luokan olioita. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 18 Verkamo, Taina 3

Luokka ja yleistys Luokka sisältää tietoa siihen kuuluvien olioiden ominaisuuksista (attribuuteista) ja tietoa siihen kuuluvien olioiden toiminnoista. Yleistys sisältää viittauksen yliluokkaan: mistä yleistetään viittauksen aliluokkaan: mikä on yleistetyn luokan erikoistapaus. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 19 Yhteys Yhteys sisältää asteet: montako oliota kustakin luokasta voi/täytyy osallistua tähän yhteyteen ja roolit: miten yhteyteen osallistuvat luokat esiintyvät yhteydessä. UML määrittelee kaksi erityistä yhteyttä: aggregaatin (aggregate) ja komposition (Composite). Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 20 Erityisiä yhteyksiä Aggregaattiyhteys (kokouma, yhdistelmä) on eräänlainen sisältää-suhde: auto sisältää osinaan moottorin ja pyörät. Komposiittiyhteys (kooste) on aggregaattia vahvempi yhteys. Se määrittelee rakenteisen suhteen: osat kuuluvat täsmälleen yhteen kokonaisuuteen. Kokonaisuus ja osat elävät ja kuolevat yhdessä. Yhteysesimerkki Esim. Jos meillä on aggregaattiyhteys autorengas, niin tulkintana on, että autossa on renkaat, mutta renkaita voidaan säilyttää erillään autosta (esimerkiksi talvirenkaat). Sen sijaan komposiittiyhteytenä auton renkaat ovat erottamaton osa autoa eikä niitä voida esimerkiksi ottaa erilleen, kun auto viedään romuttamolle. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 21 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 22 Luokkakaavioesimerkki 5.3. Tietovuokaaviot Aviovaimo Kihlasormus Avioitunut 1..* henkilö 1 1 Aviomies 1 1..2 1 Isä 0..1 Äiti 1 Ydinperhe 0..1 0..1 2..* Lapsi Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 23 Äiti 1 * * Avioliiton kautta tullut sukulainen Tietovuokaavioiden avulla pyritään selvittämään, miten tieto kulkee järjestelmässä ja mitä muutoksia siihen kohdistuu. Tietovuokaavioita pidetään joskus vanhanaikaisina, mutta ne sopivat yleensä järjestelmäsuunnitteluun ja vaatimusanalyysin korkeiden abstraktiotasojen mallinnukseen. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 24 Verkamo, Taina 4

Tietovuokaavioiden rakenne Tietovuokaavioiden komponentit ovat seuraavat: Ulkoiset oliot eli sidosryhmät. Ulkoiset oliot tuottavat järjestelmään tietoa ja syötteitä ja toisaalta ottavat tulosteet vastaan. Prosessit. Prosessi on järjestelmän sisäinen komponentti, joka muokkaa tietoa toiseen muotoon. Kaikki tiedon käsittely tapahtuu prosesseissa. Tietovuokaavioiden rakenne - II Tietovuot. Tietovuo kuvaa tiedon kulkua ulkoiselta oliolta järjestlemän sisälle ja järjestelmän sisällä prosessista toiseen. Tietovuossa liikkuu nimensä mukaisesti tieto. Tietovarastot. Tietovarasto on tiedon pysyvä tai väliaikainen talletuspaikka. Tietovaraston toteutustapaa ei ole kiinnitetty. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 25 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 26 Kaaviot Korkeimmalla tasolla oleva tietovuokaavio on yhteyskaavio. Siinä kuvataan sidosryhmät ja niistä järjestelmään tulevat ja lähtevät tietovuot. Itse järjestelmä kuvataan prosessina. Ensimmäinen varsinainen tietovuotaso on yleiskaavio. Siinä kuvataan järjestelmän tärkeimmät prosessit ja niiden väliset tietovuot. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 27 Kaaviohierarkia Kaaviot ovat hierarkkisia. Järjestelmän prosesseja tarkennetaan kunnes päästään halutulle tarkkuustasolle. Haluttu tarkkuustaso riippuu käytöstä. Vaatimusanalyysissä pyritään yleensä sellaiselle tasolle, että tietovuokaaviosta havaitaan jakamattomat tehtävät. Tietovuokaavioita voidaan käyttää esim. yhdessä käyttötapausten kanssa. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 28 Kaavioiden tarkennus Tietovuokaavioiden elementit Tarkennuksessa valitaan tarkennettavasta tietovuokaaviosta jokin prosessi, joka sitten kuvataan useana osaprosessina uudessa tietovuokaaviossa. Tietovuokaavioiden tarkennuksessa informaatiota ei synny eikä häviä. Rooli Tehtävä Tieto Tieto Ulkoinen olio Prosessi Tietovuo Tietovarasto Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 29 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 30 Verkamo, Taina 5

Tietovuokaavioesimerkki 5.4. Tilasiirtymäkaaviot Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 31 Kaikilla järjestelmilläja olioilla on tila: toteutuneiden tapahtumien vaikutus. Järjestelmä siirtyy tilasta toiseen, kun saapuva tapahtuma (event) vaikuttaa sen tilaan. Tilasiirtymäkaavioita käytetään kuvaamaan järjestelmän, osajärjestelmän tai olion kaikkia tiloja ja siirtymisiä tilasta toiseen. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 32 Tilasiirtymäkaavion käyttö Tilasiirtymäkaavio voidaan piirtää koko järjestelmästä, sen osasta tai oliosta. Periaate on aina sama. Vain mittakaava muuttuu. Tilasiirtymäkaavioilla voidaan esimerkiksi kuvata olion tai (osa)järjestelmän koko elinkaari. Tilat Tilasiirtymäkaavioita käytetään kuvaamaan, miten järjestelmä reagoi tapahtumiin ja miten tapahtumat muuttavat järjestelmän tilaa. Esimerkiksi tällä PowerPoint-esityksellä on tila: kulloinkin näytettävä kalvo. Kun painan välilyöntinäppäintä, siirrän samalla esityksen uuteen tilaan, eli seuraavalle kalvolle. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 33 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 34 UML:n tilasiirtymäkaavio UML:ssa tilasiirtymäkaavion tiloja kuvataan pyöreäreunaisella suorakulmiolla ja siirtymiä nuolilla. Lisäksi tilasiirtymäkaaviolla voi olla lähtöpiste ja useita päätepisteitä. Lähtöpiste kuvataan mustalla ympyrällä ja päätepiste avoimella ympyrällä, missä on musta keskipiste. Tilan rakenne Jokaisella tilalla on tilan merkityksen kertova nimi. Lisäksi tilalla voi olla tilariippuvia muuttujia, kuten laskureita, ja tilassa tapahtuvia toimintoja selittäviä tapahtuma/toiminto -pareja. Käyttäjä voi määritellä omia tapahtumia, joiden toteutuessa toimitaan vastaavan toiminnon mukaan. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 35 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 36 Verkamo, Taina 6

Vakiotapahtumat UML määrittelee kolme vakiotapahtumaa: entry, exit ja do. entry -toiminnot suoritetaan, kun järjestelmä tulee tilaan. exit-toiminnot suoritetaan, kun järjestelmä poistuu tilasta. do-toiminnot suoritetaan, kun järjestelmä on tilassa. Siirtymän rakenne Siirtymä kuvataan nuolella lähtötilasta maalitilaan. Lisäksi siihen voi kuulua tieto siirtymän aiheuttaneesta tapahtumasta ja laukaisimesta. Laukaisin (trigger) on ehto, jonka täytyy toteutua, jotta järjestelmä voi siirtyä tapahtuman tullessa tilasta toiseen. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 37 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 38 Siirtymän rakenne - II Tilasiirtymäkaavion komponentit Laukaisinten avulla kuvataan ehdollisia siirtymiä. Siirtymän toteutuminen vaatii sekä saapuneen tapahtuman että toteutuneen laukaisimen. Sekä tapahtuma että laukaisin voivat yksin aktivoida siirtymän. Molempien ei ole pakko olla mukana. Lähtöpiste Päätepiste Nimi Muuttujat tapahtuma/toiminto tapahtuma/toiminto tapahtuma [laukaisin] Tila Siirtymä Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 39 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 40 Tilasiirtymäesimerkki (hissi) 5.5. Aktiviteettikaaviot Menossa ensimmäiseen kerrokseen perillä Ensimmäisessä kerroksessa Menossa alas ylös (kerros) perillä alas (kerros) Menossa ylös perillä [ajastin = maksimi odotusaika]/alas (ensimmäinen kerros) Odottaa ajastin = 0 do/kasvata ajastinta help/anna opastusta ylös (kerros) Aktiviteettikaavio kuvaa tietyn tehtävän sisäisen logiikan. Tehtävä voi olla yksittäinen operaatio tai jokin korkeamman tason tehtävä, kuten käyttötapauksen skenaario. Aktiviteettikaavio on sukua tilasiirtymäkaaviolle, mutta näkökulmana on tällä kertaa tehtävien keskinäinen sisäinen logiikka. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 41 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 42 Verkamo, Taina 7

Aktiviteettikaavion osat Aktiviteettikaavion komponentit Lähtö- ja päätepiste. Suoritettavia toimintoja (aktiviteetteja). Siirtymiä aktiviteetista toiseen. Siirtymään voi liittyä siirtymän aktivoiva ehto. Tehtävien synkronointejaa, joilla mallinnetaan tehtävien rinnakkaisuutta. Haaraumia, joilla mallinnetaan vaihtoehtoja Ratoja (swimlanes), joilla mallinnetaan toimijoita. Lähtöpiste Päätepiste Synkronointi Toimija Rata Toiminto [ehto] Aktiviteetti Siirtymä Haarauma Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 43 Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 44 Aktiviteettikaavioesimerkki Asiakas Anna kirja Hyräile Kirjastonhoitaja [Myöhässä] Kirjaa myöhästyminen Tarkista palautus Kirjaa palautus [else] Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 45 5.6. Muut UML:n kaaviot Edellä esiteltyjen kaaviotekniikkojen lisäksi UML:n nykyinen versio määrittelee seuraavat kaaviot: Sekvenssikaavio (sequence diagram): Tällä kaaviolla kuvataan olioiden välistä dynaamista yhteistyötä. Kaaviosta selviää, missä järjestyksessä oliot kutsuvat toistensa palveluja tietyllä hetkellä ja mitä viestejä/palvelupyyntöjä oliot lähettävät toisilleen. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 46 Muut UML:n kaaviot - II Yhteistyökaavio (collaboration diagram): Myös tällä kaaviolla kuvataan olioiden välistä yhteistyötä, mutta järjestys ei ole aikaan sidottu. Osallistujat voidaan asetella esimerkiksi loogisesti yhteenkuuluviksi kokonaisuuksiksi. Oliokaavio (object diagram): Oliokaavio kuvaa olioita ja niiden välisiä suhteita. Kaavio esittää luokkakaavion mahdollista ajoaikaista ilmentymää. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 47 Muut UML:n kaaviot - III Komponenttikaavio (component diagram): Tällä kaaviolla kuvataan fyysisiä ohjelmistokomponentteja. Kaavio kuvaa komponentit ja niiden väliset suhteet. Sijoittelukaavio (deployment diagram): Kaavio näyttää laitteiston ja ohjelmiston fyysisen arkkitehtuurin. Tämä on UML:n työkalu järjestelmäsuunnitteluun, mitä voidaan käyttää luokkakaavioiden ja tietovuokaavioiden sijaan tai rinnalla. Syksy 2004 Ohjelmistotuotanto / Verkamo, Taina 48 Verkamo, Taina 8