logo

Asociace UML vs. agregace vs. složení

V diagramech UML se vztahy používají k propojení několika věcí. Je to spojení mezi strukturálními, behaviorálními nebo seskupovacími věcmi. Níže jsou uvedeny standardní vztahy UML:

  • Sdružení
  • Závislost
  • Zobecnění
  • Realizace

Sdružení

Asociační vztah je strukturální vztah, ve kterém jsou různé objekty propojeny v rámci systému. Vykazuje binární vztah mezi objekty reprezentujícími činnost. Zobrazuje vztah mezi objekty, jako je učitel, který může být spojen s více učiteli.

Je reprezentována čárou mezi třídami, za níž následuje šipka, která naviguje směrem, a když je šipka na obou stranách, nazývá se to obousměrná asociace. Můžeme určit násobnost asociace přidáním ozdob na řádek, který bude asociaci označovat.

Příklad:

1) Jeden učitel má více studentů.

Asociace UML vs. agregace vs. složení

2) Jeden student se může stýkat s mnoha učiteli.

Asociace UML vs. agregace vs. složení

Složení a agregace jsou dvě podmnožiny asociace. V obou případech je objekt jedné třídy vlastněn objektem jiné třídy; jediný rozdíl je v tom, že ve složení dítě neexistuje nezávisle na svém rodiči, zatímco v agregaci není dítě na svém rodiči závislé, tedy samostatné. Agregace je zvláštní formou asociace a kompozice je speciální formou agregace.

Asociace UML vs. agregace vs. složení

Agregace

Agregace je podmnožinou asociací, je sbírkou různých věcí. Představuje, že má vztah. Je konkrétnější než asociace. Popisuje část-celek nebo část vztahu. Je to binární asociace, tj. zahrnuje pouze dvě třídy. Je to druh vztahu, ve kterém je dítě nezávislé na svém rodiči.

Například:

Zde uvažujeme příklad auta a kola. Auto se bez kola nemůže pohybovat. Ale kolo lze nezávisle používat na kole, skútru, kole nebo jiném vozidle. Objekt kola může existovat bez objektu auta, což se ukazuje jako agregační vztah.

Asociace UML vs. agregace vs. složení

Složení

Kompozice je součástí agregace a zobrazuje vztah celku. Zobrazuje závislost mezi kompozitem (rodičem) a jeho částmi (dětmi), což znamená, že pokud je kompozit zahozen, budou smazány i jeho části. Existuje mezi podobnými objekty.

Jak můžete vidět z níže uvedeného příkladu, vztah asociace kompozice spojuje třídu Osoba s třídou Mozek, třídou Srdce a třídou Nohy. Pokud je člověk zničen, mozek, srdce a nohy budou také vyřazeny.

Asociace UML vs. agregace vs. složení

Asociace vs. agregace vs. složení

Sdružení Agregace Složení
Vztah asociace je znázorněn pomocí šipky. Agregační vztah je reprezentován přímkou ​​s prázdným kosočtvercem na jednom konci. Kompoziční vztah je reprezentován přímkou ​​s černým diamantem na jednom konci.
V UML může existovat mezi dvěma nebo více třídami. Je součástí asociačního vztahu. Je součástí agregačního vztahu.
Zahrnuje asociaci one-to-one, one-to-many, many-to-one a many-to-many mezi třídami. Vykazuje to jakýsi slabý vztah. Vykazuje silný typ vztahu.
Může k sobě přidružit ještě jeden objekt. V agregačním vztahu existují přidružené objekty nezávisle v rámci systému. Ve vztahu kompozice nemohou přidružené objekty existovat nezávisle v rámci systému.
V tomto jsou objekty vzájemně propojeny. V tomto jsou propojené objekty na sobě nezávislé. Zde jsou propojené objekty na sobě závislé.
Pokud je jeden prvek odstraněn, může, ale nemusí mít vliv na další přidružený prvek. Odstranění jednoho prvku ve vztahu agregace neovlivní ostatní související prvky. Ovlivňuje druhý prvek, pokud je odstraněn jeden z jeho přidružených prvků.
Příklad: Tutor se může spojit s více studenty nebo jeden student se může spojit s více učiteli. Příklad: Automobil potřebuje ke své správné funkci kolo, ale nemusí vyžadovat stejné kolo. Může fungovat i s jiným kolem. Příklad: Pokud je soubor umístěn do složky a tato složka je smazána. Soubor umístěný v této složce bude také smazán v době mazání složky.