Lataa esitys
Esittely latautuu. Ole hyvä ja odota
JulkaistuAntti Karvonen Muutettu yli 9 vuotta sitten
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
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.