Pravidelně potkávám uživatele Enterprise Architecta, kteří si myslí, že vše, co jim EA dovolí namodelovat, je podle pravidel definovaných standardem UML. Předvedu zde pár příkladů, které jsou v rozporu s uvedeným přesvědčením. Generalizace Jak jistě víte, tak generalizace je vztah mezi dvěma klasifikátory , přičemž jeden je specializací (resp. zobecněním) toho druhého. V omezení definovaném u klasifikátoru je jasně napsané, že generalizační hierarchie musí být acyklická. Jinými slovy např. třída nesmí být (přímo ani nepřímo) svým zobecněním. realtime Následující diagram je tedy proti pravidlům v UML:
Ano, obrázek je vytvořen v Enterprise Architektu. A to bez jeho protestů. Zkusme si model validovat (menu Project ► Model Validaton ► Validate Selected realtime ). Nástroj sice správně řekne, že nelze udělat generalizaci třídy sebe sama, ale o větší cykly se už nestará. Mylně tak lze dojít k závěru, že je to v pořádku.
Pojďme ale dále. Pro úplnost nutno dodat, že následující chyby již kontrola zabudovaná v EA neodhalí. Aktivity a akce Aktivity a akce jsou už průser přímo ve standardu. Koho mohlo napadnout, že základní notace těchto dvou elementů bude stejná? (Nejen) realtime kvůli tomu to uživatelé UML nerozlišují a flákají do modelu aktivity místo akcí poměrně často a značně svižně. realtime A Enterprise Architect je v tom podporuje. Znovu a znovu je třeba připomínat to, co vy již určitě víte: Aktivita řídí nějakou činnost pomocí množiny uzlů a hran. Uzly jsou (zjednodušeně řečeno) trojího typu: akce, objektové uzly a řídící uzly. Akce je dále nedělitelný krok, atomická operace (kterou může být např. volání jiné aktivity). To bychom měli aktivity a akce, ale ještě nekončíme. K dispozici standard nabízí hrany, které se dělí na řídící toky a objektové toky . V UML standardu se dozvíme, že hrana slouží pro předávání tokenů (a případně objektů) mezi uzly aktivity (tj. mezi uzly, které aktivita vlastní). Co nám dovolí udělat EA? Mít toky mezi aktivitami. Mít toky mezi uzly různých aktivit. Mít tok mezi aktivitou realtime a akcí. Vše je pochopitelně špatně, realtime ale EA nás na to neupozorní.
Takže ještě jednou: Akce je atomická operace. realtime Aktivita obsahuje uzly a hrany. Toky mezi uzly aktivity jsou pouze mezi uzly téže aktivity. Mezi aktivitami není žádný tok. Tohle ale často vede k otázce: realtime jak tedy zobrazit sled aktivit? Nebo volání aktivit? Budu se tím zabývat v některém z příštích článků. Další Enterprise Architekt umožňuje hřešit proti standardu i v mnoha dalších případech. Zde krátce vyjmenovávám jen některé hříchy, realtime při bližším studiu UML standardu a používání EA jistě najdete mnohé další: Vytvoření závislosti se šipkami na obou stranách či na žádné (správně je mít hrot šipky právě na jedné straně). Vytvoření informačního toku mimo povolené elementy. Špatná notace třídy GeneralOrdering (sekvenční diagramy). Špatná notace třídy Extension ( profily ). realtime Umožnění mít nepojmenovaného účastníka (třída Actor, diagram případů užití ). Neumožnění všech povolených notací (např. hran v diagramech aktivit nebo tagových hodnot).
Závěr Ukázal jsem několik důkazů, že Enterprise Architect NEPODPORUJE SPRÁVNĚ A ZCELA UML Standard . Nevěřte tedy autorům aplikace a naučte se UML používat správně. Nakonec nabízím malé domácí cvičení. Odpovědi, na které stačí základní znalosti UML , mi můžete poslat e-mailem. realtime Otázka č. 1 : Je následující diagram v pořádku nebo není? Proč?
EA je hodnocen jako nejlepší. Ostatní trpí/vynikají (nehodící se škrtni) vazbou na některou z metodik. Ovšem nástroj, který 100% podporuje UML, není. Už jenom proto, že například načíst do sebe definici UML bývá nemožné. A to je uložena ve formátu definovaném právě standardem. Odpovědět Vymazat
2013 (3) 10/13 - 10/20 (1) 04/14 - 04/21 (1) 02/24 - 03/03 (1) Hraje Enterprise realtime Architect podle pravidel standard... 2012 (22) 12/09 - 12/16 (2) 12/02 - 12/09 (1) 11/04 - 11/11 (2) 08/26 - 09/02 (1) 07/29 - 08/05 (1) 07/08 - 07/15 (2) 07/01 - 07/08 (2) 06/24 - 07/01 (1) 06/17 - 06/24 (1) 06/10 - 06/17 (1) 03/25 - 04/01 (1) 03/11 - 03/18 (1) 02/19 - 02/26 (1) 02/12 - 02/19 (1) 02/05 - 02/12 (1) 01/29 - 02/05 (3)
Enterprise Architect (14) Excel (1) IFML (1) Informační toky (1) kniha (1) Kompozitní diagramy (1) Nezařazeno (1) OCUP Intermediate (2) OCUP.cz (2) Požadavky realtime (2) Stereotypy (1) UML (6) UML 2.3 (1) UML 2.4.1 (2) UML 2.5 (1) UML standard (7) Word (1) XMI (1) Zkouška OCUP (2)
No comments:
Post a Comment