Urostlý Švéd
Než se pustíme do podrobnějšího popisu jednotlivých vlastností, měli bychom nástroj stručně představit. Telelogic Tau UML Suite je CASE nástroj podporující etapy objektové analýzy, návrhu a implementace SW/IS s využitím modelovacího jazyku UML.
Jedná se o nástroj víceuživatelský, což neznamená pouze to, že s informacemi uloženými v centrální repository může pracovat více uživatelů najednou, ale spolu s touto možností nabízí UML Suite i další prostředky pro efektivnější podporu týmové práce (viz dále).
Kromě nezbytné podpory UML je možné využít i původní notaci vycházející z metody OMT (Object Modelling Technique). Na poli CASE není Tau UML Suite žádným nováčkem, původní verze byly známy například pod názvy ObjectTeam (Cayenne Software) nebo COOL:Jex (Sterling Software). Nástroj nakonec zakotvil v přístavu švédské firmy Telelogic, která jej spolu s dalšími nástroji (např. DOORS) dále rozvíjí. Zatímco ještě relativně nedávno byly CASE nástroje hodnoceny především z hlediska podporovaných cílových prostředí programovacích jazyků nebo možnosti generování dokumentace, dnes se pozornost přesouvá směrem k vlastnostem, které výrazně usnadňují týmový vývoj a sdílení projektových informací v rámci vývojových skupin. Existuje-li nějaká oblast, v které je Tau UML Suite jako doma, pak je to právě podpora týmového vývoje.
Především tomuto tématu budou proto věnovány následující odstavce.
Víc hlav víc ví
Drtivá většina projektů implementace IS je záležitostí týmové souhry.
Vzhledem k tomu, že spolu musí všichni účastníci projektu úzce komunikovat, je nutné zajistit, aby všichni pracovali se stejnými informacemi a aby byly tyto sdílené informace vzájemně konzistentní (další možná rizika zpracování projektových informací popisuje blíže článek "Noční můra informatikova …").
Nástroj Tau UML Suite disponuje centrální repository, ve které jsou uloženy veškeré evidované informace. Repository je realizována nad relačním databázovým strojem a tudíž mohou být využívány všechny výhody, které s používáním RDBMS souvisí (například automatické zálohování, možnost "rekonstrukce" databáze z transakčního žurnálu, …).
Jelikož se evidované informace v průběhu práce na systému mění (např. analytické modely jsou doplňovány a zpodrobňovány v etapách návrhu a implementace), obsahuje Tau UML Suite podporu jednotlivých etap životního cyklu. Práce poté probíhají tak, že jsou rozpracovávány analytické modely a ve chvíli, kdy je potřeba začít pracovat na detailním návrhu systému, jsou vybrané modely "přeneseny" právě do fáze návrhu, kde jsou detailizovány. V jednotlivých fázích projektu, kdy mohou vývojáři používat další nástroje a prostředky, jsou například uplatňována odlišná formální pravidla pro kontrolu syntaxe vytvářených diagramů atd.
Změny provedené ve fázi návrhu nebo implementace je možné samozřejmě zpětně promítat do předchozích fází a zajistit tak konzistenci vytvářeného systému. Postupnou iterací mezi všemi fázemi je nakonec vytvořen výsledný systém, jehož kód může být automaticky vygenerován pro zvolená cílová prostředí.
Oproti "klasickému" přístupu, kdy jsou stejné modely postupně doplňovány, má tento postup mnohé výhody. Analytik zabývající se samotnou věcnou oblastí nemusí znát všechny implementační detaily, za které je odpovědný návrhář nebo programátor.
Změna je … problém?
Disponujeme-li víceuživatelským CASE nástrojem, dospějeme dříve či později k problému, jak ošetřit dílčí změny projektových informací. Tu a tam se občas nějaký model změní, uživatel později zjistí, že poslední změny nebyly vůbec šťastné, rád by začal znovu pracovat na původním modelu a ejhle - problém je na světě! Jak se do stavu "před změnou" vrátit? Jak poznat, v čem přesně se původní a nová verze vzájemně odlišují?
Můžeme sice zavést formální pravidla pro správu verzí jednotlivých modelů/dokumentů a s dodatečně vynaloženým úsilím tak simulovat konfigurační management, nicméně podpora ze strany používaného nástroje je v tomto případě více než vhodná (konfiguračnímu řízení je věnován článek "Změna je život - Software Change Management").
Nástroj Tau UML Suite používá pojem "konfigurace", což je označení množiny jednotlivých fází projektu, oblastí systému (package) a konečně vytvářených modelů. Pro jakýkoliv "objekt" počínaje konfigurací a konče samotnými diagramy je možné vytvářet nové verze, tyto verze porovnávat a slučovat (viz obrázek 1). Vývojová skupina tak dostává do rukou mocný prostředek, který je v otázce podpory týmového vývoje daleko před svými konkurenty.
Vědět, že víme
V posledních několika letech se mezi často skloňované termíny zařadily pojmy "znovupoužitelnost" a komponentový vývoj. Bohužel vytvoření opakovaně použitelné SW komponenty nemusí být zrovna jednoduché. Podaří-li se už znovupoužitelnou komponentu vytvořit a úspěšně otestovat, zbývá ještě vyřešit organizační problémy. Jakým způsobem zajistit, aby měli všichni přístup vždy pouze k aktuální a otestované verzi komponenty? Jak snadno použít jednou vytvořenou komponentu i na jiném projektu?
I zde může CASE systém nabídnout pomocnou ruku.
Díky centrální repository je možné v nástroji Tau UML Suite poměrně jednoduše sdílet vytvořené modely napříč všemi projekty, které jsou v repository uloženy. Domnívá-li se například vývojář, že by bylo užitečné dát vytvořené modely k dispozici i účastníkům jiných projektů, zařadí patřičné modely do pojmenované skupiny. Od tohoto okamžiku mohou všichni vývojáři sdílené modely libovolně používat. Netřeba zmiňovat, že i na takto vytvořené skupiny modelů lze aplikovat konfigurační management. Tímto způsobem lze jednoduše a flexibilně využívat to nejcennější - celofiremní know-how. Ve společnosti KOMIX je tento mechanismus používán například pro sdílení osvědčených návrhových a analytických vzorů (design a analysis patterns).
Pro klidné spaní
Ať se nám to líbí nebo ne, při vývoji informačního systému se mnohdy pracuje s choulostivými informacemi z hlediska jejich potenciálního zneužití. Ale i kdybychom riziko zneužití informací eliminovali, stále existuje mnoho důvodů, proč nedovolit nebo omezit přístup jednotlivých členů projektového týmu k určitým informacím.
UML Suite používá dnes už standardní mechanismus rolí a přístupových práv. Jednotliví členové týmu jsou zařazování do uživatelem definovaných rolí (typickými rolemi jsou např. vedoucí projektu, analytik, návrhář, programátor, testér, manažer jakosti, …) k nimž je přiřazena matice povolených nebo odepřených akcí s informacemi evidovanými v repository (viz obrázek 2).
Obdobně jako konfigurační management lze i přístup k informacím řídit na několika úrovních (úroveň konfigurace, oblasti nebo diagramu) a jejich vhodnou kombinací tak zajistit přístup pouze a jen k těm informacím, které konkrétní člen týmu potřebuje.
Závěr
Spíše než detailně představit nástroj Telelogic Tau UML Suite bylo cílem tohoto článku ukázat některé pozoruhodné a užitečné rysy tohoto nástroje především z pohledu specifických problémů doprovázejících týmový vývoj. Zatímco na počátku devadesátých let používaly objektové CASE nástroje spíše menší vývojové týmy a výhody silné podpory týmového vývoje nemusely být tudíž dostatečně doceněny, dnes je situace jiná.
Používání CASE nástroje s plnohodnotnou podporou týmového vývoje zajistí především škálovatelnost. Až se vaše firma rozroste o další vývojáře, nebudete už muset řešit problémy vyplývající z neoprávněné modifikace sdílených dat, nebudete nuceni definovat pravidla pro sdílení modelů ani vymýšlet konvence pojmenovávání verzí souborů, v kterých jsou vaše modely uloženy. Naopak, budete se moci soustředit na samotnou práci, sdílet modely, realizovat paralelní vývoj.
Není to shodou okolností zrovna to, co vás živí?