UML-suhdetyypit: assosiaatio, riippuvuus, yleistäminen
⚡ Älykäs yhteenveto
UML-suhteet yhdistävät rakenteelliset, käyttäytymiseen liittyvät ja ryhmäkohtaiset osat.ping mallin elementit, jotka osoittavat, miten objektit ovat riippuvaisia toisistaan suorituksen aikana. Tämä resurssi selittää assosiaation, riippuvuuden, yleistyksen, toteutuksen, komposition ja aggregaation, ja sisältää merkintöjä ja käytännön esimerkkejä kullekin tyypille.

Mikä on UML-suhde?
Suhteet UML:ssä käytetään kuvaamaan yhteyttä rakenteellisten, käyttäytymiseen liittyvien tai ryhmäkohtaisten tekijöiden välilläping asioita. Sitä kutsutaan myös linkiksi, joka kuvaa, miten kaksi tai useampi asia voi olla yhteydessä toisiinsa järjestelmän suorituksen aikana. UML-suhteiden tyyppejä ovat assosiaatio, riippuvuus, yleistys ja toteutus.
Tutkitaan niitä yksityiskohtaisesti
UML-luokkakaavion suhteiden tyypit
Yhdistys
Se on joukko linkkejä, jotka yhdistävät UML-mallin elementtejä. Se määrittää myös kuinka monta objektia osallistuu kyseiseen suhteeseen.
riippuvuus
Riippuvuussuhteessa, kuten nimestä voi päätellä, kaksi tai useampi elementti on riippuvainen toisistaan. Jos tällaisessa suhteessa teemme muutoksen tiettyyn elementtiin, on todennäköistä, että muutos vaikuttaa myös kaikkiin muihin elementteihin.
Yleistys
Sitä kutsutaan myös vanhemman ja lapsen suhteeksi. Yleistyksessä yksi elementti on toisen yleiskomponentin erikoistuminen. Se voidaan korvata sen tilalla. Sitä käytetään useimmiten edustamaan perintöä.
oivallus
UML:n toteutussuhteessa yksi entiteetti merkitsee jotain vastuuta, jota se ei ole toteuttanut, ja toinen entiteetti, joka toteuttaa ne. Tämä suhde löytyy useimmiten tapauksissa rajapintoja.
Yhdistys
Se on rakenteellinen suhde, joka edustaa objekteja, jotka voidaan yhdistää tai yhdistää toiseen objektiin järjestelmän sisällä. Seuraavia rajoituksia voidaan soveltaa assosiaatiosuhteeseen.
- {implisiittinen} – Implisiittiset rajoitukset määrittävät, että suhde ei ole ilmeinen; se perustuu konseptiin.
- {tilattu} – Järjestetyt rajoitukset määrittävät, että yhdistelmän toisessa päässä olevat objektit ovat tietyllä tavalla.
- {vaihdettava} – Muutettavissa oleva rajoitus määrittää, että järjestelmän eri objektien välistä yhteyttä voidaan lisätä, poistaa ja muokata tarpeen mukaan.
- {addOnly} – Se määrittää, että uudet yhteydet voidaan lisätä objektista, joka sijaitsee assosioinnin toisessa päässä.
- {jäätynyt} – Se määrittää, että kun linkki lisätään kahden objektin välille, sitä ei voi muokata, kun jäädytetty rajoitus on aktiivinen tietyssä linkissä tai yhteydessä.
Voimme myös luoda luokan, jolla on assosiaatioominaisuuksia; sitä kutsutaan assosiaatioluokiksi.
Refleksiivinen assosiaatio
Refleksiivinen assosiaatio on UML:n assosiaatiosuhteen alatyyppi. Refleksiivisessä assosiaatiossa saman luokan esiintymät voivat olla yhteydessä toisiinsa. Luokan esiintymän sanotaan myös olevan objekti.
Refleksiivinen assosiaatio tarkoittaa, että linkki tai yhteys voi olla läsnä saman luokan objekteissa.
Tarkastellaanpa esimerkkiä luokan hedelmästä. Hedelmäluokalla on kaksi esiintymää, kuten mango ja omena. Refleksiivinen assosiaatio väittää, että mangon ja omenan välillä voi olla yhteys, koska ne ovat saman luokan esimerkkejä, kuten hedelmät.
Ohjattu yhdistys
Kuten nimestä voi päätellä, suunnattu assosiaatio liittyy virtauksen suuntaan assosiaatioluokkien sisällä.
Suunnatussa yhdistyksessä virtaus on suunnattu. Yhteys luokasta toiseen virtaa vain yhteen suuntaan.
Se on merkitty kiinteällä viivalla nuolenpäällä.
Esimerkiksi:
Voit sanoa, että palvelimen ja asiakkaan välillä on suunnattu assosiaatiosuhde. Palvelin voi käsitellä asiakkaan pyynnöt. Tämä virtaus on yksisuuntainen, joka kulkee vain palvelimelta asiakkaalle. Siten suunnattu assosiaatiosuhde voi olla olemassa järjestelmän palvelimissa ja asiakkaissa.
riippuvuus
UML:n riippuvuussuhteen avulla voidaan kertoa kuinka tietyn järjestelmän sisällä olevat asiat ovat riippuvaisia toisistaan. Riippuvuutta käytetään kuvaamaan UML:n eri elementtien välistä suhdetta, jotka ovat riippuvaisia toisistaan.
Stereotypiat
- "sitoa" – Sidonta on rajoitus, joka määrittää, että lähde voi alustaa mallin kohdesijaintiin annettujen parametrien tai arvojen avulla.
- "johtaa" – Se edustaa, että lähdeobjektin sijainti voidaan laskea kohdeobjektista.
- "ystävä" – Se määrittää, että lähteellä on yksilöllinen näkyvyys kohdeobjektissa.
- "esiintymä" – Se määrittää, että kohdeluokittajan esiintymä on lähdeobjekti.
- "momentoi" – Se määrittää, että lähdeobjekti pystyy luomaan kohdeobjektin esiintymiä.
- "tarkenna" – Se määrittää, että lähdeobjektilla on poikkeuksellinen absorptiotrackuin kohdeobjektin.
- "käyttää" – Sitä käytetään, kun paketteja luodaan UML:ssä. Käyttöstereotypia kuvaa, että lähdepaketin elementit voivat olla myös kohdepaketin sisällä. Se kuvaa, että lähdepaketti käyttää joitain kohdepaketin elementtejä.
- "korvike" – täsmentää, että asiakas voidaan korvata toimittajalla ajon aikana.
- "pääsy" – Se määrittää, että lähdepaketti käyttää kohdepaketin elementtejä jota kutsutaan myös yksityiseksi yhdistämiseksi.
- "Tuonti" – Se määrittää, että kohde voi tuoda lähdepaketin elementin, kuten ne on määritelty paketin sisällä tavoite, jota kutsutaan myös julkiseksi yhdistämiseksi.
- "lupa" – määrittää, että lähdeelementillä on pääsy toimittajaelementtiin riippumatta toimittajan ilmoitetusta näkyvyydestä.
- "pidentää" – Auttaa määrittämään, että kohde voi laajentaa lähdeelementin toimintaa.
- "sisältää" – Voit määrittää lähdeelementin, joka voidaan sisällyttää toisen elementin käyttäytymiseen tietyssä paikassa. (sama kuin funktiokutsu c/c++:ssa)
- "tulla" – Se määrittää, että kohde on samanlainen kuin lähde, jolla on erilaiset arvot ja roolit.
- "puhelu" – Se määrittää, että lähde voi kutsua kohdeobjektimenetelmän.
- "Kopio" – Se määrittää, että kohdeobjekti on itsenäinen, kopio lähdeobjektista.
- "parametri" – toimittaja on asiakkaan toiminnan parametri.
- "lähettää" – asiakas on operaatio, joka lähettää toimittajalle jonkin määrittelemättömän kohteen.
Stereotypiat valtiokoneen keskuudessa
- "lähettää" – Määrittää, että lähdetoiminto lähettää kohdetapahtuman.
Yleistys
Se on suhde yleisen kokonaisuuden ja järjestelmän sisällä olevan ainutlaatuisen entiteetin välillä.
Yleistyssuhteessa olio-käsite ns perintö voidaan toteuttaa. Yleistyssuhde on olemassa kahden objektin välillä, joita kutsutaan myös kokonaisuuksiksi tai esineiksi. Yleistyssuhteessa yksi entiteetti on vanhempi ja toisen sanotaan olevan lapsi. Nämä entiteetit voidaan esittää käyttämällä periytymistä.
Periytyksessä minkä tahansa vanhemman alijäsen voi käyttää, päivittää tai periä toiminnallisuuden pääobjektin sisällä määritetyllä tavalla. Lapsiobjekti voi lisätä toiminnallisuutensa itselleen sekä periä emoobjektin rakenteen ja käyttäytymisen.
Tämän tyyppinen suhde tunnetaan kollektiivisesti yleistyssuhteena.
Stereotypiat ja niiden rajoitteet
- "toteutus" – Tätä stereotypiaa käytetään edustamaan, että emokokonaisuus toteuttaa alikokonaisuuden perimällä ylätason objektin rakenteen ja käyttäytymisen sääntöjä rikkomatta. Huomautus: Tätä stereotypiaa käytetään laajalti yhdessä perintö.
Yleistyssuhde sisältää rajoituksia, kuten täydellinen, epätäydellinen, jotta voidaan tarkistaa, sisällytetäänkö kaikki alikokonaisuudet suhteeseen vai ei.
oivallus
UML:n toteutussuhteessa yksi entiteetti merkitsee jotain vastuuta, jota se ei ole toteuttanut, ja toinen entiteetti, joka toteuttaa ne. Tämä suhde löytyy useimmiten tapauksissa rajapintoja.
Toteutus voidaan esittää kahdella tavalla:
- Käyttäen kanoninen muoto
- Käyttämällä elidoitu muoto

