UML udruga vs. Agregacija vs. Sastav [PRIMJER]
Odnosi u UML dijagramu koriste se za predstavljanje veze između različitih stvari. Odnos je veza među stvarima kao što su strukturne, bihevioralne ili grupirane stvari u jedinstvenom jeziku modeliranja.
Slijede različite vrste standardnih odnosa u UML-u,
- Udruženje
- zavisnost
- Generalizacija
- realizacija
Osim ovih, UML dopušta korištenje agregacije i odnosa kompozicije.
UML Udruga
To je strukturni odnos koji predstavlja objekte koji mogu biti povezani ili povezani s drugim objektom unutar sustava. Sljedeća ograničenja mogu se primijeniti na odnos UML pridruživanja.
- {implicitno} – Implicitna ograničenja specificiraju da odnos nije očigledan; temelji se na konceptu.
- {naručeno} – Uređena ograničenja specificiraju da je skup objekata na jednom kraju asocijacije na specifičan način.
- {promjenjivo} – Promjenjivo ograničenje navodi da se veza između različitih objekata u sustavu može dodavati, uklanjati i modificirati prema zahtjevu.
- {addOnly} – Određuje da se nove veze mogu dodati iz objekta koji se nalazi na drugom kraju asocijacije.
- {smrznuto} – Određuje da kada je veza umetnuta između dva objekta, tada se ne može mijenjati dok je zamrznuto ograničenje aktivno na danoj vezi ili vezi.
Također možemo stvoriti klasu koja ima UML Association svojstva; naziva se asocijativnom klasom.
Refleksivna asocijacija
Refleksivna asocijacija je podvrsta asocijacijskog odnosa u UML. U refleksivnoj asocijaciji, instance iste klase mogu biti povezane jedna s drugom. Za instancu klase također se kaže da je objekt.
Refleksivna asocijacija navodi da veza ili veza mogu biti prisutne unutar objekata iste klase.
Primjer:
Razmotrimo primjer voća klase.
Klasa voća ima dvije instance, kao što su mango i jabuka. Refleksivna asocijacija navodi da veza između manga i jabuke može biti prisutna jer su to primjerci iste klase, kao što je voće.
Usmjereno udruženje
Kao što naziv sugerira, usmjerena asocijacija povezana je sa smjerom toka unutar klasa asocijacija.
U usmjerenoj asocijaciji tok je usmjeren. Povezanost jedne klase s drugom klasom teče samo u jednom smjeru.
Označava se punom linijom s vrhom strelice.
Primjer asocijacije UML:
Možete reći da postoji usmjereni asocijacijski odnos između poslužitelja i klijenta.
Poslužitelj može obraditi zahtjeve klijenta. Ovaj tok je jednosmjeran, teče samo od poslužitelja do klijenta. Stoga usmjereni asocijacijski odnos može biti prisutan unutar poslužitelja i klijenata sustava.
UML sastav
To nije standard UML odnos, ali se još uvijek koristi u raznim primjenama.
Kompozitno združivanje je podvrsta odnosa združivanja sa karakteristikama kao što su:
- To je dvosmjerna povezanost između objekata.
- To je odnos cjelina/dio.
- Ako se kompozit izbriše, brišu se svi ostali dijelovi povezani s njim.
Kompozitna agregacija opisuje se kao binarna asocijacija ukrašena ispunjenim crnim dijamantom na agregatnom (cijelom) kraju.
Mapa može sadržavati mnogo datoteka, dok svaka datoteka ima točno jednu nadređenu mapu. Ako se mapa izbriše, uklanjaju se i sve sadržane datoteke.
U kompozitnoj agregaciji, objekt može biti dio samo jedne kompozitne jedinice u isto vrijeme.
Primjer UML sastava:
Na primjer, u prozorskom sustavu, okvir pripada točno jednom prozoru. U kompozitnoj agregaciji cijeli je sustav odgovoran za raspoređivanje svojih dijelova, što znači da kompozit mora upravljati stvaranjem i uništavanjem svojih dijelova.
UML agregacija
Agregacija je podvrsta asocijacijskog odnosa u UML-u. Agregacija i sastav su obje vrste asocijacijskog odnosa u UML-u. Odnos združivanja može se opisati jednostavnim riječima kao "objekt jedne klase može posjedovati ili pristupati objektima druge klase."
U odnosu združivanja, ovisni objekt ostaje u opsegu odnosa čak i kada je izvorni objekt uništen.
Primjer UML agregacije:
Razmotrimo primjer automobila i kotača.
Automobilu je potreban kotač da bi ispravno funkcionirao, ali kotaču nije uvijek potreban automobil. Također se može koristiti s biciklom, biciklom ili bilo kojim drugim vozilom, ali ne s određenim automobilom. Ovdje je objekt kotač smislen čak i bez objekta automobila. Takav tip odnosa naziva se UML agregacijski odnos.
Udruga vs. Agregacija vs. Sastav
Udruženje | sakupljanje | Sastav |
---|---|---|
Veza asocijacije označena je strelicom. | Odnos agregacije označen je ravnom linijom s praznim vrhom strelice na jednom kraju. | Odnos sastava označen je pomoću ravne crte s popunjenim vrhom strelice na bilo kojem od krajeva. |
Povezivanje može postojati između dvije ili više klasa u UML-u. | Agregacija je dio asocijacijskog odnosa. | Sastav je dio asocijacijskog odnosa. |
Među klasama asocijacija može postojati asocijacija jedan-jedan, jedna-više, mnogo-jedan i mnogo-više. | Agregacija se smatra slabom vrstom asocijacije. | Sastav se smatra jakom vrstom asocijacije. |
U asocijacijskom odnosu, jedan ili više objekata mogu biti povezani jedan s drugim. | U odnosu združivanja, objekti koji su povezani jedan s drugim mogu ostati u opsegu sustava jedan bez drugog. | U odnosu kompozicije, objekti koji su povezani jedan s drugim ne mogu ostati u opsegu jedan bez drugog. |
Objekti su međusobno povezani. | Povezani objekti ne ovise o drugom objektu. | Objekti su jako ovisni jedni o drugima. |
U UML Association, brisanje jednog elementa može, ali ne mora utjecati na drugi povezani element. | U UML agregaciji, brisanje jednog elementa ne utječe na drugi povezani element. | U UML kompoziciji, brisanje jednog elementa utječe na drugi povezani element. |
Primjer: Učitelj je povezan s više učenika. Or nastavnik daje upute učenicima. |
Primjer: Automobilu je potreban kotač, ali nije uvijek potreban isti kotač. Automobil može adekvatno funkcionirati i s drugim kotačem. |
Primjer: Datoteka se nalazi unutar mape. Ako izbrišete mapu, briše se i datoteka povezana s tom mapom. |
Rezime
- Odnos je veza između stvari.
- Asocijacija, ovisnost, generalizacija i realizacija su različite odnosi koje pruža UML.
- Osim standardnih odnosa, unutar UML-a koriste se sastav i agregacija.
- Agregacija i kompozicija su obje vrste asocijacijskih odnosa u UML-u.
- UML sastav je dvosmjerni odnos koji se također naziva i binarni odnos.
Provjerite naš članak o najboljim UML alatima:- Klikni ovdje