UML - unified modeling language

Samankaltaiset tiedostot
Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

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

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

Olioperustaisuus (object oriented)

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

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

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

Ohjelmistotekniikan menetelmät, UML

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

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

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistotekniikan menetelmät

Ohjelmistotekniikan menetelmät

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

UML:n yleiskatsaus. UML:n osat:

Johdatus sovellussuunnitteluun, s2000, osa4 Helsingin yliopisto;/tktl. Harri Laine 1. Luokka- ja oliokaaviot. Luokka- ja oliokaaviot

Johdatus sovellussuunnitteluun, s2001, osa 4a Helsingin yliopisto / TKTL Harri Laine / Inkeri Verkamo 1. Luokka- ja oliokaaviot

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Ohjelmistojen mallintaminen. Luento 4,

Unified Modeling Language

UML Luokkakaavio 14:41

Sisällys. 19. Unified Modeling Language (UML) Johdanto. Johdanto. Johdanto. Luokkakaavio:

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Johdanto. Olio (Object) Luokka (Class) Olion kuvaaminen

Luokkakaavion laatiminen

UML -mallinnus LUOKKAKAAVIO EERO NOUSIAINEN

Johdatus sovellussuunnitteluun, s2000, osa5 Helsingin yliopisto;/tktl. Harri Laine 1. Luokkakaavion tarkoitus. Luokkakaavion tarkoitus

UML-kielen formalisointi Object-Z:lla

TIE = JOTU. VH5 - MagicDraw

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Kertaus: yleistys-erikoistus ja perintä

Ohjelmistotuotanto, s /3/2003

Ohjelmistojen mallintaminen

Kertausta: Olioperustainen ohjelmistokehitys

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

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

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

Luokka- ja oliokaaviot

Ohjelmistojen mallintaminen luokkamallin laatiminen

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

Kaaviotekniikoista (erityisesti UML) (ajan riittäessä pikkasen projekteista)

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

19. Unified Modeling Language (UML)

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 ER-mallin peruskäsitteet.

Paikkatiedon mallinnus Dokumentoinnin ymmärtäminen. Lassi Lehto

Luokkamalli LUOKKAKAAVIO. Tämän osan sisältö. Luokkamalli. Luokka ja olio. Luokkakaavio (class diagram)

Ohjelmistotekniikan menetelmät, mallintaminen ja UML

Johdatus sovellussuunnitteluun, s 2001, osa 4b Helsingin yliopisto / TKTL Harri Laine / Inkeri Verkamo 1. Luokkakaavion tarkoitus

CS-A1150 Tietokannat CS-A1150 Tietokannat / 35

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

UML-kaaviot. Jouni Kylä-Nikkilä

UML- mallinnus: Tilakaavio

Ohjelmistojen mallintaminen, kesä 2010

Mitä on periytyminen?

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

Luokka (class) esitetään suorakulmion avulla, jonka sisälle kirjoitetaan luokan nimi (vahvennettuna).

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Eija Järvelä Elina Puusaari. käsikirja

Ohjelmistojen mallintaminen luokkamallin laatiminen

UML-MALLINNUS MICROSOFT VISIOLLA JOUNI HUOTARI

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

JHS 162 Paikkatietojen mallintaminen tiedonsiirtoa varten Liite 1 UML-mallinnus

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

Ohjelmistotuotanto, s

Luento 3 Tietokannan tietosisällön suunnittelu

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

1. Tarkastellaan seuraavaa kaaviota

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

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

Ohjelmistojen mallintaminen, kesä 2009

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä

Mallinnus UML-yleiskatsaus

VH5, JOTU, MagicDraw:n käyttö

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

Analyysi on tulkkaamista

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistotekniikan menetelmät, kevät 2008

Luokka- ja oliokaaviot

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

2. Olio-ohjelmoinnin perusteita 2.1

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

Kaaviotekniikoista (erityisesti UML)

SÄILYTETTÄVIEN TIETOJEN MÄÄRITYS LUOKKAMALLI

2. Olio-ohjelmoinnin perusteita 2.1

Ohjelmistojen mallintaminen. Luento 3, 9.11.

Kooste. Esim. Ympyrän keskipiste voidaan ajatella ympyrän osaksi.

2. Käsiteanalyysi ja relaatiomalli

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

HAAGA-HELIA Käyttötapaukset 1 Tietojenkäsittely Tietosysteemin määritys. Käyttötapaukset

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

UML OHJELMISTOPROSESSIEN TUKENA

UML - unified modeling language - use cases

UML-MALLINNUSKIELI JA SEN HYÖDYNTÄMINEN OHJELMISTOKEHITYKSESSÄ

Transkriptio:

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