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.

Vlastnosti, někdy též atributy (Properties)

Classes diagram of the Kernel package
Třída Property

Vlastnost (anglicky property, třída Property) je specializace strukturální vlastnosti (tedy třídy StructuralFeature).

Pokud je vlastnost vlastněna jiným klasifikátorem nežli asociací (přes ownedAttribute), nazýváme ji atributem. Je-li vlastnost vztažena k asociaci přes memberEnd, pak představuje zakončení asociace. V obou případech pak instance vlastnosti představuje hodnotu resp. kolekci hodnot vztažených k instanci jednoho typu (resp. více typů v případě ternární či vyšší asociaci).

Atribut je prvek, který je součástí každé instance třídy, ale je reprezentován pokaždé jinou hodnotou (vlastní instancí hodnoty). Atributy nemají svou vlastní identitu mimo objekt, jsou plně v područí objektu, jehož jsou součástí.

V UML 2 není rozdílu mezi vlastností třídy (atributu) a řiditelné (navigace) asociaci. To znamená, že následující dva zápisy mají shodný význam:

Příklad: Atribut versus řídící (navigable) asociace

Vlastnost (resp. StructuralFeature) je mimo jiné specializací násobnosti (třídy MultiplicityElement). Díky tomu lze určit rozsah (velikost kolekce). Typicky (a ve výchozím stavu) maximální hodnota je 1.

Atributy:
  • Aggregation: AggregationKind [1] – určuje typ agregace (výchozí hodnota je none)
  • /isComposite: Boolean [1] – říká, zda agregace je typu Composite.
  • isDerived: Boolean [1] – říká, zda je atribut odvozený. Výchozí hodnota je false.
  • isDerivedUnion: Boolean – říká, zda je atribut odvozená množina. Výchozí hodnota je false.
  • isReadOnly: Boolean – říká, zda je atribut pouze ke čtení. Výchozí hodnota je false.
  • isID: Boolean – říká, že atribut jednoznačně určuje instanci dané třídy. Výchozí hodnta je false.
Pokud je násobnost větší než 1, pak se jedná o množinu. Seřazenost (zděděný atribut isOrdered) a jedinečnost (zděděný atribut isUnique) dává celkem 4 možné typy množin:
  • isOrdered = false and isUnique = true Množina (výchozí)
  • isOrdered = true and isUnique = true Seřazená množina {ordered}
  • isOrdered = false and isUnique = false Bag {bag}
  • isOrdered = true and isUnique = false Sekvence {sequence}

Odvozené vlastnosti získávají svou hodnotu(y) výpočtem z jiných zdrojů informací. Odvozené vlastnosti jsou typicky určené pouze ke čtení.

Pokud je řiditelná (navigable) vlastnost pouze pro čtení, pak po prvním přiřazení hodnoty nemůže být změněna.

Notace

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

  • Viditelnost je dána výčtovým typem VisibilityKind.
  • / symbolizuje odvozená vlastnost.
  • Řetězec vlastností obsahuje modifikátory, které se na atribut aplikují:
    • {readonly} Vlastnost je pouze pro čtení.
    • {union} Vlastnost je sjednocení podmnožin.
    • {subset <property>} Vlastnost je podmnožina vlastnosti <property>.
    • {redefines <property>} Vlastnost je novou definicí vlastnosti <property> (přepsání dědičností).
    • {ordered}, {unordered} Seřazená, resp. neseřazená množina.
    • {unique}, {nonunique} nebo {bag} Množina obsahuje jedinečné prvky, resp. může obsahovat duplicity.
    • {sequence} Seřazený seznam (duplicity nejsou povoleny).
    • {composite} Vlastnost je kompozicí.
Výčtový typ AggregationKind

Výčtový typ AggregationKind určuje literály pro definici typu agregace vlastnosti (property). Na-bývá následujících hodnot:
  • none – vlastnost nemá žádnou agregaci.
  • shared – vlastnost má sdílenou agregaci.
  • composite – vlastnost má složenou agregaci, tedy např. že složený objekt je zodpovědný za existenci skládaných objektů.
 Přesnou sémantiku sdílené agregace určuje až ten, kdo tvoří model. Když už nic jiného, tak pro život si zapamatujte alespoň tuto zvýrazněnou větu. Jinak se můžete (a poměrně často) zamíchat do nesmyslných debat.

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