UML-i seoste tüübid: assotsiatsioon, sõltuvus, üldistus
Mis on UML-i suhe?
Suhted UML-is kasutatakse seose kujutamiseks struktuursete, käitumuslike või rühmitavate asjade vahel. Seda nimetatakse ka lingiks, mis kirjeldab, kuidas kaks või enam asja võivad süsteemi täitmise ajal üksteisega seostuda. UML-i suhte tüübid on assotsiatsioon, sõltuvus, üldistamine ja realiseerimine.
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 määrab, et lähteobjektil on erakordne abstraktsioon kui 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 toimingute parameeter.
- "saada" - klient on operatsioon, 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ärkused 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 realiseerimissuhtes kasutatakse kanoonilist vormi kogu süsteemi liideste realiseerimiseks. See kasutab liidese loomiseks liidese stereotüüpi ja konkreetse liidese realiseerimiseks kasutatakse realiseerimissuhet. Kanoonilisel kujul tähistatakse realiseerimissuhet suure avatud nooleotsaga suunatud katkendliku joonega. Ülaltoodud diagrammil realiseeritakse liides Iruleagent, kasutades objekti, mida nimetatakse konto ärireegliteks.
- Elided vorm Realiseerimine aastal UML klassi diagramm saab näidata ka elideeritud vormi abil. Elideeritud kujul on liides tähistatud ringiga, mida nimetatakse ka pulgakommi tähiseks. See liides loob süsteemis leiduva kõike kasutades elideeritud struktuuri. Ülaltoodud diagrammil on liides Iruleagent tähistatud kasutades elideeritud vormi, mida 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. UML-is on seoste tüübid nii liitmine kui ka koostis. Koondsuhet saab kirjeldada lihtsate sõnadega kui "ühe klassi objekt võib omada teise klassi objekte või neile juurde pääseda".
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.
kokkuvõte
- UML-i suhe võimaldab ühe asja seostada teiste süsteemi sees olevate asjadega.
- UML määratleb seose, sõltuvuse, üldistamise ja realiseerimise seosed.
- Kompositsiooniseost saab kasutada ka selle objekti esitamiseks, mis võib korraga olla osa ainult ühest komposiidist.
- Seostust kasutatakse kirjeldamaks, et ühte objekti saab seostada teise objektiga.
- Sõltuvus tähendab, et objektid võivad olla üksteisest sõltuvad.
- Teostus on tähenduslik suhe klassifikaatorite vahel.
- Üldistust nimetatakse ka vanema ja lapse suhteks.

