Asociace UML vs. Agregace vs. Složení [PŘÍKLAD]

Vztahy v diagramu UML se používají k reprezentaci spojení mezi různými věcmi. Vztah je spojení mezi věcmi, jako jsou strukturální, behaviorální nebo seskupovací věci v jednotném modelovacím jazyce.

Níže jsou uvedeny různé typy standardních vztahů v UML,

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

Kromě toho UML umožňuje použití agregace a vztahu kompozice.

Asociace UML

Je to strukturální vztah, který představuje objekty, které mohou být připojeny nebo spojeny s jiným objektem uvnitř systému. Na vztah UML Association lze použít následující omezení.

  • {implicitní} – Implicitní omezení určují, že vztah není zjevný; je založen na konceptu.
  • {objednáno} – Uspořádaná omezení určují, že množina objektů na jednom konci přidružení je specifickým způsobem.
  • {měnitelný} – Změnitelné omezení určuje, že spojení mezi různými objekty v systému lze přidávat, odstraňovat a upravovat podle požadavku.
  • {addOnly} – Specifikuje, že nová spojení mohou být přidána z objektu, který se nachází na druhém konci asociace.
  • {zamrzlý} – Určuje, že když je odkaz vložen mezi dva objekty, nelze jej upravit, pokud je u daného odkazu nebo spojení aktivní zmrazené omezení.

Můžeme také vytvořit třídu, která má vlastnosti asociace UML; nazývá se jako asociační třída.

Reflexivní asociace

Reflexní asociace je podtypem asociačního vztahu v UML. V reflexivní asociaci mohou být instance stejné třídy vzájemně propojeny. O instanci třídy se také říká, že je objektem.

Reflexní přidružení uvádí, že v rámci objektů stejné třídy může být přítomen odkaz nebo spojení.

Příklad:

Podívejme se na příklad ovoce třídy.

Třída ovoce má dvě instance, například mango a jablko. Reflexní asociace uvádí, že spojení mezi mangem a jablkem může být přítomno, protože se jedná o případy stejné třídy, jako je ovoce.

Reflexivní asociace
Reflexivní asociace

Řízené sdružení

Jak název napovídá, řízená asociace souvisí se směrem toku v rámci asociačních tříd.

V řízené asociaci je tok řízen. Přidružení z jedné třídy do jiné třídy proudí pouze jedním směrem.

Označuje se plnou čarou se šipkou.

Příklad přidružení UML:

Můžete říci, že mezi serverem a klientem existuje řízený asociační vztah.

Server může zpracovávat požadavky klienta. Tento tok je jednosměrný a proudí pouze ze serveru ke klientovi. V rámci serverů a klientů systému tedy může být přítomen řízený asociační vztah.

Řízené sdružení

Řízené sdružení

Složení UML

Není to standard Vztah UML, ale stále se používá v různých aplikacích.

Složená agregace je podtypem agregačního vztahu s charakteristikami jako:

  • Jedná se o obousměrnou asociaci mezi objekty.
  • Je to vztah celek/část.
  • Pokud je kompozit odstraněn, jsou odstraněny všechny ostatní díly, které jsou k němu přidruženy.

Kompozitní agregace je popsána jako binární asociace zdobená vyplněným černým diamantem na agregovaném (celém) konci.

Složení UML

Složka může obsahovat mnoho souborů, přičemž každý soubor má přesně jednu nadřazenou složku. Pokud je složka odstraněna, jsou odstraněny i všechny obsažené soubory.

Ve složené agregaci může být objekt současně součástí pouze jednoho kompozitu.

Příklad složení UML:

Například v okenním systému patří rám přesně jednomu oknu. V kompozitní agregaci je za dispozice svých částí zodpovědný celý systém, což znamená, že kompozit musí řídit vytváření a ničení svých částí.

Složení UML

Složení

Agregace UML

Agregace je podtypem asociačního vztahu v UML. Agregace a kompozice jsou oba typy asociačních vztahů v UML. Agregační vztah lze popsat jednoduchými slovy jako „objekt jedné třídy může vlastnit objekty jiné třídy nebo k nim přistupovat“.

V agregačním vztahu zůstává závislý objekt v rozsahu vztahu, i když je zdrojový objekt zničen.

Příklad agregace UML:

Vezměme si příklad auta a kola.

Auto potřebuje kolo, aby správně fungovalo, ale kolo ne vždy potřebuje auto. Může být také použit na kole, jízdním kole nebo jiných vozidlech, ale ne na konkrétním vozidle. Zde má objekt kola smysl i bez objektu auta. Takový typ vztahu se nazývá UML agregační vztah.

UML agregační vztah

Agregace

Asociace vs. Agregace vs. Složení

Sdružení Agregace Složení
Vztah asociace je označen pomocí šipky. Agregační vztah je označen pomocí přímky s prázdnou šipkou na jednom konci. Kompoziční vztah je označen pomocí přímky s plnou šipkou na kterémkoli z konců.
Asociace může existovat mezi dvěma nebo více třídami v UML. Agregace je součástí asociačního vztahu. Kompozice je součástí asociačního vztahu.
Mezi asociačními třídami může být přítomna asociace jedna-jedna, jedna-mnoho, mnoho-jedna a mnoho-mnoho. Agregace je považována za slabý typ asociace. Kompozice je považována za silný typ asociace.
Ve vztahu asociace může být jeden nebo více objektů vzájemně spojeno. V agregačním vztahu mohou objekty, které jsou vzájemně spojeny, zůstat v rozsahu systému jeden bez druhého. Ve vztahu kompozice nemohou objekty, které jsou vzájemně spojeny, zůstat v rozsahu jeden bez druhého.
Objekty jsou vzájemně propojeny. Propojené objekty nejsou závislé na druhém objektu. Objekty jsou na sobě velmi závislé.
V UML Association může odstranění jednoho prvku ovlivnit jiný přidružený prvek, ale také nemusí. V agregaci UML neovlivní odstranění jednoho prvku jiný přidružený prvek. V UML Composition ovlivní odstranění jednoho prvku jiný přidružený prvek.
Příklad:
Učitel je spojen s více studenty.
Or
učitel dává studentům pokyny.
Příklad:
Auto potřebuje kolo, ale ne vždy vyžaduje stejné kolo. Auto může adekvátně fungovat i s jiným kolem.
Příklad:
Do složky je umístěn soubor. Pokud smažete složku, odstraní se i soubor přidružený k dané složce.

Shrnutí

  • Vztah je spojení mezi věcmi.
  • Asociace, závislost, zobecnění a realizace jsou různé vztahy poskytované UML.
  • Kromě standardních vztahů se uvnitř UML používá kompozice a agregace.
  • Agregace a kompozice jsou oba typy asociačních vztahů v UML.
  • Složení UML je obousměrný vztah, který se také nazývá binární vztah.

Podívejte se na náš článek o nejlepších nástrojích UML: - Klikněte zde