Většina z nás asi bude souhlasit s tvrzením, že „jeden obrázek vydá za tisíc slov“. Zejména pokud se bavíme o takových věcech, jako je návrh softwarových systémů. Navzdory tomu bývám často svědkem dlouhých diskuzí nebo záplavy psaného textu o návrhu nějakého řešení – bez jediného načrtnutého modelu. Krom toho, že grafické zobrazení bývá výstižnější, nutí také autora zavádět jasné a stručné pojmy, kterými označuje jednotlivé prvky modelu – místo „užvaněného“ beletristického popisu v textu.
- Etablovaný modelovací jazyk
Když už se rozhodneme použít kreslenou formu pro vyjádření základních myšlenek, volíme buď nějakou intuitivní grafickou „notaci“ (obdélníček, spojovací čára/šipka apod.) nebo, v lepším případě, sáhneme po existujících standardních notacích pro modelování vlastností softwarových systémů. Nejznámějšími příklady modelovacích jazyků jsou UML či BMPN. Dovolím si tvrdit, že pro softwarového architekta je nejlepší použít ArchiMate®, který byl právě pro účel návrhu softwarové architektury vytvořen. Jako standardní modelovací jazyk si ArchiMate vybraly nejen mnohé velké komerční společnosti, ale např. také odbor Hlavního architekta eGovernmentu ČR.
S ArchiMate jsem se seznámil před pár lety a zpočátku jsem jej používal jen zřídka. Některé elementy tohoto jazyka je třeba si promyslet a vyzkoušet, než začneme mít jasno o vhodném použití. Postupně se ale ukáže, že vyjadřovací možnosti jsou opravdu široké a namodelovat lze spoustu užitečných věcí. Nyní už sahám k ArchiMate bez přemýšlení vždy, když potřebuji zachytit různé pohledy na systémy, o kterých diskutujeme. A musím přiznat – čím více jazyk poznávám, tím ho mám raději.
- Propojujme vrstvy – je to přehlednější
ArchiMate totiž umožňuje modelovat různé úrovně návrhu architektury: business pohled (procesy, funkce, role), aplikace (komponenty, rozhraní, služby), datové entity či infrastrukturu (počítače, sítě, systémový software). Ale k tomu také motivaci (cíle, požadavky, omezení) nebo realizační projekty (pracovní balíky, výstupy). A hlavně, což považuji na ArchiMate za vůbec nejzajímavější vlastnost, kterou ostatní modelovací jazyky příliš nepodporují: uvedené vrstvy se propojují mezi sebou, modely nejsou oddělené.
Typicky vazbami typu „něco je realizováno něčím“ (např. aplikace realizuje business funkci) nebo „něco je využíváno něčím“ (např. business proces využívá aplikační službu). To usnadňuje pochopení souvislostí mezi jednotlivými pohledy na architekturu. Aby se na první pohled odlišily jednotlivé logické vrstvy, definuje ArchiMate standardní barevné schéma (business vrstva žlutá, aplikační azurová, technologická zelená, požadavky fialová, projekty růžová). Pro konkrétní účely může ovšem autor obrázků barvy upravit, a tím podpořit myšlenku, kterou chce vyjádřit (např. barevně odlišit existující a plánované komponenty).
Modelování v ArchiMate podporují nástroje typu Enterprise Architect. Existuje také speciální modelovací nástroj Archi (https://www.archimatetool.com/), který je zaměřený pouze na ArchiMate. Kromě toho, že je jeho využívání zdarma, je jeho velkou výhodou výuková podpora – ke každému elementu je k dispozici vysvětlení, k čemu slouží a jak ho správně použít. Rovněž nepovoluje vytvářet vazby mezi prvky, které jsou v rozporu se specifikací jazyka ArchiMate.
- Ukázka konkrétního modelu
Abychom dodrželi zmíněný princip „jeden obrázek za tisíc slov“, uvádím ilustrativní příklad konkrétního modelu. Jeho tématem je architektura procesu přípravy tohoto článku. Což by mělo být pro každého pochopitelné bez nutnosti vysvětlovat věcné pozadí. Puristy dopředu upozorňuji na to, že daný obrázek nemá ambici být úplný. A také není jako grafický model ideální, protože obsahuje už příliš velké množství prvků, navíc „polepený“ bílými obdélníčky, které vysvětlují jednotlivé prvky jazyka. To může zhoršovat čitelnost pro málo zasvěceného čtenáře. Nicméně jako ukázka vyjadřovacích možností jazyka ArchiMate bude snad vyhovující.
A ještě drobná poznámka: Dopředu se omluvám těm, kteří jsou v použití ArchiMate lepší než já, pokud najdou v obrázku nějaké prohřešky proti specifikaci a správnému použití jazyka. Naopak budu rád, když mne na to upozorníte svým komentářem.