====== Tvorba modelu obecně ====== Obecně platné principy pro dobrý model jsou popsané níže. ^Princip ^Popis ^ |Buďte poctiví |Nazývejte každou věc z reality při jejím zachycování do modelu pravým jménem, vyhýbejte se opisům “úřednického newspeaku”. | |Buďte věrní |Usilujte o to, aby kterýkoli diagram, v jakékoli míře podrobnosti byl vždy co nejvěrnějším obrazem Vašeho porozumění realitě. To znamená v praxi mimo jiné používání prvků modelovacího jazyka pro to, pro co jsou určeny. Tedy aplikační komponenty pro aplikace a ne pro procesy, nenahrazovat business služby aplikacemi, dát si pozor na rozdíl mezi rolemi a aktéry atd. | |Buďte výstižní |Modelujte a popisujte realitu tak, aby bylo dodrženo pravidlo „Dokonalosti je dosaženo, když není co odebrat, ne když není co přidat“. Model by měl být tak jednoduchý, jak je možné, v kontextu očekávaných čtenářů a metodiky. Snažte se, aby model na dané úrovni detailu neobsahoval v jiné podobě stejné informace vícekrát. Informace se mohou opakovat při modelování stejné oblasti na nižší/vyšší úrovni detailu – jedná se o popis stejné části reality –, ale musí být poplatné dané úrovni detailu – viz další princip. | |Dávejte popis ke každému prvku |Ke každému prvku (strukturní prvky, element, vazba, pohled) vedle jeho názvu navíc doplňte vyčerpávající slovní popis (do příslušného pole – např. Note, Documentation apod.). Pomůže to čtenáři pochopit vaše myšlenky a dále zamezí možnosti nesprávného pochopení. Zejména u diagramů je vhodné čtenáři poskytnout popis jako průvodce zobrazenými elementy a vazbami, aby byly zřejmé prezentované myšlenky. Popisy také zvyšují hustotu informací ve výstupu z modelu a čtenáři pomáhají lépe pochopit kontext. | |Čleňte model dle úrovní detailu |Model by měl být členěn stejným způsobem přes celý rozsah modelované reality. Je vhodné definovat jasně úrovně detailu a ty dodržet. Např. L0, L1, L2, jak je popsané níže v této metodice (kap. 3.6.4). Nejvyšší úroveň by měla ukazovat celý rozsah modelované reality, detailnější úrovně se mohou zaměřit jen na zajímavé části. Lze využít hierarchického strukturování modelu v katalozích elementů a digramů zaměřených na danou úroveň detailu. To implicitně zlepšuje čtivost dokumentace z modelu, neboť jde přirozenou cestou od celku k detailům („top-down“). | |Buďte konzistentní a dodržujte standardy napříč modelem |Dodržujte stejný způsob popisu přes všechny části dané oblasti a úrovně detailu modelu. Významně to usnadní sdílení informací v modelu s ostatními, zastupitelnost modelářů a také to umožní formální kontrolu kvality modelu. Mezi důležitá rozhodnutí patří i jazyk, v němž bude model tvořen. Jakmile je potenciálně možné, že bude model tvořit a číst i cizojazyčný uživatel, zvažte tvorbu modelu v angličtině. V modelech pro státní správu dle NAR je čeština vždy primárním jazykem. | |Používejte správné prvky |Dobře rozmyslete, jaký typu elementu použijete pro uložení dané informace. Např. aplikační komponenty ať reprezentují aplikace a ne procesy, nenahrazujte business služby aplikacemi, rozlišujte mezi rolemi a aktéry atd. Buďte co nejlépe seznámení s modelovacím standardem (vč. metamodelu).\\ \\ Cílem je předejít duplikaci informací a mít informace uložené na očekávaných místech. | |Zaveďte a dodržujte jmenné konvence a identifikátory prvků modelu |Standardizaci, jednoznačnosti a pochopitelnosti pomáhá jednotný způsob označování prvků modelu a používání ustálených označení pro jednotlivé prvky. Jmenná konvence umožňuje zavést do názvu prvku doplňkové informace, které pak není třeba hledat v atributech prvku. Systém identifikátorů pak zajistí, že se lze na konkrétní prvek odkázat, aniž by bylo třeba vypisovat jeho celý název, či dokonce kontext. | |Modelování není programování |I když je samozřejmě vhodné maximálně využít možností nabízené metodikou či standardem, je nutné co nejvíce přiblížit výstup čtenáři. Sebelepší metodika nepokrývá všechny potřebné situace a informace, které v je v modelu nutné uvést. Proto v případě, že by forma informace v modelu byla na úkor pochopitelnosti, je možné volit náhradní (byť nekonfliktní) způsoby zanesení informace do modelu. Vždy je např. možné popsat potřebné detaily textově do popisu na daném místě. Na diagramy je možné doplnit doplňující poznámky přímo, pod elementy je možné přidat další vysvětlující diagramy, matice apod. Buďte v tomto kreativní a mějte na mysli pohodlí pro čtenáře, neboť bez čtenáře je model zbytečný. | |Počítejte s budoucím rozšířením modelu |Model strukturujte více robustně, než je aktuálně potřeba, abyste umožnili jeho snadné průběžné rozšiřování bez nutnosti refaktorování (změny struktury či formy). Je vhodné rozdělit modelovaný systém na moduly, které jsou stejným způsobem použity ve všech vrstvách/doménách modelu (nebo jsou alespoň konzistentní v rámci jedné vrstvy/domény). Tyto moduly pak slouží k logickému členění obsahu modelu a umožňují tvořit systematicky a jednoznačné identifikátory prvků. | |Přizpůsobujte výstupy pro konkrétní čtenáře |Při modelování je nutné myslet na čtenáře. Jednotlivé výstupy z modelu by měly být přizpůsobené čtenáři daného hlediska tak, aby dostal informaci, kterou potřebuje, ve formě, kterou snadno pochopí, ideálně v podobě uceleného příběhu. Je vhodné strukturovat model už s ohledem na způsob vytváření výstupů pro čtenáře (export modelu, generovaná dokumentace, ručně udržovaná dokumentace se vstupy z modelu apod.). Většinou je pro dosažení optimálního výsledku potřeba přizpůsobit strukturu modelu podle očekávané formy výstupu pro čtenáře. | |Ambici pro verzování modelu nastavte na začátku |Definujte si potřeby pro udržování časových řezů modelu. Přístupů a potřeb verzování je mnoho, od jedné verze po schopnost okamžitého pohledu do minulosti i budoucnosti. Pro dlouhodobou udržitelnost přehledu o verzích a platnosti obsahu modelu je zásadní si tuto ambici na začátku nastavit a podle toho pak nastavit proces tvorby a údržby modelu a výstupů. | |Automatizujte tvorbu výstupů |Je vhodné mít schopnost časté tvorby dohodnutých výstupů s co nejmenší námahou. Ideální je zcela automatizovaný způsob tvorby generování výstupů. To umožňuje iterativně ladit výstup v dané verzi do nejlepší kvality, eliminuje lidské chyby a také umožňuje snadno identifikovat rozdíly mezi verzemi. Při tvorbě šablon dbejte na to, aby výstup obsahoval co nejméně prázdného místa. Výstup tak bude působit mnohem kompaktněji a nebude mít tolik stránek, což je zásadní pro jeho čtivost. | |Zajistěte si podporu od organizace |Podpora se získá zejména tím, že výstupy architektů jsou vytvářeny tak, aby byly užitečné konkrétním lidem pro řešení jejich konkrétních problémů. Modelování na úrovni podnikové architektury vyžaduje získávání co nejpřesnějších informací prakticky od všech týmů v organizaci. Aby bylo možné tyto informace získat a ideálně znát i jejich očekávaný vývoj, je potřeba, aby stakeholdeři (majitelé těchto informací) věděli, že mají poskytnout součinnost a že to je pro ně přidaná hodnota. V budoucnu budou moci čerpat z modelu přesné a provázané informace v celofiremním kontextu. Podpora od organizace spočívá zejména v adopci týmu Enterprise architektury (EA) a jeho procesů do organizace, zejména na nejvyšších úrovních jejího řízení. Tým EA by měl být aktivní a snažit se být viditelný v příslušných diskusích. Dále je pro adopci výstupů EA dobré, když jsou přizpůsobené čtenářům (viz výše).| Výše popsané principy lze uplatnit na jednotlivé prvky modelu. Základními prvky modelu jsou elementy, vazby, atributy a pohledy. Dále je detailněji popsáno, které principy jsou na nich uplatněné a jakou jsou uplatněny formou. ===== Elementy ===== Element modelu reprezentuje jednu konkrétní část reality z pohledu její struktury či chování a popisuje její vlastnosti. Je to základní stavební prvek modelu. Při modelování elementů doporučujeme mít na paměti následující: ^Zvolit správný typ elementu |Respektovat kontext z hlediska metodiky (arch. doména, úroveň detailu) ^ |**Název** |Výstižný a co nejkratší | |**Jednoznačný identifikátor**|Zapadající do pravidel pro daný kontext (stereotyp, arch. doména, modul) | |**Dostatečný popis** |Popis významně pomůže pochopení významu elementu, a to nejen pro čtenáře, ale i pro modeláře. Popis např. umožní rozhodnout, zda je třeba zakládat nový element, či rozšířit působnost existujícího. | |**Relevantní pohledy** |Rozmyslete do jakých pohledů element patří přidat. Obvykle to definuje metodika a nástroj jej může do nich zahrnout automaticky na základě jeho umístění či stereotypu. Je ale vhodné se zamyslet, zda např. pro element nezaložit diagram ukazující kontext jeho použití pro lepší pochopení čtenářem. | |**Zanořování elementů** |V případě této metodiky je doporučeno vytvářet lineární seznamy položek pro snadnou katalogizaci. Pro vizuální zapouzdřování je vhodné používat diagramy (včetně elementů typu Boundary), případně korektní vazby a elementy držet uložené lineárně. Cílem je zajistit předvídatelný způsob evidence elementů ve struktuře modelu a podpořit jednotný způsob stavění výstupní dokumentace.| ===== Vazby ===== Propojuje elementy a říká jakým způsobem spolu dané elementy souvisejí. Pro vazbu jsou zásadní následující aspekty: ^Typ |Musí být v souladu s metamodelem příslušné arch. domény a úrovní detailu) ^ |**Název** |Zvážit, zda je třeba a neváhat jej doplnit, pokud to pomůže při čtení modelu na příslušných pohledech. U názvu je možné čtenáři indikovat směr čtení významu vazby mezi dvěma elementy. | |**Popis vazby** |Není na první pohled zásadní, ale může významně pomoci při určování opodstatněnosti nové vazby mezi stejnými elementy. U vhodně strukturovaných dokumentů popis vazby pomůže významně k pochopení myšlenek a informací v modelu.| |**Směrovost vazby** |Obvykle definovaná metodikou. Pozor na správný směr. | |**Vlastnosti koncových bodů vazby** |V případě datového modelování je velmi přínosné doplnit k danému koncovému bodu vazby. | ===== Atributy a doplňkové informace ===== Elementy, vazby i strukturní prvky v modelu mohou nést doplňkové informace, které je často vhodné držet ve strukturované podobě. Tyto údaje jsou označené jako atributy. Základními atributy jsou název a popis, k nim se ale přidávají další. Atributy lze roztřídit do skupin dle využití (profilů). ==== Základní atributy a jmenná konvence ==== Nejdůležitějšími a nejčastěji použitými atributy elementů i vazeb jsou název, popis a jednoznačný identifikátor. === Název === Název prvku by měl být lidsky čitelný, a proto je důležité zvolit vhodný jazyk. Dále by měl být co nejkratší a výstižný. Tato metodika v souladu s ArchiMate definuje pro jednotlivé typy elementů formu jakou by měl název mít: * Behaviorální elementy musí být nazývány průběhovým časem (musí být patrná činnost/chování) (na příklad "Poskytování katalogu služeb", "Editování údajů". "Prodej zboží"). * Pasivní elementy jsou nazývány podstatným jménem ("Dokument", "Faktura"). * Aktivní elementy jsou pojmenovány podstatným jménem ("Jan Novák", Oddělení fakturace, Zákon 111/2009 Sb.). === Technický identifikátor === Technický identifikátor slouží pro jednoznačné označení prvku modelu. Obvykle není využíván mimo technický kontext modelovacího nástroje. === Globální identifikátor === Pro účely jednoznačné identifikace prvku v rámci modelování celé státní správy je očekávané zavedení //globálního identifikátoru//. Globální identifikátor nenahrazuje technický identifikátor, jedná se o další údaj. Tento identifikátor by byl prvku přiřazován nejspíše po importu modelu úřadu do plánovaného centrálního úložiště. Atribut bude nutné u daného prvku udržovat i lokálně po opětovném přenosu z centrálního úložiště do místního modelu. Takto budou označené zejména všechny sdílené prvky modelů. ==== Klasifikační atributy ==== Důležitým obecným profilem je Klasifikace. Klasifikační atributy slouží k jednoznačnému zařazení prvku modelu v kontextu požadované struktury, určení a umístění v centrálním úložišti modelů DIA. Jsou obvykle realizované pomocí Tagů (záleží ale na nástroji). Klasifikační atributy jsou součástí metainformací o modelu (viz kap. Úrovně detailu). Klasifikační atributy přes všechny prvky modelů jsou uvedené v externím dokumentu.