I diagramy nasazení jsou abstrakcí reality

Mnozí uživatelé UML chápou velmi dobře a víceméně intuitivně, že jejich diagramy (modely) jsou ve skutečnosti jen abstrakcí reálného světa a že nelze zachytit vše. A ani to nezkoušejí. Ovšem leckdy to celé vezme za své, jakmile se pustí do diagramu nasazení.

Mají totiž pocit, že to je přesně ten bod, kdy se abstrakce setkává s realitou, a tedy je třeba zaznamenat vše. Jenže to opravdu nemá smysl. Proč modelují počítač na úroveň hardisku a paměti, když chtějí pouze ukázat, že aplikace má běžet na počítači s nějakými minimálními požadavky? Proč modelují USB konektor a ovladač tiskárny, aby ukázali propojení s tiskárnou ve chvíli, kdy chtějí jen říct, že jejich aplikace tiskne daňové doklady?

Ukažme si jednoduchý příklad, který zkusí abstrakci zachovat.

Na následujícím obrázku je Raspberry Pi 3 v malinově-bílé krabičce. Pomocí kabelů je propojena nepájivá deska s GPIO piny. Má diody, A/D převodník, rezistory, čidlo teploty a vlhkosti a mnohé další. Na základní desku je dále připojena kamera. To celé je pak pomocí WiFi připojeno do lokální sítě a poté do Internetu.

MalinaRealita

Na „malině“ běží skript, který sbírá aktuální teplotu a vlhkost a výsledky posílá do světa, kde to ukládá, nebo to zobrazí na obrazovce terminálu.

MalinaTeplotaTerminal

Jak to zaznamenat v UML, abychom se nezbláznili? Inu, těch prvků není třeba mít příliš mnoho:

PříkladRaspberryPi

Všimněte si, že v diagramu není kamera, A/D převodník, dioda a mnohé další. Ono to totiž pro tento případ není důležité, a tak to nezobrazuji. Stejně tak není uvedeno přesné zapojení na konkrétní pin GPIO. Opět, není to pro uvedenou situaci důležité.

Máte jiný názor? Sem s ním.

Rubriky: Nezařazené | Štítky: , | 4 komentáře

OCUP 2 Intermediate beta – 247 otázek, 3,5 hodiny pekla

Ve středu jsem si prošel všech 247 otázek, co byly připraveny pro beta verzi zkoušky OCUP 2 Intermediate. Vyhodnocení má být na přelomu září a října, uvidíme, jak to dopadne. Snad dobře, mám z toho ovšem horší pocit, než z bety OCUP 2 Foundation.

Protože vím ještě o několika lidech, kteří se na betu teprve chystají (poslední zkoušky jsou kolem poloviny července), uvádím několik postřehů, co si ze zkoušky pamatuji. Nejprve obecné věci:

  1. Čtěte každé zadání pozorně. Ačkoliv na první pohled vypadá stejně jako to předchozí, často se liší v detailu.
  2. Pokud je zadání otázky dlouhé či diagram velký, přečtěte si nejprve text. Zjistíte, že pak nemusíte diagram studovat celý, ale veskrze pouze dva, tři elementy, až snad na jednu výjimku.
  3. Pokud se připravujete podle (zadání), děláte dobře. A až na pár drobností se vás optají na vše. Buďto přímo, nebo nepřímo.
  4. Pozor na to, kam klikáte. Ačkoliv máte pocit, že klikáte na prázdnou oblast, může to změnit již vybranou odpověď, aniž byste si toho všimli.
  5. Pokud neznáte odpověď nebo je zadání dlouhé, kašlete na to, označte si to vlaječkou a pokračujte dál. K otázce se vrátíte pohodlně na konci.

