Pravidlo 4: Násobnost, díl 1.

Násobnost (prvek Multiplicity) je takovým zvláštním jevem. Je využívaná opravdu často, přitom jsem ji dosud neviděl použít špatně. A to je co říct, protože si s ní můžeme nepěkně vyhrát.
Jistě víte, že násobnost nám určuje minimální a maximální povolený počet hodnot např. v atributu.

Z tohoto důvodu jsou některá pravidla naprosto jasná:

  • Horní hranice musí být větší nebo rovna menší (upper_ge_lower).
  • Dolní hranice musí být větší nebo rovna nule (lower_ge_0).
  • Dolní i horní hranice je celé číslo (lower_is_integer a upper_is_unlimitedNatural).
Správně použitá násobnost

Zabředneme-li do UML poněkud více, zjistíme, že dolní a horní hranice je ve skutečnosti specifikace hodnoty (prvek ValueSpecification). Díky tomu můžeme hodnotu specifikovat nejen konkrétním číslem, jak téměř vždy činíme, ale i výrazem, a ne nutně matematickým. Tento výraz musí být
vyhodnotitelný jako celé číslo. Následující násobnosti jsou tedy podle UML zcela v pořádku:

  • 1+4..11-2
  • round(sin(0))..round(cos(0))
  • jedna..pět

Ovšem zde odkazuji na slova zapsaná kurzívou v prvním odstavci. Tohle je opravdu jen na hraní, v praxi bychom měli zůstal u použití střízlivější formy.

Co na to Sparx EA?

Bohužel nic. V něm klidně můžete zapsat násobnost -8..-3,14 a nepřijde mu to divné. Na druhou stranu vám umožňuje definovat si nejčastěji používané násobnosti a ty pak při zadávání používat (viz záložka Configure, tlačítko UML types a v daném dialogu položka Cardinality Values).

Nesprávně použitá násobnost
Nastavení často používaných násobností

Douška

Celý seriál 30 pravidel UML byl revidován, upraven a knižně vydán. Pokud jej chcete mít k dispozici v papírové podobě, navštivte stránky nakladatelství Elebedial.

 

About Slávek Rydval 134 Článků
Slávek Rydval začínal jako programátor, ale postupem času se dostal k návrhu softwaru, posléze k integrační architektuře a v současní době pracuje jednak jako architekt řešení a jednak jako školitel UML (základů i příprav k certifikační zkoušce OCUP 2) a nástroje Sparx Enterprise Architect. S UML přišel do styku již na univerzitě, ale opravdu intenzivně se mu věnuje posledních deset let. Na programování však nezanevřel a občas pár řádek kódu napíše.

2 Comments

  1. Navíc Enterprise Architect používá v okně chybné označení Cardinality namísto Multiplicity.
    viz [UML 2.5.1] – page 33, 7.5.3.2 Multiplicities
    „The multiplicity is a constraint on the cardinality, which shall not be less than the lower bound and not greater than the upper bound specified for the Multiplicity …“

    Přitom při zadávání na koncích asociace, nebo v atributech termín Multiplicity používají.
    Upozorňoval jsem je na to už 2 roky zpět, sdělili mi, že to měnit nemají v úmyslu.

    Děkuji za vynikající seriál.
    Sam F. Polívka

    • Ano, je to jedna z mnoha nekonzistencí nástroje. Je smutné, že to nechtějí upravit, přitom v testu úrovně Intermediate na znalosti UML se na rozdíl mezi kardinalitou a násobností ptají (zjednodušeně řečeno, násobnost je množina povolených kardinalit).

Napište komentář

Vaše e-mailová adresa nebude zveřejněna.


*