UML:n yleiskatsaus - voidaan hyödyntää hyvin laajasti. - sopii liiketoimintamallinnukseen, ohjelmistomallinnukseen sen jokaiseen vaiheeseen tai minkä tahansa pysyviä ja muuttuvia ominaisuuksia sisältävän rakennelman yleiseen mallinnukseen. - tarpeeksi kattava ja yleinen, ei liian monimutkaisia tai erikoisia rakennelmia UML:n osat: Kaaviot (diagrams): - yhdeksän erilaista kaaviotyyppiä - yhdistelemällä muodostetaan järjestelmän kokonaiskuva Mallinnuselementit (model elements): - Kaavioissa käytetään mallinnuselementtejä, jotka vastaavat yleisiä olioohjelmoinnin käsitteitä, kuten luokkia, olioita ja viestejä, sekä niiden välisiä yhteyksiä, kuten assosiaatiota (association), riippuvuutta (dependency) ja yleistystä (generalization). - Mallinnuselementtiä käytettäessä erityyppisissä kaavioissa merkitys ja ulkoasu eivät muutu. Yleiset merkinnät (general mechanisms): Mallinnuselementteihin voidaan liittää kommentteja, lisätietoa tai lisämerkityksiä (semantics). UML:n laajennusmahdollisuus tiettyihin toimintatapoihin. UML yleistä 1
Näkymät - näyttävät mallinnettavan järjestelmän eri puolia. - ei tarkoita yksittäistä kuviota, vaan abstraktiota, joka koostuu useasta kaaviosta. - näkymien avulla mallinnuskieli yhdistetään kehityksessä käytettyyn työmenetelmään tai toimintaohjeisiin. Käyttötapausnäkymä (use-case view): - Käyttötapausnäkymä kuvaa järjestelmän tarjoamia palveluja ulkopuolisen toimijan (actor) kannalta. - Toimija - ihminen tai toinen järjestelmä, kommunikoi järjestelmän kanssa. - Käyttötapausnäkymiä käyttävät asiakkaat, suunnittelijat, kehittäjät ja testaajat. - Näkymä määritellään käyttötapauskaavioilla ja joskus toimintokaavioilla (activity diagrams). - Järjestelmän käyttö kuvataan näkymässä useilla käyttötapauksilla, jotka vastaavat tietyn käyttömahdollisuuden eli toiminnon kuvausta. - Käyttötapausnäkymä on keskeisessä asemassa, sillä sen sisältö ohjaa muiden näkymien kehitystä. - Järjestelmän lopullinen tavoite on tarjota tässä näkymässä kuvatut toiminnot - joidenkin laadullisten ominaisuuksien lisäksi - joten käyttötapausnäkymä vaikuttaa kaikkiin muihin näkymiin. UML yleistä 2
Looginen näkymä (logical view): - Kertoo, kuinka järjestelmän toiminnot on toteutettu. - Käyttö pääasiassa suunnittelijat ja kehittäjät. - Kuvaa järjestelmän sisällä pysyvät rakenteet eli luokat, oliot ja suhteet, sekä dynaamiset yhteistyötapahtumat (collaborations) olioiden lähettäessä viestejä toisilleen toteuttaakseen halutun toiminnon. - Ominaisuudet, kuten säilyvyys (persistence) ja samanaikaisuus (concurrency), määritellään myös, samoin luokkien tarjoamat ulkoiset rajapinnat ja sisäiset rakenteet. - Käytetään luokka- ja oliokaavioita, tila-, viestiyhteys-, yhteistyö- ja toimintokaavioilla Komponenttinäkymä (component view): - kuvaa moduulien toteutuksen ja niiden väliset riippuvuudet. koostuu komponenttikaaviosta. - erityyppisistä koodimoduuleista näytetään rakenteet ja riippuvuudet, mahdollisesti myös resurssien varaukset tai raportit työn etenemisestä. Samanaikaisuusnäkymä (concurrency view): - järjestelmän jako prosesseihin ja prosessoreihin. - tarkoitus mahdollistaa resurssien tehokkaan käytön, rinnakkaisajon ja ympäristöstä tulevien viestien asynkronisen käsittelyn. - rinnakkaisiin säikeisiin jaon lisäksi käsitellään näiden säikeiden välistä synkronointia ja kommunikaatiota. UML yleistä 3
- käyttää kehittäjät ja järjestelmän kokoojat (integrotors) - koostuu dynaamisista kaavioista (tila-, viestiyhteys-, yhteistyö- ja toimintokaaviot ja toteutuskaavioista), toteutuskaavioista (komponentti- ja käyttöönottokaaviot) Käyttöönottonäkymä (deployment vew): - kuvaa järjestelmän fyysisen sijoittelun, eli tietokoneet ja muut laitteet, sekä niiden väliset yhteydet. - hyödyntävät kehittäjät, kokoajat ja testaajat. kuvaavat käyttöönottokaaviot, jotka kertovat, minne eri koodimoduulit sijoittuvat eli mitkä ohjelmat ja oliot toimivat missäkin tietokoneessa. UML ei vaadi muitakin näkymiä - voidaan käyttää staattis-dynaamisia, loogisfyysisiä ja vuokaavioita. UML yleistä 4
Kaaviot Käyttötapauskaavio - Käyttötapauskaaviossa (use-case diagram) on useita ulkoisia toimijoita (actors) ja niiden yhteydet järjestelmän tarjoamiin käyttötapauksiin. - Yksittäinen käyttötapaus on järjestelmässä olevan yhden toiminnon kuvaus. Kuvaus tehdään yleensä sanallisesti ja tallennetaan käyttötapauselementin dokumentointi-ominaisuuteen, mutta se voidaan myös tehdä toimintokaaviota käyttäen. - Käyttötapaukset kuvataan vain ulkoisesti eli toimijan näkökulmasta, eikä niissä oteta kantaa siihen, kuinka toiminto saadaan toteutettua. Luokkakaavio - Luokkakaavio (class diagram) kuvaa järjestelmän luokkarakenteen. - Luokat vastaavat asioita, joita järjestelmä käsittelee. - luokkakaaviossa näytetään luokkien sisäiset rakenteet tietojen (attributes) ja toimintojen (operotions) kanssa. - Kaavio on staattinen, mikä tarkoittaa sitä, että se on pätevä millä tahansa hetkellä. - järjestelmässä on yleensä useita luokkakaavioita - kaikkia luokkia ei laiteta samaan kaavioon - ja luokka voi olla mukana useissa luokkakaavioissa. Oliokaavio - Oliokaavio (object diagram) on luokkakaavion muunnelma. UML yleistä 5
- oliokaaviossa on useita olioita eli luokkien ilmentymiä (instances), eikä itse luokkia. - Notaatio on sama kuin luokkakaaviossakin poikkeuksena: olioiden nimet alleviivataan ja tiettyyn yhteyteen liittyvät kaikki yksittäiset ilmentymät näytetään. - Oliokaaviot eivät ole yhtä tärkeitä kuin luokkakaaviot, mutta niillä voidaan selkiyttää monimutkaisia luokkakaavioita näyttämällä, miltä yksittäiset oliot ja niiden yhteydet näyttävät. Oliokaavioita käytetään myös osana yhteistyökaavioita, joissa näytetään tietyn olioryhmän välisiä yhteistyöviestejä. Tilakaavio - Tilakaaviota (state diagram) käytetään yleensä täydentämään luokan kuvausta. - Kaavio näyttää kaikki mahdolliset tilat, joihin luokan ilmentymät eli oliot voivat joutua, ja mitkä tapahtumat aiheuttavat tilasiirtymiä. - Tilakaavioita ei piirretä kaikille luokille, vaan vain niille, joilla on useita selkeästi erottuvia tiloja ja joiden käyttäytyminen muuttuu tilasta toiseen. Tilakaavioita voidaan piirtää myös koko järjestelmälle. Viestiyhteyskaavio - Viestiyhteyskaavio (sequence diagram) kuvaa dynaamista yhteistyötä joidenkin olioiden välillä. - Kaavion tehtävä on näyttää viestiyhteys eli sarja viestejä näiden olioiden kesken. Se esittää myös olioiden välistä yhteistyötä, eli kuvaa, mitä järjestelmässä tapahtuu tietyssä tilanteessa. Kaavio koostuu olioista, joille UML yleistä 6
piirretään pystysuorat viivat alaspäin. Aika kuluu kaaviossa alaspäin ja kaavio näyttää viestien kulun oliolta toiselle ajan kuluessa. Viestit piirretään nuolina pystysuorien olioviivojen välillä. Aikamääreet ja muut selitteet lisätään kaavion marginaaliin. Yhteistyökaavio - Yhteistyökaavio (collaboration diogram) kuvaa dynaamista yhteistyötilannetta, kuten viestiyhteyskaaviokin. - Viestien vaihdon (interaction) lisäksi yhteistyökaavio näyttää oliot ja niiden suhteet toisiinsa (context). - Valinta yhteistyö- ja viestiyhteyskaavion välillä voidaan tehdä seuraavin perustein: jos ajan kuluminen tai viestisarja on tärkeä piirre, käytä viestiyhteyskaaviota; jos tärkeä ominaisuus on olioiden suhteet toisiinsa, käytä yhteistyökaaviota. - Yhteistyökaaviossa voi olla myös aktiivisia olioita (active objects), jotka suorittavat jotakin tehtävää samanaikaisesti muiden aktiivisten olioiden kanssa. Toimintokaavio - Toimintokaavio (activity diagram) näyttää tapahtumien kulun aikajärjestyksessä. Komponenttikaavio UML yleistä 7
- Komponenttikaavio (component diogram) näyttää lähdekoodin fyysisen rakenteen koodikomponentteina (code components). - Komponenttien väliset riippuvuussuhteet näytetään, jolloin on helppo nähdä, mihin komponenttiin jokin tehty muutos voi vaikuttaa. Komponentit voidaan näyttää myös niiden paljastamien rajapintojen, kuten OLE/COMin, kanssa ja ne voidaan ryhmitellä paketteihin (packages). Käyttöönottokaavio - Käyttöönottokaavio (deployment diagram) näyttää järjestelmän laitteiston ja ohjelmiston fyysisen arkkitehtuurin. - Kaaviossa näytetään tietokoneet ja muut laitteet eli yhteisesti solmut (nodes) ja niiden väliset yhteydet tyyppeineen. Solmujen sisällä näytetään, mitä komponentteja minkäkin solmun sisällä on käytössä. Myös komponenttien väliset riippuvuudet voidaan näyttää. - Kuvataan järjestelmän fyysisen rakenteen. UML yleistä 8
UML yleistä 9