Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

UML-notaatio staattinen ja dynaaminen mallintaminen

Samankaltaiset esitykset


Esitys aiheesta: "UML-notaatio staattinen ja dynaaminen mallintaminen"— Esityksen transkriptio:

1 UML-notaatio staattinen ja dynaaminen mallintaminen
Kalvot: Olioperustainen ohjelmistokehitys Tampereen yliopisto, syksy 2000 Roope Raisamo

2 Mallinnusmenetelmistä
Vaatimusmäärittelyä pitäisi nyt hyödyntää olioanalyysissa ja –suunnittelussa. Sitä varten onkin syytä vähän tutkailla, että mitä mokomien analyysien ja suunnitelmien pitäisi olla. Alamme esittelemällä UML-kielen, jota voi käyttää oliomallien rakentamiseen analyysissä ja suunnittelussa.

3 Mallinnusmenetelmistä
Muista: menetelmiä käytettävä soveltaen ja harkiten Tällä kurssilla tarkastellaan olioanalyysiä ja suunnittelua sitoutumatta tiettyyn menetelmään

4 Mallinnusmenetelmistä
Kurssilla esitettävään yksinkertaistettuun menetelmään ovat vaikuttaneet lähinnä: Rumbaugh et al.: OMT (Object Modeling Technique) Nokia/Jaaksi: OMT++ Jacobson: OOSE (Object-Oriented Software Engineering) Booch, Rumbaugh, Jacobson: Unified Modeling Language (UML) Nykyisin OMG:n (Object Management Group) kehittämä standardoitu mallinnuskieli

5 UML:n kaaviotyypit Korkean tason toiminnalisuus Ohjelmisto- kehitys
Rakenne Käyttö- tapauskaaviot Käyttäytyminen Esimerkkejä Oliokaaviot Sekvenssi- kaaviot Yhteistyö- kaaviot Sijoittelu- kaaviot Luokka- kaaviot Tilakaaviot Aktiviteetti- kaaviot Komponentti- kaaviot

6 UML:n kaaviotyypit Korkean tason toiminnallisuus
käyttötapauskaaviot Järjestelmän staattinen ja dynaaminen rakenne oliokaaviot luokkakaaviot sijoittelukaaviot komponenttikaaviot

7 UML:n kaaviotyypit Järjestelmän dynaaminen käyttäytyminen
sekvenssikaaviot yhteistyökaaviot tilakaaviot aktiviteettikaaviot Kaikki kaaviotyypit esitellään seuraavassa käyttäen esimerkkinä autojen vuokrausjärjestelmää

8 UML:n kaavioiden peruselementtejä ja -suhteita
Kaaviot koostuvat peruselementeistä ja niiden välisistä suhteista. Elementit ovat geometrisia kuvioita. Elementeillä usein myös sisäinen rakenne (esimerkiksi luokan attribuutit ja operaatiot) Suhteet ovat elementtejä yhdistäviä viivoja. Suhteisiin voidaan liittää tarkempaa informaatiota (assosiaation nimi, kertautuminen, roolit) UML:n graafinen ulkoasu ei ole tarkasti määrätty.

9 UML:n kaavioiden peruselementtejä ja -suhteita
Elementit Suhteet Nimi Luokka Riippuvuus * 0..1 Assosiaatio rooli Tila Nimi Kooste Pakkaus Nimi Yleistys (Periytyminen) Kommentti Teksti Toteutus jne. jne.

10 Käyttötapauskaavio Käyttötapaus (use case) on kuvaus järjestelmän ja sen käyttäjien välisestä vuorovaikutuksesta tietyn, käyttäjän kannalta mielekkään tuloksen aikaansaamiseksi. Kuvaus annetaan usein tavallisena tekstinä, joka tarkennetaan sekvenssikaavioiksi Esimerkkejä käyttötapauksista: luottotarkistus, lainahakemus, valmistelu

11 Käyttötapauskaavio Käyttötapauskaavio (use case diagram) kuvaa järjestelmän käyttötapausten väliset suhteet ja käyttötapauksiin osallistuvat järjestelmän ulkopuoliset toimijat. käytetään järjestelmän käyttöyhteyden ja vaatimusten korkean tason kuvaukseen jos käyttötapaus sisältyy toiseen, laajemmasta piirretään katkonuoli sisältyvään käyttötapaukseen päin