A nyní k UML:

  1. Musíte vědět, co to je jmenný prostor (namespace). Př.: Kolik vidíte na diagramu jmenných prostorů?
    JmenneProstory
  2. Na diagramech je použita notace typu „circle-plus“. Musíte vědět, co znamená.
  3. Dobře si natrénujte, co znamenají atributy násobnosti isOrdered a isUnique. Dobré je znát bag a výchozí hodnoty. Příklad: Máte klasických 52 hracích karet (2..10, J, Q, K, A, každou takovou ve dvou barvách a každou barvu ve dvou znacích – srdce, kára, piky, kříže). Hráč dostane náhodně do ruky sedm karet. Jaké hodnoty nabudou atributy isOrdered a isUnique?
  4. Usage a Abstraction – naučte se význam a jednotlivé stereotypy. Rozhodně se ptali na create, instantiate (ano, je zbytečné mít dva stereotypy víceméně pro totéž).
  5. ElementImport – kromě významu musíte znát i alias a viditelnost (access versus import). Příklad: Co je třeba udělat, abyste v třídě Circle mohli používat typ P2::Real, ale nazývat ho double?
    ElementImport
  6. Instance – Příklad: Až kolik různých instancí třídy Z může být přímo či nepřímo dostupných instanci třídy X2?
    Instance
  7. Packages: Mohou mít dva balíky na stejné úrovni stejné URI?
    PackagesAndURIs
  8. Dobře nastudujte syntaxi času a intervalu. Budete ji potřebovat u sekvenčních diagramů.
  9. Informační toky – vše. Drobný úvod do informačních toků najdete v mém článku. Příklad: dostanete diagram a máte jej zjednodušit nebo spočíst informační toky.
  10. Měli byste znát pojem compartment.
  11. Signály a receptory: test znalosti notace a názvu compartmentu, kam se receptory vkládají.
  12. Odvozené atributy (derived) – zápis plus to, zda musí či nemusí být readOnly a dále, zda musí mít zapsáno, jak je odvozeno.
  13. BNF notace – testují znalost – uvedou příklad a máte určit, který zápis tomu neodpovídá.
  14. OCL – měli byste pasivně znát.
  15. K čemu jsou dobré pre- a post-conditions? Kdo je vyhodnocuje a kdy? Co když jsou porušeny?
  16. Vlastnost jako memberEnd. Pozor na to, co znamená šipka a co malá černá tečka na konci asociace.
  17. Generalizační množiny – velmi dobře si zapamatujte klíčová slova a výchozí hodnoty atributů isDisjoint a isCovered. Samozřejmě včetně použití, na obojí je tam několik otázek.
  18. Diagramy vnitřních struktur (port je property, tedy nemůže implementovat rozhraní, leč ho poskytuje, co je part a co je property, jak vznikají instance), atribut isService a další.
  19. Diagramy nasazení: znalost a to včetně notací a deployment specification. Příklad: Kterým směrem vedou šipky a jakého jsou typu?
    DiagramNasazeni
  20. Základy chování:
    1. Typy událostí a jejich notace (at, when, after), event pooly, rozdíly mezi stavovým diagramem a ostatními chováními.
  21. Diagram aktivit:
    1. Dobře si prosvištěte pravidla strukturovaného uzlu a expansion region a různé notace téhož.
    2. Pozor na to, že inout parametr má dva aktivity parametry.
    3. Notace výjimky lezoucí z akce.
    4. Vstupní a výstupní piny bez příchozích resp. odchozích hran.
    5. Dobře se naučte streamování, AcceptCallAction a ReplyAction, rozdíl mezi CentralBufferNode a DataStoreNode.
    6. Přerušitelná oblast.
    7. Jeden znak pro Desicion a Merge plus jeden znak pro Fork a Join.
    8. Pravidla pro spuštění akce. Příklad: kdy začne akce?
      KdyZacneAkce
  22. Stavové diagramy – hodně dobře si zopakujte pravidla pro entry a exit chování. Dále pseudostavy entry a exit point. Měli byste vědět, že dva regiony téhož stavu běží nezávisle na sobě.
  23. Protokolární stavové diagramy – k čemu to je, notace přechodu. Vlastnictví s rozhraním.
  24. Sekvence:
    1. Pravidla pro fragmenty par, loop (pozor na podmínku s loopem), opt, alt, strict a to včetně toho, kolik může mít operandů.
    2. Interaction use.
    3. Brány.
    4. Ztracené a nalezené zprávy.
  25. Komunikační diagramy – oproti předpisu i znalost souběžného vykonávání.

