Luokkakaavio - Class diagram
| UML -kaaviotyypit |
|---|
| Rakenteelliset UML -kaaviot |
| Käyttäytymiseen liittyvät UML -kaaviot |
Vuonna ohjelmistotuotanto , joka on luokkakaavio on Unified Modeling Language (UML) on eräänlainen staattinen rakenne kaavio, joka kuvaa järjestelmän rakennetta näyttämällä järjestelmän luokat , niiden ominaisuuksia, toimintoja (tai menetelmiä), ja keskinäiset suhteet esineitä.
Luokkakaavio on olio- mallinnuksen päärakenne . Sitä käytetään sovelluksen rakenteen yleiseen käsitteelliseen mallintamiseen ja yksityiskohtaiseen mallintamiseen, mallien kääntämiseen ohjelmointikoodiksi . Luokkakaavioita voidaan käyttää myös datamallinnukseen . Luokkakaavion luokat edustavat sekä sovelluksen pääelementtejä, vuorovaikutusta että ohjelmoitavia luokkia.
Kaaviossa luokat on esitetty laatikoilla, jotka sisältävät kolme osastoa:
- Yläosassa on luokan nimi. Se on lihavoitu ja keskitetty, ja ensimmäinen kirjain on iso.
- Keskimmäinen osasto sisältää luokan määritteet. Ne on tasattu vasemmalle ja ensimmäinen kirjain on pieni.
- Alempi osasto sisältää toiminnot, jotka luokka voi suorittaa. Ne ovat myös vasemmalle tasattuja ja ensimmäinen kirjain on pieni.
Järjestelmän suunnittelussa tunnistetaan useita luokkia ja ryhmitellään ne yhteen luokkakaavioon, joka auttaa määrittämään niiden väliset staattiset suhteet. Yksityiskohtaisessa mallinnuksessa konseptisuunnittelun luokat jaetaan usein alaluokkiin.
Järjestelmien käyttäytymisen kuvaamiseksi näitä luokkakaavioita voidaan täydentää tilakaavalla tai UML -tilakoneella .
Jäsenet
UML tarjoaa mekanismeja, joilla edustetaan luokan jäseniä, kuten määritteitä ja menetelmiä, ja lisätietoja heistä, kuten konstruktorit.
Näkyvyys
Jos haluat määrittää luokan jäsenen näkyvyyden (eli minkä tahansa määritteen tai menetelmän), nämä merkinnät on sijoitettava jäsenen nimen eteen:
+ |
Julkinen |
- |
Yksityinen |
# |
Suojattu |
~ |
Paketti |
Johdettu ominaisuus on ominaisuus, jonka arvo (tai arvot) on valmistettu tai lasketaan muita tietoja, esimerkiksi käyttämällä arvoja muita ominaisuuksia.
Johdettu ominaisuus näytetään sen nimen edessä vinoviivalla '/'.
Soveltamisala
UML säädetään kahdenlaisista laajuus jäsenille: esimerkiksi ja luokka , ja jälkimmäinen edustaa alleviivattuja nimiä .
-
Ilmentymän jäsenet määritetään tiettyyn esiintymään.
- Attribuuttien arvot voivat vaihdella esiintymien välillä
- Menetelmän kutsuminen voi vaikuttaa ilmentymän tilaan (eli muuttaa ilmentymän määritteitä)
-
Luokan jäsenet tunnetaan yleisesti "staattisiksi" monilla ohjelmointikielillä. Soveltamisala on luokka itse.
- Attribuuttiarvot ovat samat kaikissa tapauksissa
- Metodin kutsuminen ei vaikuta luokittelijan tilaan
Jos haluat osoittaa jäsenen luokittelualueen, sen nimi on alleviivattava. Muuten ilmentymän laajuus oletetaan oletuksena.
Ihmissuhteet
Suhde on yleinen termi, joka kattaa luokka- ja objektikaavioista löytyvät tietyntyyppiset loogiset yhteydet. UML määrittelee seuraavat suhteet:
Ilmentymän tason suhteet
Riippuvuus
Riippuvuus on semanttinen yhteys riippuvainen ja riippumaton malli elementtejä. Se on kahden elementin välissä, jos muutokset yhden elementin (palvelin tai kohde) määritelmään voivat aiheuttaa muutoksia toiseen (asiakas tai lähde). Tämä yhdistys on yksisuuntainen. Riippuvuus näytetään katkoviivana avoimella nuolella, joka osoittaa asiakkaalta toimittajalle.
Yhdistys
Yhdistys edustaa perheen linkkejä. Binaarinen yhdistys (kahdella päästä) on tavallisesti esitetty viivana. Yhdistys voi linkittää minkä tahansa määrän luokkia. Yhdistystä, jossa on kolme linkkiä, kutsutaan kolmiyhteydeksi. Yhdistykselle voidaan antaa nimi ja yhdistyksen päät voidaan koristaa roolien nimillä, omistusindikaattoreilla, moninaisuudella, näkyvyydellä ja muilla ominaisuuksilla.
On olemassa neljä erilaista assosiaatiotyyppiä: kaksisuuntainen, yksisuuntainen, aggregaatio (sisältää koostumuksen aggregaation) ja refleksiivinen. Kaksisuuntaiset ja yksisuuntaiset yhdistykset ovat yleisimpiä.
Esimerkiksi lentoluokka liittyy lentokoneeseen kaksisuuntaisesti. Assosiaatio edustaa kahden luokan objektien kesken jaettua staattista suhdetta.
Yhdistäminen
Yhdistäminen on muunnos "on" -suhdesuhteesta; aggregointi on tarkempaa kuin assosiaatio. Se on yhdistys, joka edustaa osaa tai osaa suhteesta. Kuten kuvassa näkyy, professorilla on "luokka" opetettavaksi. Yhdistystyypinä yhdistelmä voidaan nimetä ja sillä on samat koristeet kuin yhdistyksellä. Yhdistykseen ei kuitenkaan saa kuulua enempää kuin kaksi luokkaa; sen on oltava binaarinen yhdistys. Lisäksi aggregaatioiden ja yhdistysten välillä ei ole juurikaan eroa toteutuksen aikana, ja kaavio voi ohittaa aggregaatiosuhteet kokonaan.
Yhdistäminen voi tapahtua, kun luokka on muiden luokkien kokoelma tai säilö, mutta sisällytetyillä luokilla ei ole vahvaa riippuvuutta säilöstä elinkaaren aikana. Säiliön sisältö on edelleen olemassa, kun säiliö tuhotaan.
On UML , se on graafisesti kuin ontto timantti muoto on, joka sisältää luokan yhdellä linjalla, joka yhdistää sen sisältämien luokkaan. Aggregaatti on semanttisesti laajennettu objekti, jota käsitellään yksikönä monissa toiminnoissa, vaikka fyysisesti se koostuu useista pienemmistä esineistä.
Esimerkki: kirjasto ja opiskelijat. Tässä opiskelija voi olla olemassa ilman kirjastoa, opiskelijan ja kirjaston välinen suhde on aggregaatio.
Sävellys
Koostumussuhteen UML -esitys näyttää koostumuksen täytettynä timanttimuotona rivien sisältävän luokan päässä, joka yhdistää sisällytetyn luokan / luokat sisältävään luokkaan.
Erot koostumuksen ja aggregaation välillä
- Kokoonpanosuhde
- 1. Kun yritetään edustaa todellisia kokonaissuhteita, esim. Moottori on osa autoa.
- 2. Kun kontti tuhotaan, myös sen sisältö tuhoutuu, esim. Yliopisto ja sen laitokset.
- Aggregaatiosuhde
- 1. Kun edustetaan ohjelmisto- tai tietokantasuhdetta, esim. Automallimoottori ENG01 on osa automallia CM01, koska moottori ENG01 voi myös olla osa toista automallia.
- 2. Kun säiliö tuhotaan, sen sisältö ei yleensä tuhoudu, esim. Opettajalla on opiskelijoita; Kun professori kuolee, opiskelijat eivät kuole heidän kanssaan.
Täten aggregaatiosuhde on usein "luettelo" -eristys, jotta se erottuu koostumuksen "fyysisestä" eristämisestä.
Luokkatason suhteet
Yleistäminen/perintö
Se osoittaa, että toinen kahdesta liittyvien luokkaa (jäljempänä alaluokka ) pidetään erikoistunut muoto Other ( Super tyyppi ) ja yläluokkaan pidetään yleistäminen alaluokan. Käytännössä tämä tarkoittaa, että mikä tahansa alatyypin esiintymä on myös superluokan esiintymä. Esimerkinomainen puu yleistyksiä tämän muoto löydetään biologisista luokitus : ihmiset ovat alaluokka apinan , joka on alaluokka, nisäkkään ja niin edelleen. Suhde on helpoimmin ymmärrettävissä lauseella "A on B" (ihminen on nisäkäs, nisäkäs on eläin).
Yleistyksen UML -graafinen esitys on ontto kolmion muoto viivan (tai viivapuun) superluokan päässä, joka yhdistää sen yhteen tai useampaan alatyyppiin.
Yleistyssuhde tunnetaan myös nimellä perintö tai "on" suhde.
Yliluokka (emäs-luokka) yleistys suhde tunnetaan myös "emo" , yliluokka , emäksen luokka , tai emäksen tyyppi .
Alatyyppi on erikoistuminen suhde tunnetaan myös "lapsi" , alaluokka , johdettu luokka , johdettu tyyppi , perii luokka , tai perivät tyyppi .
Huomaa, että tämä suhde ei muistuta biologisen vanhemman ja lapsen suhdetta: näiden termien käyttö on erittäin yleistä, mutta voi olla harhaanjohtavaa.
- A on B -tyyppi
- Esimerkiksi "tammi on puulaji", "auto on ajoneuvotyyppi"
Yleistäminen voidaan näyttää vain luokkakaavioissa ja käyttötaulukkokaavioissa .
Toteutus/toteutus
UML -mallinnuksessa toteutussuhde on kahden mallielementin välinen suhde, jossa yksi mallielementti (asiakas) ymmärtää (toteuttaa tai suorittaa) toisen mallielementin (toimittaja) määrittämän käyttäytymisen.
Toteutuksen UML -graafinen esitys on ontto kolmion muoto katkoviivan (tai viivapuun) rajapinnan päässä, joka yhdistää sen yhteen tai useampaan toteuttajaan. Tavallista nuolenpäätä käytetään katkoviivan rajapinnassa, joka yhdistää sen käyttäjiin. Komponenttikaavioissa käytetään pallon ja pistorasian graafista käytäntöä (toteuttajat paljastavat pallon tai tikkari, kun taas käyttäjät näyttävät pistorasian). Toteutukset voidaan näyttää vain luokka- tai komponenttikaavioissa. Toteutus on luokkien, rajapintojen, komponenttien ja pakettien välinen suhde, joka yhdistää asiakaselementin toimittajaelementtiin. Luokkien/komponenttien ja rajapintojen välinen toteutussuhde osoittaa, että luokka/komponentti toteuttaa rajapinnan tarjoamat toiminnot.
symbolic of realization -------▻
Yleinen suhde
Riippuvuus
Riippuvuus on heikompi sidoksen muoto, joka osoittaa, että yksi luokka on riippuvainen toisesta, koska se käyttää sitä jossain vaiheessa. Yksi luokka riippuu toisesta, jos riippumaton luokka on riippuvaisen luokan menetelmän parametrimuuttuja tai paikallinen muuttuja. Tämä eroaa assosiaatiosta, jossa riippuvaisen luokan ominaisuus on riippumattoman luokan esiintymä. Joskus kahden luokan välinen suhde on hyvin heikko. Niitä ei toteuteta jäsenmuuttujilla ollenkaan. Ne voidaan pikemminkin toteuttaa jäsenfunktion argumentteina.
Moninaisuus
Tämä assosiaatiosuhde osoittaa, että (ainakin) toinen kahdesta asiaan liittyvästä luokasta viittaa toiseen. Tätä suhdetta kuvataan yleensä "A: lla on B" (emokissalla on pentuja, pennuilla on emokissa).
Yhdistyksen UML -esitys on linja, joka yhdistää kaksi toisiinsa liittyvää luokkaa. Rivin molemmissa päissä on valinnainen merkintä. Voimme esimerkiksi osoittaa nuolipään avulla, että terävä pää näkyy nuolen hännästä. Voimme osoittaa omistajuuden sijoittamalla pallon, roolin, johon kyseisen päätehtävän elementit antavat roolille nimen, ja kyseisen yksikön esiintymien moninaisuuden (yhdistykseen osallistuvien esineiden lukumäärän näkökulmasta) toisesta päästä).
| 0 | Ei tapauksia (harvinainen) |
| 0..1 | Ei esiintymiä tai vain yksi tapaus |
| 1 | Aivan yksi esimerkki |
| 1..1 | Aivan yksi esimerkki |
| 0 ..* | Nolla tai useampia tapauksia |
| * | Nolla tai useampia tapauksia |
| 1 ..* | Yksi tai useampi tapaus |
Analyysin stereotypioita
Yhteisöt
Kokonaisuusluokat mallinnavat järjestelmän käsittelemää pitkäikäistä tietoa ja joskus tietoon liittyvää käyttäytymistä. Niitä ei pitäisi pitää tietokantataulukoina tai muina tietovarastoina.
Ne piirretään ympyröiksi, joissa on lyhyt viiva ympyrän alaosaan. Vaihtoehtoisesti ne voidaan piirtää normaaleiksi luokiksi, joissa luokan nimen yläpuolella on "entiteetti" -stereotyyppimerkinnät.
Katso myös
- Liittyvät kaaviot
