Skip to content

UML - Unified Modeling Language

Kuvauksen kirjoitti: Lassi Lehtinen, M3069

Lyhyt kuvaus

UML eli Unified Modeling Language on yleiskäyttöinen graafinen mallinnuskieli erilaisten järjestelmien visualisointiin. Se kehitettiin standardiksi järjestelmien toiminnan ja rakenteen graafiseen esittämiseen. UML on siis visualisointityökalu, ei ohjelmointikieli. UML perustuu oliopohjaiseen suunnitteluun. UML:n kehitti Object Management Group (OMG) vuonna 1997. Sen jälkeen UML:ää on päivitetty muutaman kerran. Uusin UML-standardi on joulukussa 2017 julkaistu versio 2.5.1.

UML tarjoaa yhteisen kielen kaikille jonkin järjestelmän kehityksen parissa työskenteleville. Ohjelmoijille UML on hyödyllinen työkalu järjestelmän määrittelyssä ja suunnittelussa. UML:n visuaalisuus tekee siitä helposti ymmärrettävän myös ohjelmointipuhetta ymmärtämättömille ihmisille. Esimerkiksi projektin tilaajan, asiakkaan, voi olla helpompi osallistua järjestelmän toiminnan määrittelyyn ja suunnitteluun, kun asioita voidaan käsitellä yhdessä kaikille osapuolille helppolukuisten kaavioiden avulla.

UML:ään kuuluu 13 erilaista kaaviotyyppiä. Nämä kaaviotyypit voidaan jakaa kahteen luokkaan, rakenne- ja käyttäytymiskaavioihin:

Rakennekaavioita ovat:

  • luokkakaavio (Class diagram)
  • komponenttikaavio (Component diagram)
  • sijoittelukaavio (Deployment diagram)
  • oliokaavio (Object diagram)
  • pakkauskaavio (Package diagram)
  • koostekaavio (Composite structure diagram)

Käyttäytymiskaaviot taas voidaan jakaa vielä kahteen eri alaluokkaan, käyttäytymis- ja vuorovaikutuskaavioihin:

Käyttäytymiskaavioita ovat:

  • käyttötapauskaavio (Use case diagram), ks. Käyttötapaus (Use case)
  • aktiviteettikaavio (Activity diagram)
  • tilakaavio (State machine diagram)

Käyttäytymiskaavioista vuorovaikutuskaavioihin luetaan:

  • sekvenssikaavio (Sequence diagram)
  • kommunikointikaavio (Communication diagram)
  • kokoava vuorovaikutuskaavio (Interaction overview diagram)
  • ajoituskaavio (Timing diagram)

UML-kaavioiden luokittelu kaaviomuodossa:

UML-kaavioiden luokittelu kaaviomuodossa

UML:n kaaviot lyhyesti

Alla lyhyet kuvaukset kaikista 13 UML-kaaviotyypistä. Havainnollistavia mallikuvia kaavioista löytyy Visual Paradigm -UML työkalun nettisivulta artikkelista What is Unified Modeling Language (UML)?

Rakennekaaviot

Rakennekaaviot kuvaavat nimensä mukaisesti järjestelmän tai sen osan rakennetta eri näkökulmista.

Luokkakaavio kuvaa järjestelmän objekteja (olioita) ja niiden välisiä suhteita.

Komponenttikaaviolla taas kuvataan järjestelmän osasten riippuvuuksia toisistaan.

Sijoittelukaavio havainnollistaa järjestelmän fyysistä jakautumista eri laitteiden välillä, eli mikä osa järjestelmästä suoritetaan millä laitteella (esim. palvelin, käyttäjän tietokone, matkapuhelin).

Oliokaavio kuvaa järjestelmän olioiden tilaa valitulla ajanhetkellä. Oliokaaviossa näkyvät olioiden sen hetkiset tiedot, siis ohjelmoijan näkökulmasta sen jäsenmuuttujien arvot. Se muistuttaa luokkakaaviota, mutta havainnollistaa eri asiaa. Luokkakaavio kuvaa sitä, millaisia oliot ovat. Oliokaavio taas antaa realistisen esimerkkikuvan siitä, millaisia olioiden tilat voisivat olla jollain hetkellä ohjelman suorituksen aikana. Se on ikään kuin pysäytyskuva järjestelmän toiminnasta oliotasolla.

Pakkauskaavio visualisoi ohjelman paketit ja niiden väliset riippuvuudet.

Koostekaavio kuvaa sitä, miten jokin kokonaisuus koostuu pienemmistä osista, sekä miten osat vaikuttavat toistensa kanssa.

Käyttäytymiskaaviot

Käyttäytymiskaaviot kuvaavat järjestelmän tai sen osan käyttäytymistä eri näkökulmista.

Käyttötapauskaavio kuvaa järjestelmän toiminnallisia vaatimuksia käyttötapausten (ks. Käyttötapaus (Use case)) muodossa.

Aktiviteettikaavio kuvaa toiminnan ohjauksen vuorottelua kahden tai useamman järjestelmän osan kesken jonkin tehtävän (aktiviteetin) aikana. Aktiviteettikaavion voi esittää esimerkiksi uimaratakaavion muodossa.

Tilakaavio kuvaa luokan käyttäytymistä ajan kuluessa ja sen vasteita erilaisiin syötteisiin. Tilakaaviossa esitetään luokan mahdolliset tilat ja siirtymät niiden välillä.

Vuorovaikutuskaaviot

Sekvenssikaavio esittää, kuinka oliot työskentelevät yhdessä jonkin määrätyn käyttötapauksen suorittamiseksi. Sekvenssikaaviossa tapahtumat esitetään aikajärjestyksessä.

Kommunikointikaavio esittää sekvenssikaavion tavoin sitä, kuinka oliot työskentelevät yhdessä käyttötapauksen suorittamiseksi. Kommunikointikaavion ja sekvenssikaavion ero on siinä, että sekvenssikaavio kuvaa erityisesti tapahtumien aikajärjestystä, kun taas kommunikointikaavio keskittyy olioiden välisen vuorovaikutuksen ja yhteistyön kuvaamiseen.

Kokoava vuorovaikutuskaavio on aktiviteettikaavion ja sekvenssikaavion yhdistelmä. Kokoavaan vuorovaikutuskaavioon voi linkittää/upottaa järjestelmän pienempiä kokonaisuuksia kuvaavia vuorovaikutuskaavioita.

Ajoituskaavio on sekvenssikaavion erityismuoto, jota käytetään esittämään tilojen vaihdon ja olioiden käyttäytymisen kesto- ja aikarajoituksia.

Työkalut UML:n käyttöön

UML:n käyttöön on lukuisia työkaluja. JAMK:n ohjelmistotekniikan opiskelijoille tutuin lienee PlantUML. Lisää työkaluja UML:n käyttöön voi löytää esimerkiksi Wikipedian sivulta List of Unified Modeling Language tools.

Lisätietoa

Linkit ulkopuolisiin lähteisiin

Avainsanat harjoitustehtävän repositoriossa