Tolik ke zkoušce. Já byl po třech a půl hodinách vyflusaný a to jsem měl, tuším že, ještě hodinu k dobru. U dvou otázek jsem byl přesvědčený, že všechny odpovědi jsou špatně, u některých se hodně slovíčkařilo.

Pokud jste zkoušku již absolvovali, jaké z ní máte pocity vy? Co vám nesedlo nebo naopak vyhovovalo? Použijte komentáře.

Rubriky: Nezařazené | Štítky: , , | 3 komentáře

Vyhledávání diagramů v Aktivních diagramech

Našel jsem si v sobotu chvilku pro sebe a do Aktivních diagramů dodělal možnost vyhledávat diagram při vkládání nového diagramu. Záložka „Find a Diagram“ tedy konečně něco dělá:

VyhledavaniDiagramuZadat můžete přesný název nebo jeho část, rozlišovat nebo potlačit rozlišování velkých a malých písmen, a pokud i to je vám málo, jsou k dispozici regulární výrazy.

A to je vlastně vše. Drobnost, ale snad potěší.

Rozšíření si jako obvykle můžete stáhnout, případně si o něm přečíst jako o celku.

Rubriky: Nezařazené | Štítky: , , | Napsat komentář

Vývoj Aktivních diagramů není pasivní

I přes vánoční svátky se mi podařilo občas spustit Visual Studio, a tak mohu představit další novinku v Aktivních diagramech, kterou uživatelé chtěli.

Nečastějším požadavkem byla potřeba znát, zda diagram v dokumentu je či není vložen pomocí rozšíření Active Diagrams. Nyní není nic jednoduššího, než si zobrazit panel s informacemi o diagramu:

ActiveDiagramsTaskPanePokud je obrázek (diagram) v dokumentu označen a je vložen pomocí Active Diagrams, uvidíte základní data nejen o diagramu jako takovém, ale zvíte i datum vložení do dokumentu a poslední aktualizaci.

Okno s těmito informacemi se vyvolává na již známém místě – na záložce s doplňky. Ty jsou rozšířeny kromě jiného o zaškrtávací pole, které zobrazí nebo schová požadované informace.

AddonRibbonVer1_6Další dvě nová tlačítka pak slouží k:

  1. Spuštění Sparx Enterprise Architecta s repository připřazenou k dokumentu.
  2. Spuštění výchozího prohlížeče se stránkou produktu.

Rozšíření si jako obvykle můžete stáhnout, případně si o něm přečíst jako o celku.

 

Rubriky: Nezařazené | Štítky: , , | Napsat komentář

Aktivní diagramy vybírají diagram aktivněji

Tři týdne stačily k tomu, abych udělal novou verzi rozšíření Active Diagram. Dnes není sice novinek tolik, vlastně je jen jedna, ale o to zásadnější.

Pokud chcete vložit nový diagram, již nemusíte kopírovat GUID diagramu ze spuštěného Enterprise Architectu, ale Active Diagram zobrazí stromovou strukturu odpovídající Project Browseru.

Z připravované verze Active Diagrams

Nová verze Active Diagrams

V ní jsou pak vidět jednotlivé balíky (packages) a diagramy. Jakmile diagram vyberete, vloží se do dokumentu. Stará možnost zůstala zachována, najdete ji na třetí záložce daného dialogu (viz obrázek).

S tím souvisí i to, že bylo třeba aktualizovat i návodné video, takže pokud chcete vše vidět, pusťte si jej.

Rozšíření si jako obvykle můžete stáhnout, případně si o něm přečíst jako o celku.

Rubriky: Nezařazené | Štítky: , , | Napsat komentář

Enterprise Architect 12.1 je zklamání