12 Käyttötapauskaavio Ajoneuvojen vuokrausjärjestelmä Varaus Käyttöönotto
Palautus Asiakas <<include>> Virkailija Huolto

13 Käyttötapauskaavio

14 Luokkakaavio Luokkakaavio (class diagram, static structure diagram) kuvaa järjestelmään kuuluvia luokkia ja niiden välisiä suhteita. luokkakaaviota käytetään järjestelmän staattisen rakenteen kuvaukseen

15 Luokkakaavio Ohjain Kohde Varasto KohdeHallinto HenkilöAuto ParkkiAlue
1 Kohde 1 Varasto palauta() varaa() otaKäyttöön() hallinnoi KohdeHallinto * 1 palautaKohde(Kohde, Varasto) varaaKohde(Kohde) otaKäyttöönKohde(Kohde) HenkilöAuto ParkkiAlue rekisterinumero Talleta huolto- informaatio (palauta kutsuu) huolla(int km) palauta()

16 Oliokaavio Oliokaavio (object diagram) kuvaa olioita ja niiden välisiä suhteita. luokkakaavion mahdollinen ajoaikainen ilmenemismuoto oliokaavio antaa esimerkin järjestelmän dynaamisesta rakenteesta tietyllä hetkellä

17 Oliokaavio : KohdeHallinto auto1: HenkilöAuto auto2 : HenkilöAuto
luokan ilmentymä: alleviivattu auto1: HenkilöAuto rekisterinumero = XYZ-999 auto2 : HenkilöAuto rekisterinumero = ABC-123

18 Oliokaavio Tyyppejä UML:ssä: Näiden ilmentymien nimet alleviivataan.
luokat rajapinnat tietotyypit komponentit prosessointiyksiköt Näiden ilmentymien nimet alleviivataan.

19 Sekvenssikaavio Sekvenssikaavio (sequence diagram) koostuu tiettyyn vuorovaikutukseen liittyvistä olioista ja niiden välisistä sanomista (message). sekvenssikaaviota käytetään kuvaamaan oliojoukon välistä vuorovaikutusta tietyssä tilanteessa aika kulkee ylhäältä alas vuorovaikutustapahtumat ovat vaakasuuntaisia nuolia osallistujat kuvataan pystyviivoina kuvaa usein olioiden vuorovaikutuksen tietyn käyttötapauksen yhteydessä

20 Sekvenssikaavio: Palautus
alijärjestelmä UI : KohdeHallinto auto: HenkilöAuto parkki: ParkkiAlue palauta(auto, parkki) palauta() varastoi(auto)

21 Yhteistyökaavio Yhteistyökaavio (collaboration diagram) kuvaa olioiden välistä vuorovaikutusta. aikaa ei edusta mikään tietty suunta olioiden yhteydet kuvataan symbolien välisinä viivoina sijoittelua voidaan käyttää ilmaisemaan loogisesti yhteen kuuluvia olioita kontrollin kulun suunta voidaan ilmaista nuolella sanomien ajallinen järjestys voidaan antaa sanomiin liitettyinä numeroina monitasoinen numerointi: sisäkkäiset operaatiokutsut

22 Yhteistyökaavio auto: Henkilöauto : KohdeHallinto parkki: ParkkiAlue
vastaa edellistä sekvenssikaaviota 1.1: palauta() auto: Henkilöauto : KohdeHallinto 1: palauta(auto,parkki) parkki: ParkkiAlue 1.2: varastoi(auto) UI

23 Vuorovaikutuskaaviot
Sekvenssikaaviot ja yhteistyökaaviot kuvaavat molemmat olioiden välistä vuorovaikutusta. Sikso niitä kutsutaan yhteisesti vuorovaikutuskaavioiksi.

