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.

Operace (Operations)

Operations diagram of the Kernel package
Třída Operation

Operace (třída Operation) je chovací vlastnost klasifikátoru, která je určena jménem, typem, parametry a omezeními pro volaní této operace.

Operace může mít podmínky, které musí být splněny před voláním (precondition), během běhu (body condition) a po ukončení volání (postcondition). Body condition lze definovat pouze pro operace typu dotaz (isQuery = true). postcondition a bodyCondition nemusí být splněny v případě, že operace vyvolá výjimku. bodyCondition vymezuje vracený výsledek. Rozdíl mezi bodyCondition a postcondition je v tom, že bodyCondition může být přepsána (override) při redefinici, kdežto postcondition mohou být pouze přidávány.

Atribut isQuery určuje, zda jde pouze o dotaz (true) či zda operace mění stav instance (false).

Operace smí mít pouze jeden návratový parametr.

Operace může mít návratový typ (asociace s třídou Type). Jedná se o odvozenou asociaci (očekávám, že je odvozena od parametru se směrem return).

Notace

[viditelnost] název (seznam_parametrů) [:návratový_typ] [násobnost] [řetězec_vlastností]

  • Viditelnost je dána výčtovým typem VisibilityKind.
  • Násobnost je násobnost návratového typu.
  • Řetězec vlastností je seznam vlastností (property) oddělených čárkou. Vlastnost může být jedna z následujících:
    • redefines <název_operátoru> – říká, že operace předefinuje operátor zadaného jména.
    • query – říká, že operátor nemění stav systému.
    • ordered – říká, že hodnota návratového typu je seřazena.
    • unique – říká, že hodnoty vrácené v návratovém parametru jsou jedinečné.
    • <omezení_operátoru> – omezení vztažené k operátoru.
  • Seznam parametrů – jednotlivé parametry jsou oddělené čárkou.

Parametr pak má tvar:

[směr] název: typ [násobnost] [=výchozí hodnota][{řetězec vlastností}]

  • Směr je dán výčtovým typem ParameterDirectionKind. Pokud není specifikováno, výchozí hodnota je in.
  • Řetězec vlastností určuje další vlastnosti parametru.
Zobrazení seznamu parametrů může být potlačeno.

Příklady

getWidth (return w: integer) {query}

+insertInvoiceItem (aInvoiceItem: InvoiceItem)

#deleteAllItems ()

-sumItems: integer

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