Sparx ke konci listopadu vydal novou verzi svého nástroje. Vyzkoušel jsem čtyři novinky, kterými se chlubí, a musím se přiznat, že pro mě jsou zklamáním. Proč?

Automatické obarvování prvků na diagramu

To, že můžete automaticky měnit barvu obrysů a výplní prvků na diagramu, jsem tu již psal. Tehdy to bylo možné pomocí stereotypů. Nyní však Sparx (konečně) přišel na to, že by tak mohl činit i na základě legendy diagramu. Dosud jste totiž legendu mohli jen zobrazit, ale dobarvovat jste museli ručně.

Definice legendy není nijak strašná, ostatně mrkněte na obrázek. Vyberte filtr, zadejte podmínku a barvy a vše funguje.

DefiniceLegendy

Legend lze na jednom diagramu mít víc a zapínat je dle potřeby. Pokud byste chtěli použít dvě legendy na tutéž vlastnost (např. výplň), pak se bere v potaz Z-pořadí legend.

Potud to je víceméně fajn. Problém však nastává, když chcete diagram přenést např. do dokumentu či mailu a přitom nechcete přenášet i legendu (typicky v případě, kdy máte třeba deset diagramů, nemá smysl mít zobrazenou legendu na každém z nich). To však bohužel nejde – tedy, lze potlačit výběr a tisk, ale do dokumentace či do souboru nemáte šanci s tím něco udělat.

Info View

EA dokáže zobrazit další pohled na element a to jako tzv. informační náhled (Info View). Na obrázku vidíte, jak to může vypadat.

InfoView

Co mně na tom vadí?

  • Musím to nastavit pro každý prvek zvlášť. Čekal bych, že to bude možné nastavit i pro celý diagram.
  • Proč to není zobrazované jako další oblast (compartment)? Rád bych viděl jak atributy, tak i další informace.
  • Nefunguje na to výše zmíněné obarvování dle legendy.

Virtualizované zakončení konektorů

Tohle budete znát např. z UML standardu, kde se na některých diagramech objevuje vícekrát tatáž třída. Virtualizace spočívá v tom, že ona třída je v modelu pouze jednou, avšak na diagramu je použita vícekrát. Od verze 12.1 to umí u EA.

Na příkladu níže existují v modelu dvě třídy: Osoba a Adresa. Osoba díky asociacím pak má jednak trvalou adresu a jednak fakturační adresu. Díky virtualizaci zobrazím Adresu pomocí dvou prvků na diagramu.

Virtualizace

Netuším, jak moc tato funkčnost bude využívána, osobně si myslím, že spíše čtenáře diagramů mate.

Současné řešení v EA má však mnohá úskalí:

  • Špatně na to fungují poziční operace.
  • Nefunguje synchronizace tagových hodnot.
  • Nefunguje na to dobře změna barev dle legendy.
  • Když chci smazat virtuální element, zruší to celou vazbu. Čekal bych alespoň dotaz, zda zrušit pouze virtuální zakončení.
  • Atributy apod. si zobrazím pouze na jednom prvku.

Nápověda

Do předchozí verze byla nápověda v CHM formátu a dalo se v ní pěkně vyhledávat a číst. Dnes? Humus. Při stisku F1 se otevře okno internetového prohlížeče a máte k dispozici nějakou stránku. Vyhledávání je čaroprostá hrůza. Na webu a potažmo i v EA (viz obrázek). Jako kluci sorry, ale tohle mě opravdu vytočilo.

HledaniVNapovede

Závěr

Podle mého jde o jakési vlastnosti dodané vývojáři. Uživatel, který by rád nástroj používal, má tak smůlu. Snad se to co nejrychleji změní.

Rubriky: Nezařazené | Štítky: | Napsat komentář

Co se dělo, děje a zřejmě bude dít – revize roku 2015