24 Tilakaavio Tilakaavio (statechart diagram) kuvaa tietyn luokan ilmentymien reagoimisen ulkoisiin tapahtumiin (message). käytetään tyypillisesti aktiivisten olioiden ajoaikaisen käyttäytymisen spesifiointiin voidaan antaa tarvittaessa myös muille olioille, joiden käyttäytyminen voidaan ymmärtää tilojen vaihtumisena koostuu tiloista (attribuuttien arvojen yhdistelmä tietyllä hetkellä) ja niiden välisistä siirtymistä tilat pyöristettyjä suorakaiteita, siirtymät nuolia luokan ilmentymä on aina jossakin luokan tiloista voi sisältää alku- ja lopputilan

25 Tilakaavio Käytettävissä Käytössä Huollossa Varattu alkutila palauta/
lopeta ajan lasku Käytettävissä Käytössä otaKäyttöön/ aloita ajan lasku valmis huolla Huollossa Varattu exit/huoltoilmoitus varaa

26 Aktiviteettikaavio Aktiviteettikaavio (activity diagram) kuvaa tietyn tehtävän sisäisen logiikan muodollisesti tilakaavion erikoistapaus esimerkiksi yksittäinen operaatio jokin korkeamman tason tehtävä (yksi tai useampi käyttötapaus), johon osallistuu useita suorittajia kaavio voidaan jakaa sarakkeisiin, jotka vastaavat kutakin suorittajaa koostuu toimenpidetiloista (sivureunat täysin pyöristettyjä, ei nimiä) sekä niitä yhdistävistä ilman tapahtumaa olevista siirtymistä

27 Aktiviteettikaavio kaavioon voidaan liittää päätössymboleja (vinoneliö) kuvaamaan kontrollin haarautumista jonkin ehdon perusteella kaaviolla voidaan myös kuvata rinnakkaisten suoritussäikeiden haarautumista ja yhdistymistä kaavioon voidaan lisätä tietoalkioita (toiminnan kohteita) olioina muistuttaa täydellisessä muodossaan läheisesti muissa kuvausmenetelmissä käytettyjä tietovuokaaviota (data flow diagram) tietovuokaaviot eivät sinänsä kuulu UML:ään

28 Aktiviteettikaavio Asiakas Virkailija Tee varaus Pyydä auto :Lasku
[avoin] Tee lasku Valmistele auto Maksa :Lasku [maks] Rekisteröi vuokraus Ota auto

29 Aktiviteettikaavio Asiakas Virkailija Tee varaus Pyydä auto :Lasku
alkutila Asiakas Virkailija Tee varaus Pyydä auto säikeiden haarautu- minen (fork) :Lasku [avoin] Tee lasku säikeiden yhdisty- minen (join) Valmistele auto Maksa :Lasku [maks] Rekisteröi vuokraus Ota auto lopputila

30 Komponenttikaavio Komponenttikaavio (component diagram) kuvaa komponentit ja niiden väliset suhteet Komponentti (UML:kaavioissa) voi olla: lähdekielinen tai binäärimuotoinen rajapinnan toteuttava ohjelmayksikkö, mutta myös esimerkiksi datatiedosto, ohjelmatiedosto (mm. exe tai dll), html-sivu, dokumentti, kirjasto tai jokin muu osa.

31 Komponenttikaavio yleisesti UML:n komponentti on lähes mikä tahansa ohjelmistojärjestelmästä selkeästi erotettavissa ja korvattavissa oleva osa (”fyysinen”, ei vain käsitteellinen) voidaan käsitellä kaavioissa luokan tavoin (assosiaatiot, yleistyssuhteet, attribuutit, ...)

32 Komponenttikaavio GUI Auton- Vuokraus VuokrausToiminta Tietokanta-
toteuttaa GUI Auton- Vuokraus Tietokanta- liittymä KohdeKanta VuokrausToiminta käyttää

33 Sijoittelukaavio Sijoittelukaavio (deployment diagram) kuvaa prosessointia suorittavat laiteyksiköt, niiden yhteydet ja ohjelmistojen osien sijoittumisen niihin. tarvitaan vain silloin kun järjestelmään liittyy useita laiteyksiköitä prosessointiyksiköt (node) esitetään kuutioina ja niiden väliset suhteet assosiaatioina prosessointiyksiköille voidaan antaa luokkien tapaan yleistyssuhteita, niillä voi olla attribuutteja ja ilmentymiä ja ne voivat olla osallistujina vuorovaikutuskaavioissa

