UML - unified modeling language Lähtökohtana: Booch, Rumbaugh, Jacobsson Tavoitteena Unified Method - syntyykö? Kehittäjänä: Rational Inc. Standardointi: Object Management Group (OMG) - vaiheessa Lähteet: Eriksson H-E, Penker M: UML Toolkit, Wiley Computer Publishing, 1997. www.ratiomal.com/uml/ Tuloksena saatu kokoelma graafisia kieliä kuvausten esittämiseen. 1 UML - unified modeling language käyttötapausmalli (use case model) luokkakaavio - (class diagram) eri tarkkuustasoilla - sopivuus määrittelyyn ja suunnitteluun oliokaavio (object diagram) tilakaavio (state diagram) yhteistyökaaviot (oliotasoinen, luokkatasoinen) (sequence diagram, collaboration diagram) toimintavuo (activity diagram) komponenttikaavio (component diagram) sijoittelukaavio (deployment diagram) 2 Harri Laine 1
tiivis LUOKKA lavea LUOKKA attribuutit operaatiot 3 Attribuutista voidaan kertoa joko pelkästään nimi, tai nimi: arvojoukko -pari Kumpaankin ylläolevista voidaan liittää erityinen luonnehdinta {kaarisuluissa}. Tekniikka ei kiinnitä luonnehdinnan sisältöä. Tekniikan soveltaja sensijaan voi ne kiinnittää, esim yritystasolla. Esimerkiksi Informaatiojärjestelmien kurssilla on sovittu, että täsmennys: {id} tarkoittaa, että kyseessä on ulkoiseen tunnistukseen käytettävä attribuutti, ja {+id} tarkoittaa, että kyseessä on kokoonpanon sisäisesti oliot tunnistava attribuutti Attribuutteihin voidaan myös liittää näkysyysinformaatiota (visibility), mutta sillä ei ole merkitystä määrittelytasolla. 4 Harri Laine 2
Palveluista kuvataan vähintään nimi lisäksi voidaan esitellä parametrit ja näkyvyys Yhteydet kuvataan luokkia yhdistävinä viivoina Mahdollisuus kuvata eri tyyppisiä yhteyksiä yleinen yhteys (association) yleistys (generalization) kooste (aggregation) riippuvuus (dependency) 5 Yleinen yhteys mikä tahansa pysyväisluontoinen kytkentä olioiden välillä, ilmaistaan luokkatasolla auto omistaa Yleiselle yhteydelle pitää antaa kuvaava nimi. Nimeen voidaan liittää lukusuuntaa osoittava nuoli. 6 Harri Laine 3
Yhteyden voi nimetä erikseen kumpaankin suuntaan. kurssi on oppikirjana perustuu kirja 7 Yhteyksiin voidaan liittää rajoitteita (multiplicity). Näillä kuvataan sitä, miten moneen kumppaniin osapuoli (voi) kytkeytyä yhteyden kautta. Rajoite ilmaistaan kumppanin puoleisessa päässä yhteysviivaa (alaraja.. yläraja) - parina. on oppikirjana kurssi 0.. perustuu 0.. kirja kirja käytössä 0-n kurssilla kurssilla 0 - n kirjaa 8 Harri Laine 4
jos alaraja ja yläraja ovat samat riittää antaa arvo vain kerran arvo tarkoittaa kuitenkin samaa kuin 0.. on oppikirjana kurssi perustuu kirja kirja käytössä 0-n kurssilla kurssilla 0 - n kirjaa 9 Yleisiä yhteyksiä tarkastellaan yleensä kaksisuuntaisina. Jos kurssi on yhteydessä kirjaan niin silloin on olemassa käänteisyhteys kirjasta kurssiin. UML-tekniikka mahdollistaa myös yksisuuntaiset yhteydet. asiakas käyttää palvelin Yksisuuntainen yhteys: Asiakas tuntee palvelimia, mutta palvelin ei tunne asiakkaita. 10 Harri Laine 5
Rajoittuma (qualified association) Osallistumisrajoitetta ei tarkastellakaan luokan koko ilmentymäjoukon suhteen vaan tarkastelu rajoitetaan niihin kumppaneihin, joilla nimetyn attribuutin arvo on sama kurssi ryhmä_nro 1 0..1 harjoitusryhmä ryhmä_nro olisi muuten, mutta rajoittuneena amanumeroisiin ryhmiin 0..1, eli kurssilla enintään yksi samannumeroinen ryhmä 11 yhteydet voivat olla myös monenvälisiä, joskin yleensä tullaan toimeen kahdenvälisillä (binäärisillä, binary) kurssi opettaja oppimateriaali oppikirja kurssin oppimateriaali on opettajakohtaista 12 Harri Laine 6
UML:ssä yhteyksiin voi liittää attribuutteja auto osuus omistus osuus kuvaa omistusyhteyttä 13 Koostumis-yhteys Koostumis-yhteys on erikoistapaus yleisestä yhteydestä = kokonaisuuden ja osan välinen yhteys. Tarjolla ovat 'löyhä kooste' ja 'kiinteä kooste' merkinnät. Kiinteä kooste on tiukempi rajoite, se pitää sisällään olemassaoloriippuvuuden - osa on riippuvainen kokonaisuudesta joukkue 0..1 pelaa pelaaja löyhä kooste joukkueen olemassaolon lakkaaminen ei tuhoa pelaajia tarvitaanko löyhää koostetta? 14 Harri Laine 7
rakennus 1 on osa huoneisto kiinteä kooste Kokoonpano, kiinteä kooste: Huoneisto kuuluu tasan yhteen rakennukseen ja on olemassaoloriippuva rakennuksesta eli rakennuksen hävittäminen hävittää myös siihen kuuluvat huoneistot. 15 kokoonpano voidaan kuvata myös vaihtoehtoisella tavalla rakennus huoneisto 16 Harri Laine 8
Yleistys (generalization) kuvaa yli ja aliluokan välisen suhteen ei kuvaa olioiden välistä kytkentää kuten yhteydet vaan luokitusjärjestelmässä vallitsevia riippuvuuksia aliluokka yliluokka johtaja 17 Luokalla voi olla useita aliluokkia, niiden suhtautumista toisiinsa voidaan kuvata säännöillä (constraints): overlaps aliluokilla on yhteisiä ilmentymiä (HUOM: useimmat olioohjelmointikielet eivät hyväksy tällaista alimman tason luokille) disjoint aliluokilla ei ole yhteisiä ilmentymiä complete aliluokat peittävät yliluokan 18 Harri Laine 9
overlaps nainen johtaja 19 disjoint, complete nainen mies 20 Harri Laine 10
incomplete sihteeri johtaja alilúokat eivät peitä yliluokkaa 21 nimike yliluokka jakautuu aliluokkiin jollakin kriteerillä sihteeri johtaja voidaan määritellä myös jako, esim. attribuutin perusteella kuten yllä 22 Harri Laine 11
Riippuvuuksina voidaan mallintaa muita luokkien välisiä suhteita kuin aliluokka - yliluokka suhdetta. kulkuvälinetyyppi <<instance of>> auto tässä kuvataan sitä, että luokka auto on metaluokan kulkuvälinetyyppi ilmentymä (muita ilmentymiä voisivat olla laiva, lentokone) <<instance of>> on ns. lajimääre (stereotype). Nämä voidaan kiinnittää sovellettaessa kuvauskieltä. 23 Lajimäärettä voisi käyttää vaikka jaottelemaan luokkia erilaisiin kategorioihin, esim Jacobssonin oliomallissa on kolmenlaisia luokkia: liittymäluokkia, (interface), tietoluokkia (entity) ja kontrolliluokkia (control) <<interface>> lomake <<entity>> asiakas <<control>> tilaaminen 24 Harri Laine 12