Poslední zprávu o tom, na čem pracuji, jsem napsal v březnu a od té se pár věcí událo. Ne všechny sice souvisely s UML, ale život není jen čtení standardu. A jelikož se blíží konec roku, beru to i jako takový souhrn toho, co nejen mně přinesl rok 2015.

  1. Ta vůbec nejdůležitější zpráva: K mým dvěma klukům přibyl koncem října třetí. Má se k světu, (poloviční) bráškové ho přijali moc pěkně a prckova maminka je skvělá, takže v tomto ohledu je vše naprosto v pořádku.
  2. Změnil jsem zaměstnání. Do konce července jsem byl u jedné ze tří největších bank v ČR, nyní jsem se vrátil do telekomunikací, kde jsem předtím působil téměř osm let.
  3. A nyní zpět k UML. Jak jsem sliboval, začátkem října opravdu došlo ke spuštění UML testů. Ty samozřejmě fungují stále, 24 hodin denně, sedm dní v týdnu. Neváhejte, a pokud chcete, zjistěte si, jak na tom jste.
  4. Tento blok plně přešel pod novou doménu a pod nový webhosting C4. Zatím je vše v naprostém pořádku, nemám nic, co bych jim vytknul.
  5. Od března jsem také odškolil několik skupin lidí a to především přípravu pro certifikaci UML. K tomu je samozřejmě ještě školení nástroje Enterprise Architect, které si u mě můžete objednat napřímo nebo ve spolupráci s Anywherem, takže pokud dosud váháte, mrkněte se na uvedené odkazy.
  6. Naprogramoval jsem zbrusu nové rozšíření pro Word nazvané Active Diagrams. Slouží pro synchronizaci diagramů ve vašich dokumentech s modelem v Enterprise Architectu. Mrkněte se na zmíněné stránky, chcete-li se dozvědět více.
  7. Pokud se vrátím k prvnímu bodu, tak během dovolené po návratu z porodnice jsem si odskočil do certifikačního střediska a prošel si dvěma microsoftími MTA zkouškami 98-364 Database Fundamentals a 98-361 Software Development Fundamentals.  Potřeboval jsem si ověřit, že pořád ještě něčemu jinému než UML rozumím alespoň na základní úrovni. Ovšem testy mi připadly rozbité, z obou jsem měl naprosto stejný výsledek – 93 %.

Dosud jsem psal o tom, co jsem dokončil (ačkoliv třeba na rozšíření Active Diagrams pracuji průběžně i nadále a další verze bude s nejvyšší pravděpodobností již následující pondělí; následující obrázek je malé navnadění).

Z připravované verze Active Diagrams

Z připravované verze Active Diagrams

Co je však stále v přípravě?

  1. Především je to elektronické (distanční) školení certifikace UML a dále nástroje Sparx Enterprise Architect. Během tohoto roku jsem sice výrazně pokročil, ale v současné době pochybuji, že bude hotové ještě letos. Moc rád bych, aby bylo zkraje roku příštího. Pokud chcete, abych se tomu věnoval s větším zapálením, dejte mi vědět v komentářích nebo napište mail.
  2. Příprava k beta verzi certifikační zkoušce OCUP 2 Intermediate. Zde čekám na OMG, kdy konečně vypíše termíny. Měly být koncem letošního léta, ale pokud se moc nepletu, tak tu máme závěr podzimu a stále nic.
  3. Kontrola modelu v EA vůči UML standardu: Přiznám se, na tohle jsem od března ani nešáhl. Své programátorské potřeby jsem ukájel nad Active Diagrams především proto, že mi toto rozšíření chybělo mnohem více. Nadobro k ledu jsem to však rozhodně nedal.
  4. Školení na míru na příští rok. Pro jednoho klienta připravuji školení EA a UML na míru. Pro mě je vždy zajímavé sledovat potřeby různých firem a jejich využívání EA a UML. Nejenže naučím něco někoho jiného, ale sám načerpám nějakou tu inspiraci.

A to je víceméně vše. Z mého pohledu to rozhodně nebyl nudný rok.

Rubriky: Nezařazené | Štítky: , , , , , | Napsat komentář

První aktualizace aktivních diagramů

Po čtrnácti dnech přichází první aktualizace rozšíření Active Diagrams. Co přináší?

