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.

Výměna zpráv (třída Message)

Messages

Výměna zpráv mezi časovými osami znamená, že se v účastnícím se elementu spustí chování. Běh (execution occurence) tohoto chování je znázorněn podélným obdélníkem na časové ose. Začátek a konec běhu chování je dáno výskytem událostí (event occurences). Jinými slovy odeslání zprávy způsobí začátek běhu chování a přijmutí návratové zprávy značí konec běhu chování.

Přenesení zprávy je zobrazeno šipkou.

V UML je definováno několik různých zpráv, přičemž rozdílnost je i v notaci.
Příklad: Notace pro předávání zpráv

Synchronní zpráva: volající čeká na návrat z volaného chování. Zobrazuje se nepřerušovanou linkou s uzavřenou šipkou. Tento návrat je signalizován návratovou zprávou. Ta je zobrazena čárkovanou linkou s otevřenou šipkou.

Asynchronní zpráva: volající nečeká na návrat z volaného chování, ale bez skrupulí pokračuje ve svém běhu. Zobrazuje se nepřerušovanou linkou s otevřenou šipkou.

Ztracená zpráva: je zobrazena nepřerušovanou linkou s otevřenou šipkou vedoucí do plného kolečka, které není spojeno s žádnou časovou osou. Odesílatel ztracené zprávy je známý, příjemce však nikoliv.

Nalezená zpráva: je zobrazena nepřerušovanou linkou s otevřenou šipkou vedoucí z plného kolečka, které není spojeno s žádnou časovou osou. Odesílatel ztracené zprávy není známý, příjemce však ano.

Vytvářející zpráva: je zpráva, která vytvoří novou instanci. Je zobrazována přerušovanou otevřenou šipkou, která ukazuje do obdélníku čáry života objektu.

Ztracené a nalezené zprávy hrají specifickou roli v sekvencích interakce. Jedna událost daného typu chybí: příjem v případě ztracené zprávy a odeslání v případě nalezené zprávy.

Vlastní zpráva je pak zobrazena u šipky. Syntaxe je následující:

[atribut =] název [(parametry)][: návratová hodnota]|‘*‘

Atribut je lokální proměnná interakce nebo instance časové osy. Atribut je používán pouze pro syn-chronní zprávy s návratovou hodnotou.

Název je název volané zprávy nebo odeslaného signálu. Odesílání signálu je vždy asynchronní.

Parametry je seznam hodnot parametrů oddělených čárkou. Tyto parametry jsou zprávou přenášeny. Syntaxe parametrů je následující:

[parametr=]hodnota

Nebo

Atribut=výstupní parametr[: výstupní hodnota]

Nebo

‘-‘

Pomlčka se používá v případě, že hodnota je neznámá nebo když v dané interakci nemá žádný význam.

Notace s výstupním parametrem je používána pro parametry typu out, inout a return.

Název parametru může být použit volitelně pro lepší čitelnost diagramu.

Příklady:

vypiš (8, 12, -, „Ahoj“)
čistáMzda = spočtiČistouMzdu (hrubáMzda = 24500, početDětí = 2, -, -, -)

Namísto zprávy lze uvést hvězdičku, což je zástupný znak pro libovolnou zprávu.

Podobně jako je možnost objekt vytvořit (object construction), tak jej lze i zrušit (object destruction). Zrušení objektu je zobrazeno křížkem na konci časové osy.

Kniha [ocup-cg] říká, že v UML se mluví o speciální události typu Stop (viz třída Stop jakožto specializace třídy EventOccurence). Opět jsem proti tomuto tvrzení. Jednak nejde o třídu Stop, ale o třídu DestructionEvent a jednak jeden o specializaci třídy EventOccurence, ale Event. Zde však již kniha napůl chlapácky přiznává, že při zkoušce se namísto třídy Stop může mluvit o třídě DestructionEvent. Jak uvádí, je to totéž, v návrhu UML 2.0 se totiž pracovalo s tímto názvem.
Příklad: Zrušení objektu

Odeslání, stejně tak jako příjem zprávy, je událost (viz metamodel pro zprávy). Tyto události jsou používány k definování sémantiky interakce, která může být popsána dvěma množinami.

Třída GeneralOrdering

V knize GC se dále popisuje třída GeneralOrdering, ale ta dle současného seznamu není součástí zkoušky.

Třída GeneralOrdering slouží k ovlivnění pořadí událostí. Jedná se o vztah mezi dvěma událostmi, které jsou takto vloženy do sekvence. Tato vazba je zobrazena tečkovanou linkou s černým trojúhelníčkem uprostřed této linky, který určuje směr mezi dvěma událostmi. Směr trojúhelníku je od dřívější k následující události.
Příklad: General Ordering

Třída StateInvariant

Výměna zpráv může způsobit změnu stavu objektu, což lze zaznamenat pomocí tvz. state invariant. Třída StateInvariant je zobrazena stavem na časové ose nebo přímo omezením nebo omezením v poznámkové notaci.
Příklad: Invarianty

State invariant je vyhodnocen těsně před výskytem další události. State invariant musí být pro sekvenci platný.

Žá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.