UML-i seoste tüübid: assotsiatsioon, sõltuvus, üldistus
⚡ Nutikas kokkuvõte
UML-i seosed ühendavad struktuurilisi, käitumuslikke ja rühmi.ping Mudeli elemendid, mis näitavad, kuidas objektid täitmise ajal üksteisest sõltuvad. See ressurss selgitab seostamist, sõltuvust, üldistamist, realiseerimist, komponeerimist ja agregeerimist, lisades iga tüübi kohta tähistuse ja reaalse maailma näiteid.

Mis on UML-i suhe?
Suhted UML-is kasutatakse struktuuriliste, käitumuslike või grupi-vaheliste seoste kujutamiseks.ping asju. Seda nimetatakse ka seoseks, mis kirjeldab, kuidas kaks või enam asja saavad süsteemi täitmise ajal üksteisega seotud olla. UML-i seoste tüübid on assotsiatsioon, sõltuvus, üldistus ja realisatsioon.
Uurime neid üksikasjalikult
UML-i klassiskeemide suhete tüübid
Ühing
See on linkide komplekt, mis ühendab UML-mudeli elemente. Samuti määratleb see, kui palju objekte selles suhtes osaleb.
Sõltuvus
Sõltuvussuhtes, nagu nimigi ütleb, on kaks või enam elementi üksteisest sõltuvad. Seda tüüpi suhete puhul, kui muudame konkreetset elementi, on tõenäoline, et muudatus mõjutab ka kõiki teisi elemente.
Üldistamine
Seda nimetatakse ka vanema-lapse suhteks. Üldistades on üks element teise üldkomponendi spetsialiseerumine. Selle võib asendada. Seda kasutatakse enamasti pärandi esindamiseks.
Realiseerimine
UML-i realiseerimissuhtes tähistab üks olem mingit vastutust, mida ta ise ei rakenda, ja teine olem, mis neid rakendab. Seda seost leidub enamasti juhul liidesed.
Ühing
See on struktuurne seos, mis kujutab endast objekte, mida saab ühendada või seostada mõne teise süsteemi sees oleva objektiga. Assotsiatsioonisuhtele saab rakendada järgmisi piiranguid.
- {kaudne} – Kaudsed piirangud määravad, et seos ei ole ilmne; see põhineb kontseptsioonil.
- {tellitud} – Järjestatud piirangud määravad, et objektide kogum seose ühes otsas on kindlal viisil.
- {changeable} – Muudetav piirang määrab, et süsteemi erinevate objektide vahelist ühendust saab vastavalt vajadusele lisada, eemaldada ja muuta.
- {addOnly} – See määrab, et uusi ühendusi saab lisada objektist, mis asub ühenduse teises otsas.
- {külmutatud} – See määrab, et kui kahe objekti vahele lisatakse link, ei saa seda muuta, kui külmutatud piirang on antud lingil või ühendusel aktiivne.
Samuti saame luua klassi, millel on seosomadused; seda nimetatakse assotsiatsiooniklassiks.
Refleksiivne assotsiatsioon
Refleksiivne assotsiatsioon on UML-i assotsiatsioonisuhte alatüüp. Refleksiivses assotsiatsioonis võivad sama klassi eksemplarid olla omavahel seotud. Ka klassi eksemplari nimetatakse objektiks.
Refleksiivne assotsiatsioon väidab, et link või ühendus võib esineda sama klassi objektides.
Vaatleme klassi puuvilja näidet. Puuviljaklassis on kaks eksemplari, näiteks mango ja õun. Refleksiivne seos väidab, et mango ja õuna vahel võib olla seos, kuna need on sama klassi eksemplarid, näiteks puuviljad.
Juhitud ühendus
Nagu nimigi ütleb, on suunatud seos seotud voolu suunaga assotsiatsiooniklassides.
Suunatud koosluses on voog suunatud. Seos ühest klassist teise klassi voolab ainult ühes suunas.
Seda tähistatakse nooleotsaga pideva joonega.
Näide:
Võib öelda, et serveri ja kliendi vahel on suunatud seos. Server saab töödelda kliendi päringuid. See voog on ühesuunaline, mis liigub ainult serverist kliendini. Seega võib süsteemi serverites ja klientides esineda suunatud assotsiatsioonisuhe.
Sõltuvus
Kasutades UML-is sõltuvussuhet, saab seostada, kuidas erinevad asjad konkreetses süsteemis on üksteisest sõltuvad. Sõltuvust kasutatakse UML-i erinevate elementide vahelise seose kirjeldamiseks, mis on üksteisest sõltuvad.
Stereotüübid
- "siduda" – Sidumine on piirang, mis määrab, et allikas saab lähtestada malli sihtasukohas, kasutades selleks ettenähtud parameetreid või väärtusi.
- "tuletama" – See näitab, et lähteobjekti asukohta saab sihtobjekti järgi arvutada.
- "sõber" – See määrab, et allikal on sihtobjektis ainulaadne nähtavus.
- "instanceOf" – See määrab, et lähteobjektiks on sihtklassifikaatori eksemplar.
- "instantseerima" – See määrab, et lähteobjekt on võimeline looma sihtobjekti eksemplare.
- "rafineerima" – See täpsustab, et lähteobjektil on erakordne abstrackui sihtobjektil.
- "kasuta" - Seda kasutatakse UML-i pakettide loomisel. Kasutusstereotüüp kirjeldab, et lähtepaketi elemendid võivad esineda ka sihtpaketi sees. See kirjeldab, et lähtepakett kasutab mõnda sihtpaketi elementi.
- "asendaja" – täpsustab, et klient võib tööajal tarnija asemel asendada.
- "juurdepääs" – See määrab, et lähtepaketil on juurdepääs sihtpaketi elementidele mida nimetatakse ka privaatseks ühendamiseks.
- "Import" – See määrab, et sihtmärk saab importida lähtepaketi elemendi, nagu need on määratletud paketi sees sihtmärk, mida nimetatakse ka avalikuks ühendamiseks.
- "luba" – määrab, et lähteelemendil on juurdepääs tarnija elemendile olenemata tarnija deklareeritud nähtavusest.
- "pikendama" – Aitab teil täpsustada, et sihtmärk võib lähteelemendi käitumist laiendada.
- "kaasa" – Võimaldab määrata lähteelemendi, millesse saab kaasata mõne muu elemendi käitumise määratud asukohas. (sama mis funktsioonikutse puhul c/c++)
- "saada" – See täpsustab, et sihtmärk on allikaga sarnane erinevate väärtuste ja rollidega.
- "helista" – See määrab, et allikas saab käivitada sihtobjekti meetodi.
- "koopia" – See määrab, et sihtobjekt on sõltumatu, lähteobjekti koopia.
- "parameeter" – tarnija on kliendi tegevuse parameeter.
- «saada» – klient on toiming, mis saadab tarnijale mingi määratlemata sihtmärgi.
Stereotüübid riigimasina seas
- «saada» – Määrab, et lähtetoiming saadab sihtsündmuse.
Üldistamine
See on suhe üldise üksuse ja süsteemi sees oleva kordumatu olemi vahel.
Üldistussuhtes objektorienteeritud kontseptsioon nn pärimine saab rakendada. Üldistussuhe eksisteerib kahe objekti vahel, mida nimetatakse ka olemiteks või asjadeks. Üldistussuhtes on üks entiteet lapsevanem, teine aga laps. Neid üksusi saab esitada pärimise abil.
Pärimise korral pääseb iga vanema alamfunktsioon juurde, värskendab või pärib vanemobjekti sees määratud funktsioone. Alamobjekt võib lisada oma funktsionaalsuse nii endale kui ka pärida põhiobjekti struktuuri ja käitumist.
Seda tüüpi suhteid nimetatakse ühiselt üldistussuhteks.
Stereotüübid ja nende piirangud
- "rakendamine" – Seda stereotüüpi kasutatakse selleks, et näidata, et alamolemit rakendab emaolemi poolt, pärides põhiobjekti struktuuri ja käitumist ilma reegleid rikkumata. Märge: Seda stereotüüpi kasutatakse laialdaselt ühes pärimine.
Üldistussuhe sisaldab piiranguid, nagu täielik, mittetäielik, et kontrollida, kas kõik alamolemid on suhtesse kaasatud või mitte.
Realiseerimine
UML-i realiseerimissuhtes tähistab üks olem mingit vastutust, mida ta ise ei rakenda, ja teine olem, mis neid rakendab. Seda seost leidub enamasti juhul liidesed.
Realiseerimist saab esitada kahel viisil:
- Kasutades kanooniline vorm
- Kasutades elideeritud vorm