LinkWithEAPSince1.1

  • Nové: V dialogu pro zadání repository EA je v rozbalovacím seznamu možno vybrat až z deseti naposledy použitých repository, které jste za poslední dobu otevřeli v EA.
  • Nové: V dialogu pro zadání repository EA je tlačítko na procházení disků s možností vybrat souborovou repository (přípona .EAP).
  • Nové: Pokud uživatel již má v dokumentu nějaký diagram a snaží se změnit repository, je dotázán, zda to myslí vážně (typicky může přijít o možnost aktualizace již vložených diagramů).
  • Opraveno: Návodný text je u všech tlačítek na záložce s rozšířeními (stačí na ně najet myší).
  • Opraveno: Pokud uživatel vložil nějaký diagram a poté změnil repository, rozšíření se snažilo načítat diagramy z původního místa.

Jestliže jsou tyto změny přímo pro vás, můžete začít stahovat instalační soubor.

Rubriky: Nezařazené | Štítky: , , | Napsat komentář

Chcete mít aktivní UML diagramy i ve Wordu?

Občas chvíli trvá, než se z myšlenky stane hmatatelný výsledek. Mně se po mnoha letech podařilo dát dohromady vcelku jednoduchou věc: diagramy, které kopíruji z Enterprise Architecta do wordového dokumentu, tak se na stisk jednoho tlačítka v daném dokumentu samy aktualizují.

WordAddinEn

Toto přání jsem měl několik let, ovšem teprve minulý a tento měsíc jsem jej dokázal realizovat do podoby rozšíření pro Microsoft Word nazvané Active Diagrams.

To, jak to uživatelsky funguje, můžete vidět na videu níže. A pokud vás to zaujalo, tak můžete rovnou přejít na stránku, které je tomuto produktu věnována a to včetně možnosti stažení.

Budu rád, pokud vás zaujme a přijdete s dalšími možnostmi na vylepšení.

Rubriky: Nezařazené | Štítky: , , | 6 komentáře

Nerealizované požadavky

Na středeční snídani spojené s Enterprise Architectem jsme řešili mj. vyhledávání požadavků, které nejsou realizované, tedy takové, které nejsou cílem realizačního vztahu.

EA takovou možnost v základu nenabízí, ale není problém si ji poměrně jednoduše doplnit. Poslouží nám k tomu uživatelsky definované vyhledávání, základní znalost SQL a tabulky, které EA používá. Zde uvádím krok za krokem.

  1. Zvolte vyhledávání v modelu (Ctrl+F, menu Edit, položka Search in model).
  2. V prvním rozbalovacím seznamu vyberte My Searches.
  3. Z tlačítek více vpravo zvolte New Search.
  4. Vlastní vyhledáváníV nabídnutém okně zadejte název vašeho hledání (např. Nerealizované požadavky) a typ editoru vyberte SQL Editor.
  5. Nové vyhledáváníPo stisku tlačítka OK dostanete možnost zadat SQL dotaz, jednoduše tam vložte ten následující:
    select o.ea_guid AS CLASSGUID, Object_ID, Name, Alias, Stereotype, CreatedDate, ModifiedDate, Status
    from t_object o
    where object_type = "Requirement"
    and not exists (select 1
    from t_connector
    where end_object_id = o.object_id
    and connector_type = "Realisation")
  6. Dotaz uložte (ikona diskety) a hned můžete spusit (F5). Jestliže bude váš model vypadat např. takto (je to opravdu jen příklad, nic jiného za tím nehledejte): Požadavkyvýsledkem dotazu budou dva požadavky Requirement2 a Requirement4:Výsledek

A to je vlastně vše. Snad jen douškou upozorňuji na první sloupeček v SQL dotazu. Ve výsledné tabulce se sice nezobrazuje, ale způsobuje, že když v ní dvojitě kliknete na element, tak se automaticky zobrazí jeho vlastnosti.

Rubriky: Nezařazené | Štítky: | Napsat komentář