34 Sijoittelukaavio asiakaspiste: Asiakas ajoneuvorekisteri: Palvelin
Huomaa: prosessointiyksikön ilmentymä = tietty laite, ei laitetyyppi asiakaspiste: Asiakas ajoneuvorekisteri: Palvelin : XTietokanta- liittymä : GUI <<TCP/IP>> : Auton- Vuokraus : XTietokanta komponentin ilmentymä olio

35 Kaavioille yhteisiä piirteitä
Pakkaukset Laajennosmekanismit, joilla voidaan määritellä lisäominaisuuksia UML:n perusosille stereotyypit (stereotype) lisätietomääreet (tagged value) rajoitteet (constraint)

36 Pakkaukset Pakkaus (package) on UML:n yleinen ryhmittely- ja kokoamisväline, jota voidaan käyttää kaikissa kaaviotyypeissä. piirretään suorakaiteena, jonka ylälaidassa on nimiuloke voi kuvata loogisen kokonaisuuden, alijärjestelmän, konfiguraation, ... hakemiston vastine, voi sisältää myös toisia pakkauksia pakkaus edustaa nimiavaruutta pakkauksen elementtien näkyvyys ulospäin voidaan kuvata Java-kielen tavoin

37 Pakkauksen käyttö Ohjain Kohteet Tuki Kohde Varasto KohdeHallinto
1 Kohde 1 Varasto palauta() varaa() otaKäyttöön() hallinnoi KohdeHallinto * 1 palautaKohde(Kohde, Varasto) varaaKohde(Kohde) otaKäyttöönKohde(Kohde) HenkilöAuto ParkkiAlue rekisterinumero huolla(int km) palauta()

38 Pakkaukset suljetussa muodossa
Tuki Tietokanta <<import>>

39 Stereotyypit Stereotyypillä varustetulla perusosalla on oma laajennettu merkitys täysin epäformaali tai esimerkiksi rajoitteilla määritelty stereotyypille voidaan antaa oma kuvake, joka esiintyy perusosan symbolin yhteydessä tai korvaa sen hyödyllisiä hyvin yleisten UML-symbolien kohdalla: varsinkin komponentit ja prosessointiyksiköt mekanismi sovelluskohtaisten notaatioiden tekemiseen

40 Stereotyypillä varustettu luokka
<<exception>> Overflow

41 Lisätietomääreet Lisätietomääre on UML:n perusosaan liitettävä määre, joka koostuu nimestä ja arvosta. määreen avulla mallin tiettyyn osaan voidaan liittää mielivaltaista käyttäjän haluamaa informaatiota ei muuta mallin merkitystä, vaan liittyy enemmän mallin hallintaan ja prosessointiin

42 Lisätietomääreitä luokkaan liitettyinä
MyClass {version = 1.2 author = KK}

43 Rajoitteet Rajoitteet antavat mahdollisuuden määritellä lisävaatimuksia, jotka mallin toteuttavan järjestelmän tulee täyttää. kirjoitetaan aaltosulkujen sisään voi olla joko nimetty standardirajoite, OCL-kielellä kirjoitettu ilmaus tai täysin epäformaali tekstinä annettu ehto OCL on UML-määrittelyyn sisältyvä formaali rajoitekieli, jolla voidaan antaa merkitykseltään täsmällisiä, analysointi- ja suorituskelpoisia kuvauksia

44 Rajoitteita OCL-rajoite Yritys Henkilö Ministeriö sukupuoli omistaa *
vaimo aviomies 0..1 sukupuoli {(self.aviomies->size=1 implies self.aviomies.sukupuoli = mies) and (self.vaimo->size=1 implies self.vaimo.sukupuoli = nainen) and not(self.vaimo->size=1 and self.aviomies->size=1)} {xor} Ministeriö Yritys johtaa omistaa * 1 OCL-rajoite


Lataa ppt "UML-notaatio staattinen ja dynaaminen mallintaminen"

Samankaltaiset esitykset


Iklan oleh Google