Luokkakaavio

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 9. syyskuuta 2018 tarkistetusta versiosta . tarkastukset vaativat 28 muokkausta .

Luokkakaavio ( eng.  class diagram ) - UML - mallinnuskielen rakennekaavio, joka havainnollistaa järjestelmän luokkahierarkian yleistä rakennetta , niiden yhteistoimintaa, attribuutteja (kenttiä), menetelmiä , rajapintoja ja niiden välisiä suhteita (relaatioita). Sitä käytetään laajalti paitsi dokumentoinnissa ja visualisoinnissa, myös suunnittelussa eteenpäin tai käänteisellä suunnittelulla [1] .

Johdanto

Luokkakaavion luomisen tarkoitus on graafinen esitys järjestelmän deklaratiivisten elementtien (luokat, tyypit jne.) staattisesta rakenteesta. Se sisältää myös joitain käyttäytymiselementtejä (esim. operaatioita), mutta niiden dynamiikkaa tulisi heijastaa muun tyyppisissä kaavioissa ( viestintäkaaviot , tilakaaviot). Havainnon helpottamiseksi luokkakaaviota voidaan täydentää myös pakettien esityksellä , mukaan lukien sisäkkäiset [2] .

Edustaessaan kokonaisuuksia todellisessa maailmassa, kehittäjän on heijastettava niiden nykyistä tilaa, käyttäytymistä ja keskinäisiä suhteitaan. Jokaisessa vaiheessa abstraktio tehdään merkityksettömistä yksityiskohdista ja käsitteistä, jotka eivät sovellu todellisuuteen (suorituskyky, kapselointi , näkyvyys jne.). Luokkia voi tarkastella eri tasojen näkökulmasta. Yleensä ne erotetaan kolmella päätasolla: analyyttinen taso, suunnittelutaso ja toteutustaso [3] :

Kaavioelementit

Luokkakaavio on oliomallinnuksen avainelementti. Kaaviossa luokat on esitetty laatikoissa, joissa on kolme komponenttia:

UML tarjoaa mekanismeja luokan jäsenten, kuten attribuuttien ja menetelmien, esittämiseen sekä lisätietoja niistä.

Näkyvyys

Luokan jäsenten (eli attribuuttien tai menetelmien) näkyvyyden määrittämiseksi nämä symbolit on sijoitettava jäsenen nimen eteen: [4]

+ Julkinen
- Yksityinen (yksityinen)
# Suojattu
/ Johdettu (voidaan yhdistää muihin)
~ Paketti

Laajuus

UML määrittelee jäsenille kahdentyyppisiä laajuuksia: ilmentymä ja luokitin , joista jälkimmäisessä on alleviivatut nimet . [5]

Nimi on alleviivattu osoittamaan luokittelijan jäsenyyttä , muuten laajuuden oletetaan olevan oletusalue.

Suhteet

Suhde on erityinen looginen suhde entiteettien välillä, joka näkyy luokka- ja objektikaavioissa . UML:llä on seuraavanlaisia ​​suhteita:

Luokkaobjektien väliset suhteet

Riippuvuus

Riippuvuus tarkoittaa luokkien välistä suhdetta, jossa muutos toimittajaluokan määrittelyssä voi vaikuttaa riippuvan luokan toimintaan, mutta ei päinvastoin.

Yhdistys

Assosiaatio osoittaa, että yhden entiteetin (luokan) objektit liittyvät toisen entiteetin objekteihin siten, että voit siirtyä luokan objekteista toiseen. Se on yleinen tapaus koostumuksesta ja yhdistämisestä.

Esimerkiksi luokalla Henkilö ja luokalla Koulu on yhdistys, koska henkilö voi opiskella koulussa. Yhdistykselle voidaan antaa nimi "studies in".

Kaksoisassosiaatioita edustaa viiva ilman nuolia päissä, joka yhdistää kaksi luokkalohkoa. Korkeamman asteen assosiaatioilla on enemmän kuin kaksi päätä ja niitä edustavat viivat, joiden toinen pää menee luokkalohkoon ja toinen yhteiseen timanttiin. Yksisuuntaisessa assosiaationäkymässä nuoli on lisätty osoittamaan yhdistämisen suunnan.

Assosiaatio voidaan nimetä, ja roolit, sidossuhteet, indikaattorit, kertoimet, näkyvyys tai muut ominaisuudet voidaan merkitä sitä edustavan rivin päihin.

Aggregaatio

Aggregaatio  on eräänlainen assosiaatio kokonaisuuden ja sen osien välisessä suhteessa. Assosiaatiotyyppinä voidaan nimetä aggregaatio. Yksi aggregaatiorelaatio voi sisältää enintään kaksi luokkaa (säilö ja sisältö).

Aggregaatio tapahtuu, kun yksi luokka on muiden kokoelma tai säiliö. Ja oletusarvoisesti yhdistämistä kutsutaan aggregaatioksi viittauksella , eli kun sisältyvien luokkien elinikä ei riipu sisältävän luokan eliniästä. Jos säiliö tuhoutuu, sen sisältö ei ole.

Graafisesti aggregaatiota edustaa tyhjä timantti luokkalaatikossa ja viiva siitä timantista sisältävään luokkaan.

Koostumus

Koostumus  on tiukempi versio yhdistämisestä. Tunnetaan myös arvon mukaan yhdistämisenä.

