Když ve svých návrzích používáte generalizaci, pak tím tvoříte hierarchii. V drtivé většině objektově orientovaných jazycích může jeden prvek přímo specializovat pouze jeden obecnější prvek. V jazycích jako je C++ může jeden prvek specializovat více prvků najednou. A UML vícenásobnou dědičnost opravdu podporuje.

Je tu však pravidlo nazvané no_cycles_in_generalization, které je nutné dodržet. Již z významu generalizace je zřejmé, že nemůže vznikat mezi prvky generalizační smyčka (a to ani přímá, ani nepřímá).
Co na to Sparx EA?
EA sice při vhodném nastavení během vyváření vztahu upozorní na přímou vzájemnou generalizaci (přesto to lze obejít), ale nepřímé smyčky již dovolí. Následující generalizace jsou špatně, ale éáčko mi je dovolilo bez zaváhání vytvořit.

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.

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