UPOZORNĚNÍ

Zkoušky OCUP Fundamental a OCUP Intermediate již není možné absolvovat. Nově jsou k dispozici OCUP 2 Foundation a OCUP 2 Intermediate. Texty uvedené na těchto neodpovídají plně novým zkouškám. Aktuální text najdete na nových stránkách.

Testy znalostí UML

Chcete si kdykoliv před, při nebo po čtení těchto stránek udělat test znalostí UML? Máte možnost absolvovat takový, který připravil autor těchto stránek. Vše podstatné najdete na http://www.kurzy-uml.cz.

Akce instancí asociací (Link Actions)

Metamodel: Write Link Actions
Metamodel: Read Link Actions
Metamodel: Link Identification
Akce asociací instancí (neboli linků) jsou určeny pro vytváření, rušení a modifikaci linků. Základní (a abstraktní) třídou je LinkAction, která umí využívat objekty na konci asociace (viz dále).

Linky však nejsou objekty, které je možné poskytnout akci na vstupním pinu, je nutné je identifikovat jiným způsobem. K tomu nám však nestačí pouze stav nějakého objektu, protože ten může být např. propojen s jiným objektem více linky. Pro jednoznačnou identifikaci linků proto UML zavádí metatřídu LinkEndData. Jak vyplývá z modelu, nejde o akci, ale přímou specializaci třídy Kernel::Element. Typ objektu na konci linku je pak určen díky asociaci na třídu Kernel::Property. Podle n-árnosti asociace pak má LinkAction minimálně dvě instance specializace třídy LinkEndData.

Třída ReadLinkAction je akce, která vrací objekt přiřazený konci linku. Který konec je zvolený, je dáno vstupním pinem, na kterém je objekt typu LinkEndData. Na výstupním pinu je umístěn požadovaný objekt. Notace je dána třídou Action.

Třída WriteLinkAction je abstraktní metatřída pro vytvoření či zrušení linku. Vytvoření linku pak prování třída CreateLinkAction. Ta může vytvořit nejenom link, ale i instanci asociační třídy (asociační třída je pak předmětem poslední úrovně certifikace znalostí UML). Pro svou činnost vyžaduje informace od třídy LinkEndCreationData (která je specializací již zmíněné třídy LinkEndData). Ta svým atributem isReplaceAll určuje, jakým způsobem k vytvoření dojde. Vstupním pinem pak lze určit umístění, kam link vložit (viz roli insertAt v asociaci se vstupním pinem). Notace je dána třídou Action.

Pro zrušení linku je využívána akce DestroyLinkAction. Pro určení linku je použita třída LinkEndDestructionData (která je opět specializací již zmíněné třídy LinkEndData). Ta poskytuje atribut isDestroyDuplicates, kterým lze řídit způsob rušení linků. Pomocí vstupního pinu pak můžete určit umístění rušeného linku. Opět, notace je dána třídou Action.

Poslední akcí, která ale není specializací třídy LinkAction, nýbrž přímo třídy Action, je ClearAssociationAction. Ta ruší všechny linky dané asociace a objektu na vstupním pinu. Jde o podobnou funkcionalitu jako u třídy ClearStructuralFeatureAction (tj. jedna atomická operace rušící všechny linky). Notace je dána třídou Action.

Žádné komentáře:

Okomentovat

Líbila se vám právě přečtená kapitola?

Líbil se vám článek? Přinesl vám užitek? Pokud ano, můžete mi zaslat pár drobných, čímž jednak dáte najevo, že se vám tu opravdu líbilo, a jednak mi ukážete, že má práce není zbytečná. Informace o darovací platbě zde.