Koostumuksella on kova riippuvuus säilön luokkaesiintymien ja sisältämien luokkaesiintymien eliniästä. Jos säiliö tuhoutuu, myös kaikki sen sisältö tuhoutuu.

Graafisesti esitetty koosteena, mutta täytetyllä timantilla.

Koostumuksen ja aggregoinnin erot

Otetaan havainnollistava esimerkki. Huone on osa asuntoa, joten sommittelu sopii tähän, koska huone ei voi olla olemassa ilman asuntoa. Ja esimerkiksi huonekalut eivät ole olennainen osa asuntoa, mutta samalla asunnossa on huonekaluja, joten yhdistämistä tulisi käyttää.

Luokkasuhteet

Yleistäminen (perinnöllinen)

Yleistys osoittaa, että toinen kahdesta toisiinsa liittyvästä luokasta ( alatyyppi ) on toisen ( supertyypin ) erikoismuoto, jota kutsutaan ensimmäisen yleistyksenä . Käytännössä tämä tarkoittaa, että mikä tahansa alatyypin esiintymä on myös supertyypin esiintymä. Esimerkiksi: eläimet ovat nisäkkäiden supertyyppiä, jotka puolestaan ​​ovat kädellisten supertyyppiä ja niin edelleen. Tämä suhde on helpoimmin kuvattu lauseella "A on B" (kädelliset ovat nisäkkäitä, nisäkkäät ovat eläimiä).//

Graafisesti yleistystä edustaa viiva, jonka supertyypissä on tyhjä kolmio.

Yleistäminen tunnetaan myös perinnönä tai " on " suhde (tai "on" suhde).

Toteutus

Toteutus on mallin kahden elementin välinen suhde, jossa yksi elementti ( asiakas ) toteuttaa toisen ( toimittaja ) määrittämän käyttäytymisen. Toteaminen on kokonaisvaltainen suhde. Graafisesti toteutus esitetään samalla tavalla kuin perintö, mutta katkoviivalla.

Palveluntarjoaja on yleensä abstrakti luokka tai rajapintaluokka.

Yleinen suhde

Riippuvuus

Riippuvuus on heikko käyttösuhteen muoto, jossa muutos yhden määrittelyssä aiheuttaa muutoksen toisen määrittelyssä ilman, että se välttämättä peruuntuu. Esiintyy, kun objekti esiintyy esimerkiksi parametrin tai paikallisen muuttujan muodossa.

Graafisesti esitetty katkoviivalla nuolella, joka kulkee riippuvaisesta elementistä siihen, josta se riippuu.

Nimettyjä muunnelmia on useita.

Riippuvuus voi olla ilmentymien, luokkien välillä tai ilmentymän ja luokan välillä.

Suhteen tarkennukset

Tarkennus liittyy yksityiskohtien tasoon. Yksi paketti tarkentaa toista, jos se sisältää samat elementit, mutta yksityiskohtaisemmassa esityksessä. Kun esimerkiksi kirjoitat kirjaa, aloitat todennäköisesti muotoilemalla lauseen, joka tiivistää lyhyesti kunkin luvun sisällöstä. Oletetaan, että kunkin luvun tiivistelmä sisältyy "Ehdotus"-pakettiin erillisenä elementtinä. Oletetaan myös, että "Completed Book" on paketti, jonka elementit ovat valmiita lukuja. Tässä yhteydessä "Valmis kirja" -paketti on jalostus "Tarjous" -paketista.

Suhteiden voima (moninkertaisuus)

Suhteen kardinaalisuus (kertoja) tarkoittaa linkkien määrää jokaisen rivin alussa olevan luokkailmentymän (objektin) ja luokkainstanssin välillä sen lopussa. On olemassa seuraavat tyypilliset tapaukset:

merkintä selitys esimerkki
0...1 Nolla tai yksi tapaus Kissalla on omistaja.
yksi Yksi kopio vaaditaan kissalla on yksi äiti
0..* tai * Nolla tai useampi tapaus kissalla voi olla kissanpentuja tai ei
yksi..* Yksi tai useampi tapaus kissalla on ainakin yksi paikka, jossa se nukkuu

Katso myös

Muistiinpanot

  1. Booch, Rambeau, Jacobson, 2006 , luokkakaavio, s. 120.
  2. Butch, Jacobson, Rambo, 2006 , luokkakaavio (luokkakaavio), s. 226.
  3. Booch, Jacobson, Rambeau, 2006 , luokat, s. 68.
  4. UML-viitekortti, versio 2.1.2 , Holub Associates, elokuu 2007 , < http://www.holub.com/goodies/uml/ > . Haettu 12. maaliskuuta 2011. Arkistoitu 2. maaliskuuta 2010 Wayback Machinessa 
  5. OMG Unified Modeling Language (OMG UML) -päällysrakenne arkistoitu 13. maaliskuuta 2016 Wayback Machinessa , versio 2.3: toukokuu 2010. Haettu 23. syyskuuta 2010.

Lähteet

  • G. Booch, D. Rambo, I. Jacobson. UML kieli. Käyttöopas = Unified Modeling Language User's Guide. - 2. - M.  : DMK Press, 2006. - 496 s. — ISBN 5-94074-334-X .
  • G. Booch, A. Jacobson, D. Rambo,. UML. Classic CS = Unified Modeling Language Reference Manual. - 2. - Pietari.  : "Peter", 2006. - 736 s. — ISBN 5-469-00599-2 .

Linkit