logo

Asociácia UML vs. agregácia vs. zloženie

V diagramoch UML sa vzťahy používajú na prepojenie niekoľkých vecí. Je to spojenie medzi štrukturálnymi, behaviorálnymi alebo zoskupovacími vecami. Nižšie sú uvedené štandardné vzťahy UML:

  • asociácie
  • Závislosť
  • Zovšeobecnenie
  • Realizácia

asociácie

Asociačný vzťah je štrukturálny vzťah, v ktorom sú rôzne objekty prepojené v rámci systému. Vykazuje binárny vzťah medzi objektmi reprezentujúcimi aktivitu. Zobrazuje vzťah medzi objektmi, ako napríklad učiteľ, môže byť spojený s viacerými učiteľmi.

Je reprezentovaná čiarou medzi triedami, za ktorou nasleduje šípka, ktorá naviguje smerom, a keď je šípka na oboch stranách, nazýva sa to obojsmerná asociácia. Násobnosť asociácie môžeme špecifikovať pridaním ozdôb na riadok, ktorý bude asociáciu označovať.

Príklad:

je proteínový tuk

1) Jeden učiteľ má viacero študentov.

Asociácia UML vs. agregácia vs. zloženie

2) Jeden študent sa môže spojiť s mnohými učiteľmi.

Asociácia UML vs. agregácia vs. zloženie

Zloženie a agregácia sú dve podmnožiny asociácií. V oboch prípadoch je objekt jednej triedy vo vlastníctve objektu inej triedy; jediný rozdiel je v tom, že v zložení dieťa neexistuje nezávisle od svojho rodiča, zatiaľ čo v agregácii nie je dieťa závislé od svojho rodiča, t. j. samostatné. Agregácia je špeciálna forma asociácie a kompozícia je špeciálna forma agregácie.

Asociácia UML vs. agregácia vs. zloženie

Agregácia

Agregácia je podmnožinou asociácií, je súborom rôznych vecí. Predstavuje, že má vzťah. Je špecifickejšia ako asociácia. Opisuje časť-celok alebo časť vzťahu. Je to binárna asociácia, t.j. zahŕňa iba dve triedy. Je to druh vzťahu, v ktorom je dieťa nezávislé od svojho rodiča.

Napríklad:

abeceda s číslami

Tu uvažujeme o aute a príklade kolesa. Auto sa nemôže pohybovať bez kolesa. Koleso však možno použiť nezávisle na bicykli, kolobežke, bicykli alebo akýmkoľvek iným vozidlom. Objekt kolesa môže existovať bez objektu auta, čo sa ukazuje ako agregačný vzťah.

Asociácia UML vs. agregácia vs. zloženie

Zloženie

Kompozícia je súčasťou agregácie a zobrazuje vzťah celku. Zobrazuje závislosť medzi kompozitom (rodičom) a jeho časťami (deti), čo znamená, že ak sa kompozit zahodí, odstránia sa aj jeho časti. Existuje medzi podobnými objektmi.

Ako môžete vidieť na príklade uvedenom nižšie, vzťah asociácie kompozície spája triedu Osoba s triedou Mozog, Trieda Srdce a Trieda Nohy. Ak je osoba zničená, mozog, srdce a nohy budú tiež vyradené.

Asociácia UML vs. agregácia vs. zloženie

Asociácia vs. agregácia vs. zloženie

asociácie Agregácia Zloženie
Asociačný vzťah je znázornený pomocou šípky. Agregačný vzťah je reprezentovaný rovnou čiarou s prázdnym kosoštvorcom na jednom konci. Kompozičný vzťah predstavuje priamka s čiernym diamantom na jednom konci.
V UML môže existovať medzi dvoma alebo viacerými triedami. Je súčasťou asociačného vzťahu. Je súčasťou agregačného vzťahu.
Zahŕňa asociáciu typu one-to-one, one-to-many, many-to-one a many-to-many medzi triedami. Prejavuje to akýsi slabý vzťah. Vykazuje silný typ vzťahu.
Môže spájať ešte jeden objekt. V agregačnom vzťahu existujú súvisiace objekty nezávisle v rámci systému. Vo vzťahu kompozície nemôžu priradené objekty existovať nezávisle v rámci systému.
V tomto sú objekty navzájom prepojené. V tomto sú prepojené objekty navzájom nezávislé. Tu sú prepojené objekty navzájom závislé.
Ak je jeden prvok vymazaný, môže alebo nemusí mať vplyv na ďalší priradený prvok. Odstránenie jedného prvku vo vzťahu agregácie neovplyvní ostatné súvisiace prvky. Ovplyvní druhý prvok, ak sa odstráni jeden z jeho priradených prvkov.
Príklad: Lektor sa môže spojiť s viacerými študentmi alebo jeden študent sa môže spojiť s viacerými učiteľmi. Príklad: Auto potrebuje koleso pre svoju správnu funkciu, ale nemusí vyžadovať to isté koleso. Môže fungovať aj s iným kolesom. Príklad: Ak je súbor umiestnený v priečinku a tento priečinok sa vymaže. Súbor nachádzajúci sa v tomto priečinku sa tiež odstráni v čase odstránenia priečinka.