Pravidlo 28: Kombinovaný fragment loop

předchozím příspěvku jsme hovořili o kombinovaných fragmentech, operandech a podmínkách. Přiznám se, že jsem jednu vlastnost zmíněné podmínky záměrně vynechal. Uschoval jsem si ji pro případ, kdy budeme hovořit o kombinovaném fragmentu typu loop.

Právě v případě tohoto fragmentu můžeme k podmínce přiřadit ještě dvě čísla, které určují minimální a maximální počet průběhů cyklu.

A pravidlo? To se jmenuje minint_maxint a říká, že minimum a maximum lze použít pouze a jenom u kombinovaného fragmentu loop. A abychom byli precizní, můžeme dodat ještě to, že minimální počet musí být větší roven nule (pravidlo minint_non_negative), totéž platí pro maximální počet (pravidlo maxint_positive). A konečně poslední pravidlo nařizuje, aby hodnota minimálního počtu byla menší rovna té maximální (maxint_greater_equal_minint).

Předchozí příklad patří mezi rodičovskou klasiku, kdy potomek dostane nějaký pokyn s douškou, že mu to rodič nebude opakovat stokrát. Jak je to tedy sémanticky provedeno v tomto případě? Kombinovaný fragment nejprve bez ohledu na podmínku vykoná minimum počet iterací (zde tedy nulakrát). A poté provádí iterace až do horní hranice, ovšem pouze v případě, že podmínka nabývá hodnoty false. Jakmile vyhodnocení podmínky bude true, cyklus je ukončen.

Co na to Sparx EA?

Tady je třeba si pobrečet trošku více – Sparx EA neumožňuje legálně dolní a horní hranici zadat. V uvedených příkladech, byť jsou zakreslené v EA, bylo použito podvodu.

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.

Buďte první kdo přidá komentář

Napište komentář

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


*