Yllä olevassa kaaviossa tilin liiketoimintasäännöt toteuttavat käyttöliittymän IRuleAgent.
Toteutuksen tyypit
- Kanoninen muoto: UML:n toteutussuhteessa kanonista muotoa käytetään rajapintojen toteuttamiseen koko järjestelmässä. Se käyttää rajapinnan stereotyyppiä rajapinnan luomiseen ja toteutussuhdetta käytetään kyseisen rajapinnan toteuttamiseen. Kanonisessa muodossa toteutussuhdetta merkitään katkoviivalla, jossa on kookas avoin nuolenkärki. Yllä olevassa kaaviossa Iruleagent-rajapinta on toteutettu käyttämällä Account Business Rules -nimistä objektia.
- Jätetty muoto: Toteutus UML-luokkakaavio voidaan esittää myös käyttämällä elidettyä muotoa. Elidettyssä muodossa rajapintaa merkitään ympyrällä, jota kutsutaan myös tikkarimerkinnäksi. Tämä rajapinta, kun se toteutetaan millä tahansa järjestelmän sisällä olevalla elementillä, luo elidetyn rakenteen. Yllä olevassa kaaviossa Iruleagent-rajapintaa merkitään elidetoidulla muodossa, jonka toteuttaa acctrule.dll.
Koostumus
Se ei ole tavallinen UML-suhde, mutta sitä käytetään silti useissa sovelluksissa.
Yhdistelmäaggregaatio on aggregointisuhteen alatyyppi, jolla on seuraavat ominaisuudet:
- se on kaksisuuntainen assosiaatio objektien välillä.
- Se on koko/osa-suhde.
- Jos yhdistelmä poistetaan, kaikki muut siihen liittyvät osat poistetaan.
Yhdistelmäaggregaatiota kuvataan binääriassosiaatioksi, joka on koristeltu täytetyllä mustalla timantilla aggregaatin (koko) päässä.
Kansio on rakenne, joka sisältää n määrää tiedostoja. Kansiota käytetään tiedostojen tallentamiseen sen sisällä. Jokainen kansio voidaan liittää mihin tahansa määrään tiedostoja. Tietokonejärjestelmässä jokainen tiedosto on osa vähintään yhtä kansiota tiedostojärjestelmän sisällä. Sama tiedosto voi olla myös osa toista kansiota, mutta se ei ole pakollista. Aina kun tiedosto poistetaan kansiosta, kansio pysyy muuttumattomana, kun taas kyseiseen tiedostoon liittyvät tiedot tuhoutuvat. Jos kansiossa suoritetaan poistotoiminto, se vaikuttaa myös kaikkiin kansion sisällä oleviin tiedostoihin. Kaikki kansioon liittyvät tiedostot tuhoutuvat automaattisesti, kun kansio poistetaan järjestelmästä.
Tämän tyyppinen suhde UML:ssä tunnetaan yhdistetyllä aggregaatiosuhteella.
aggregaatti
An aggregaatti on UML:n assosiaatiosuhteen alatyyppi. Sekä aggregaatio että sommittelu ovat UML:n assosiaatiosuhteen tyyppejä. Aggregaatiosuhde voidaan kuvata yksinkertaisesti seuraavasti: "Yhden luokan objekti voi omistaa tai käyttää toisen luokan objekteja."
Aggregointisuhteessa riippuvainen objekti pysyy suhteen piirissä, vaikka lähdeobjekti tuhoutuu.
Tarkastellaanpa esimerkkiä autosta ja pyörästä. Auto tarvitsee pyörän toimiakseen kunnolla, mutta pyörä ei aina tarvitse autoa. Sitä voidaan käyttää myös pyörän, polkupyörän tai minkä tahansa muun ajoneuvon kanssa, mutta ei tietyn auton kanssa. Tässä pyöräobjekti on merkityksellinen myös ilman autoa. Tällaista suhdetta kutsutaan aggregaatiorelaatioksi.