Ülaltoodud diagrammil realiseerivad konto ärireeglid liidest IRuleAgent.
Realiseerimise tüübid
- Kanooniline vorm: UML-i realiseerimisseoses kasutatakse kanoonilist vormi liideste realiseerimiseks kogu süsteemis. See kasutab liidese loomiseks liidese stereotüüpi ja realiseerimisseost kasutatakse konkreetse liidese realiseerimiseks. Kanoonilisel kujul tähistatakse realiseerimissuhet katkendliku suunatud joonega, millel on suur avatud nooleots. Ülaltoodud diagrammil realiseeritakse liides Iruleagent objekti nimega Account Business Rules abil.
- Väljajäetud vorm: Realiseerimine UML klassi diagramm saab kuvada ka kustutatud kujul. Kustutatud kujul tähistatakse liidest ringiga, mida nimetatakse ka pulgakommi tähistuseks. See liides, kui see realiseeritakse süsteemis oleva elementidega, loob kustutatud struktuuri. Ülaltoodud diagrammil on liides Iruleagent tähistatud kustutatud kujul, mille realiseerib acctrule.dll.
Aine koostis
See ei ole standardne UML-suhe, kuid seda kasutatakse siiski erinevates rakendustes.
Komposiitliit on koondseoste alamtüüp, millel on järgmised omadused:
- see on kahesuunaline seos objektide vahel.
- See on terviku/osa suhe.
- Kui komposiit kustutatakse, kustutatakse kõik muud sellega seotud osad.
Komposiitliitmist kirjeldatakse kui binaarset seost, mis on kaunistatud täidetud musta teemandiga agregaadi (terviku) otsas.
Kaust on struktuur, mis sisaldab n arvu faile. Kausta kasutatakse selle sees olevate failide salvestamiseks. Iga kausta saab seostada suvalise arvu failidega. Arvutisüsteemis on iga fail osa vähemalt ühest failikorraldussüsteemi kaustast. Sama fail võib olla ka mõne muu kausta osa, kuid see ei ole kohustuslik. Kui fail kaustast eemaldatakse, jääb kaust mõjutamata, samas kui selle konkreetse failiga seotud andmed hävivad. Kui kaustas tehakse kustutamistoiming, mõjutab see ka kõiki kaustas olevaid faile. Kõik kaustaga seotud failid hävitatakse automaatselt, kui kaust süsteemist eemaldatakse.
Seda tüüpi seost UML-is tuntakse liitagregatsiooni suhtena.
Liitmine
An koondamine on UML-i assotsiatsioonisuhte alamtüüp. Agregatsioon ja kompositsioon on mõlemad UML-i assotsiatsioonisuhte tüübid. Agregatsioonisuhet saab lihtsate sõnadega kirjeldada kui „ühe klassi objekt saab omada või juurde pääseda teise klassi objektidele“.
Koondseoses jääb sõltuv objekt suhte ulatusse ka siis, kui lähteobjekt hävib.
Vaatleme näidet autost ja rattast. Auto vajab korrektseks tööks ratast, kuid ratas ei vaja alati autot. Seda saab kasutada ka jalgratta, jalgratta või mõne muu sõidukiga, kuid mitte konkreetse autoga. Siin on rattaobjekt tähendusrikas ka ilma autoobjektita. Sellist tüüpi suhet nimetatakse agregatsioonisuhteks.

