UML-suhdetyypit: assosiaatio, riippuvuus, yleistäminen

Mikä on UML-suhde?

Suhteet UML:ssä käytetään edustamaan yhteyttä rakenteellisten, käyttäytymiseen liittyvien tai ryhmittyvien asioiden välillä. Sitä kutsutaan myös linkiksi, joka kuvaa kuinka kaksi tai useampi asia voi liittyä toisiinsa järjestelmän suorittamisen aikana. UML-suhteen tyyppejä ovat assosiaatio, riippuvuus, yleistäminen ja toteutus.

Tutkitaan niitä yksityiskohtaisesti

UML-luokkakaavion suhteiden tyypit

UML-luokkakaavion suhteet

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 abstraktio kuin kohdeobjektilla.
  • "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 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.Huomautuksia Tämä stereotypia, jos sitä 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
Toteutus UML:ssä
Toteutus UML:ssä

Yllä olevassa kaaviossa tilin liiketoimintasäännöt toteuttavat käyttöliittymän IRuleAgent.

Toteutuksen tyypit

  1. Kanoninen muoto UML:n toteutussuhteessa kanonista muotoa käytetään järjestelmän rajapintojen toteuttamiseen. Se käyttää rajapinnan stereotyyppiä rajapinnan luomiseen ja toteutussuhdetta käytetään tietyn rajapinnan toteuttamiseen. Kanonisessa muodossa toteutussuhde on merkitty katkoviivalla, jossa on suuri avoin nuolenpää. Yllä olevassa kaaviossa käyttöliittymä Iruleagent on toteutettu käyttämällä objektia nimeltä Account Business Rules.
  2. Elded muoto Toteuttaminen UML-luokkakaavio voidaan esittää myös elidoidulla lomakkeella. Elidoidussa muodossa rajapinta on merkitty ympyrällä, jota kutsutaan myös tikkari-merkinnällä. Tämä rajapinta, kun se toteutetaan käyttämällä mitä tahansa järjestelmän sisällä olevaa, luo elidoidun rakenteen. Yllä olevassa kaaviossa rajapinta Iruleagent on merkitty käyttämällä elidoitua muotoa, jota acctrule.dll toteuttaa.

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ä.

Koostumus UML:ssä

Koostumus UML: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. Aggregaatio ja koostumus ovat molemmat UML:n assosiaatiosuhteen tyyppejä. Aggregaatiosuhdetta voidaan kuvata yksinkertaisin sanoin: "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.

Yhteenveto

  • UML:n relaatio mahdollistaa yhden asian suhteutumisen muihin järjestelmän sisällä oleviin asioihin.
  • UML määrittelee assosiaatio-, riippuvuus-, yleistys- ja toteutussuhteet.
  • Koostumussuhdetta voidaan käyttää myös kuvaamaan, että objekti voi olla osa vain yhtä komposiikkaa kerrallaan.
  • Assosiaatiota käytetään kuvaamaan, että yksi objekti voidaan yhdistää toiseen objektiin.
  • Riippuvuus tarkoittaa, että objektit voivat olla riippuvaisia ​​toisistaan.
  • Toteutus on merkityksellinen suhde luokittajien välillä.
  • Yleistämistä kutsutaan myös vanhemman ja lapsen väliseksi suhteeksi.