Příprava k OCUP Intermediate již dostupná

Během závěrečných hodin posledního červnového dne se mi podařilo dát na http://www.ocup.cz veškerou mou přípravu ke zkoušce OCUP Intermediate. Nyní tam tedy můžete nasávat znalosti hned pro dvě úrovně.

Připomínám, že byť je to postavené na Bloggeru, tak se to celé chová jako kniha a jednotlivé kapitoly tudíž naleznete v druhé části. Doporučuji se na ně dostavit pomocí obsahu.

Tištěná podoba webu bude také. V průběhu příštího týdne ji zašlu k tisku a k dispozici bude v druhé půli července.

Pokud se ptáte, zda bude někdy i třetí, poslední část, tak si stále myslím, že ano. Je možné, že se na ni začnu připravovat ještě letos o prázdninách (ano, záměrně nepíši o kterých).

Kritika otázek ve zkoušce OMG-OCUP-200

Po dnešku mám úspěšně za sebou zkoušku OMG-OCUP-200, tj. úroveň Intermediate. Musím říct, že ačkoliv jsem měl ze 70 možných otázek 67 správně, jsem z toho trošku rozladěný. V testu se objevovaly otázky např. na stavový automat protokolu (má se zkoušet až na úrovni Advanced) nebo se používaly termíny, které sice byly v návrhu UML verze 2.0, ale pak byly přejmenovány či vynechány (pamatuji si otázku na jakousi akci ApplyFunctionAction, která v současné verzi UML vůbec není).

Většinu z toho šlo odvodit logicky, ale přesto pachuť odfláknutí ze strany OMG zůstává. Skoro 7000 Kč za zkoušku není žádná láce, tak by se ta skupinka akademiků měla sakra starat o to, aby tato investice měla řádnou hodnotu.

Export a import RTF šablony pro generování dokumentace

Převedení vámi vytvořené šablony RTF reportu z jednoho projektu (EAP soubor) do druhého je poměrně jednoduchý krok, ale je třeba vědět, kam šáhnout.

Export šablony

  1. Možnost uložení šablony na disk mnoho uživatelů Enterprise Architecta hledá v dialogu Generate Documentation (ukážeme si záhy) nebo v editoru šablony. Tam však hledají marně. Je třeba si nalézt dialog Export Reference Data. Ten zobrazíte z menu ProjectModel Import/Export díky položce Export Reference Data… (pozor na to, že v dřívějších verzích EA zmíněnou položku najdete v menu Tools)
  2. V tomto dialogu najděte položku Templates – RTF Document a označte ji.
  3. Stiskněte tlačítko Export.
  4. EA se vás zeptá na soubor, do kterého budou uloženy všechny vaše uživatelské RTF šablony.
  5. Předpokládejme, že se vše povedlo, EA vám to dá na vědomí.
  6. Jestliže nechcete předávat všechny šablony, ale jen některé, pak je třeba vygenerovaný soubor upravit. Jde o XML formát, takže úprava bude jednoduchá: Smažte všechny elementy <DataRow>, které neobsahují potřebné šablony (hledejte dle názvu šablony v atributu value elementu <Column> názvu DocName (příklad: <Column name=“DocName“ value=“My template for Requirements“/>).

Import šablony

Importovat šablonu lze dvěma způsoby:

  1. Importem referenčních dat
    1. V menu ProjectModel Import/Export zvolte položku Import reference data… Zobrazí se dialog podobný tomuto:
    2. Zadejte soubor, který jste získali při exportu.
    3. Po načtení se zobrazí hlavní části ze souboru, označte (v tomto případě jedinou) položku Templates – RTF document.
    4. Stiskněte tlačítko Import.
    5. O úspěšném importu jste informování.
  2. Importem šablony
    1. Z menu ProjectDocumentation vyberte položku Rich Text Format (RTF) Report… (případně stiskněte F8), zobrazí se dialog Generate Documentation.
    2. Přepněte se na záložku Templates
    3. Tam zvolte tlačítko Import From Reference File.
    4. Zobrazí se dialog stejný jako v předchozím postupu, použijte ho tedy.
    5. V seznamu šablon se pak zobrazí všechny nově importované šablony.

Poznámka: Postup a obrázky odpovídají EA verze 9.3.933.

OCUP Intermediate

Pomalu se chýlí ke konci můj text k přípravě na zkoušku OCUP úrovně Intermediate. Již jsem aktualizoval obsah a jako ochutnávku dal na web notační plachty. Ke zveřejnění chybí již jen pár kroků:

  1. Ještě jednou si to celé přečíst a opravit nedostatky.
  2. Udělat zkoušku.
  3. Připsat pár otázek pro představu, co vás čeká.
  4. Překlopit text z Wordu sem na stránky.

 Minimálně první dva body budou provedeny teď v červnu, další dva buďto také nebo v první půli července.

Poznámka ke kompozitním diagramům v EA

Při psaní textu k certifikaci OCUP úrovně Intermediate a dělání příkladů v Enterprise Architectu jsem našel pár nedostatků tohoto nástroje. Pokud budete modelovat kompozitní strukturu v EA, pak narazíte na tyto problémy (platí pro EA verzi 9.2 build 922 a zřejmě i nižší):

  • Pokud má část pouze název, nezapisuje za něj dvojtečku.
  • Neumí zakreslit násobnost části do pravého horního rohu.
  • Neumí zakreslit chovací port (isBehavior = True).
  • Nedobře pracuje s částmi a instancemi.

V daných příkladech jsem si tedy musel pomoci malým „podvodem“.

Test schopnosti UML nástrojů pracovat s XMI

OMG nedávno provedla test vybraných nástrojů, ve kterém se zaměřila na jejich schopnost pracovat se standardizovaným formátem pro výměnu dat mezi modely (XMI). Celkem se provedlo na 16 testových scénářů v aplikacích firem Atego, IBM, NoMagic, Sodius, SOFTEAM a Sparx Systems (poslední jmenovaný dodává mnou používaný Enterprise Architect).

Předseda skupiny, která se formátem pro výměnu dat zabývá, mj. prohlásil: The ability to interchange models offers the potential to significantly improve productivity, quality, and the long term retention of models. Volně přeloženo s přihlédnutím mezi řádky: test dopadl katastrofálně. Výrobci musí vyvinout ještě mnoho úsilí, než dosáhnou uživateli požadovaného výsledku (totiž aby to fungovalo správně).

Ku dobru všech firem je ale nutné přičíst, že na testu spolupracovaly a všechny chyby, které se v průběhu testu našly, byly opraveny. Současně dodávané verze by tedy všemi scénáři nyní prošly bezchybně.

Důležitější je ale zřejmě ohlášení normativního XMI (Canonical XMI). XMI tak, jak je dnes definováno, nabízí poměrně dost volitelných možností, jak např. element či atribut zapsat. Proto vzniklo normativní XMI, které utahuje popuštěnou uzdu volnosti. Teď už jen, aby to všechny významné nástroje začaly plně podporovat.

Odkazy:

Změny v UML 2.4.1 oproti UML 2.3

V UML 2.4.1 ze srpna 2011 (betu 2.4 můžeme ignorovat) došlo k poměrně dosti změnám v diagramech. V mnoha se do diagramu přidaly (existující) třídy, takže je to obecně hůře čitelné a je třeba trávit více času nad jednotlivými diagramy. Obzvláště nečitelný je např. diagram strukturovaného uzlu (Activities::StructuredActivities). Připadne mi to značně kontraproduktivní. Opět uvádím změny především z Classes::Kernel.

  • Kapitola 7: Drobné změny v úvodní kapitole Reusing packages from UML 2 Infrastructure.
  • Kapitola 7: Změna v diagramu Expressions diagram of the Kernel package. Přibyla třída LiteralReal.
  • Kapitola 7: Změna v diagramu Classifiers diagram of the Kernel package. Jde především o pojmenování rolí tříd v asociacích.
  • Kapitola 7: Jinak zakreslen diagram Features diagram of the Kernel package. Jinak a mnohem hůř. Zobrazení několika tříd vícekrát „pro lepší čitelnost“ tu čitelnost naopak zhoršili. Navíc z obrázku vyhodili výčet ParameterDirectionKind a nedali nikam jinam. V textu knihy jsem jej v obrázku záměrně nechal. Dále zde není zakreslena třída ValueSpecification, která byla přesunuta do diagramu Operations diagram of the Kernel package.
  • Kapitola 7: Překreslen diagram Operations diagram of the Kernel package. Zásadní změna je v tom, že jsou zde více formalizované výchozí hodnoty všech atributů třídy Operation. Oproti předchozímu mi tento naopak připadne obsažnější než v předchozí verzi a to bez zhoršení čitelnosti.
  • Kapitola 7: Překreslen diagram Classes diagram of the Kernel package, přidání výchozích hodnot atributů tříd Property a Association.
  • Kapitola 7: V diagramu DataTypes diagram of the Kernel package přibyla vazba mezi třídami EnumerationLiteral a Enumeration
  • Kapitola 7: V diagramu The Packages diagram of the Kernel package došlo k pár drobným, nevýrazným změnám.
  • Kapitola 7: Překreslen diagram Contents of Dependency package. Jde ale o čuňárnu. V původních verzích bylo (zcela správně) používáno kvalifikovaných jmen u relevantních tříd. Dnes je tam pouze v závorce uvedeno, ze kterého balíku třída pochází. Není to dobrý příklad, jak kreslit diagramy podle UML. V textu používám lepší zápis. Jinak ale jde o zpřehlednění a při čtení se lépe hledají souvislosti. Vypadla (jen ze zápisu, nikoliv ze standardu) asociace mezi třídami NamedElement a Namespace.
  • Kapitola 7: Překreslen diagram Contents of Interfaces package.
  • Kapitola 7.3.38: Třída Package má nový atribut URI.
  • Kapitola 7.3.45: Třída Property má nový atribut isID.
  • Kapitola 7.3.55: Třída ValueSpecification má novou metoda realValue(). Ta souvisí s novou třídou LiteralReal.
  • Kapitola 7.3.39: Třída PackageableElement má opravenou výchozí hodnotu atributu visibility z false na public (původní hodnota byla chybou standardu).
  • Kapitola 7.3.29: Přibyla nová třída LiteralReal.
  • Až do UML 2.3 byla kapitola PrimitiveTypes součástí superstruktury. UML 2.4.1 ji však přesunulo do infrastruktury. Pro znalost primitivních datových typů je tedy třeba sáhnout do 13 kapitoly infrastruktury. Další novinkou v této oblasti je nový typ Real. V superstruktuře (balík Classes::Kernel) pak najdeme odpovídající třídu LiteralReal a dále novou motody třídy ValueSpecification nazvanou realValue().

Načtení standardu UML 2.4.1 do Enterprise Architecta 9.2

Jak jsem před pár dny slíbil, napsal jsem postup, jak si importovat UML standard 2.4.1 do Enterprise Architecta. Zde překládám všechny jeho kroky.

  1. Je nutné mít Enterprise Architect verze 9.2.
  2. Stáhněte si XMI podobu specifikace, konkrétně tyto soubory:
    1. PrimitiveTypes.xmi
    2. Infrastructure.xmi
    3. Superstructure.xmi
  3. V EA si zvolte balík, do kterého chcete standard importovat.
  4. V kontextovém menu balíku zvolte možnost Import Model from XMI…
  5. Zadejte soubor PrimitiveTypes.xmi (věcí v Options si všímat nemusíte, pokud si s tím chcete pohrát, můžete).
    Dialog Import Package from XMI
  6. Stiskněte tlačítko Import.
  7. Čekejte. Aplikace bude chvíli chroupat, během čehož vytvoří požadované elementy.
  8. Zopakujte kroky 5. až 7. pro soubory Infrastructure.xmi a Superstructure.xmi.
  9. Stiskněte tlačítko Close.

A je hotovo. Ve vybraném balíku máte tři další: PrimitiveTypes, InfrastructureLibrary a UML (což je superstruktura).

Importovaný UML standard

Co importem získáte? Budete mít v modelu všechny třídy včetně vazeb, jejich atributy a metody a umístění v balících. U atributů a metod dostanete krátký popis jejich významu.

Co naopak mít nebudete? Nedostanete hlavně diagramy. Pokud chcete i je, musí bohužel nastoupit ruční práce (ta vaše). Dále nebudete mít základní popis významu tříd, nebudou tam omezení a další.