Níže uvedený text pochází z prvního vydání. Nad tímto textem se nachází aktuální stav po revizi směřující k druhému vydání.
… neboli Sjednocený modelovací jazyk
Sjednocený modelovací jazyk — dále jen UML — byl vyvinut jako notace (prostředek pro zápis) pro potřeby softwarového inženýrství autory jmény Grady Booch, James Rumbaugh a Ivar Jacobsen ze společnosti Rational (Rational Corp.). Každý z těchto tří inženýrů publikoval svou objektově orientovanou metodologii. Mezi uživateli těchto metodologií se vytvořily vyhraněné názory na to, která z těchto metodologií je nejlepší.
Aby tito tři amigos předešli nadcházejícím sporům, dali se (na nějaký čas) dohromady a vytvořili notaci, která v sobě zahrnovala to nejlepší z jejich vlastních notací, a která se dala použít pro většinu metod objektově orientovaného návrhu. Notace byla postupně vyčištěna a rozšířena. Nyní tvoří základ pro téměř libovolný přístup, který se využívá v rámci softwarového inženýrství, ať už jde o objektově orientovaný přístup, či nikoliv.
Jazyk UML vykazuje několik silných stránek, které jej vyzvedávají nad ostatní, předcházející metody a notace:
UML pokrývá celý softwarový cyklus od zachycení požadavků přes fyzický návrh až po nasazení. Obsahuje v sobě jak dynamické, tak statické prvky a umožní vám soustředit se na systémy, kde je kritickou stránkou jak čas, tak data.
Jazyk UML spojil tři hlavní větve objektově orientované notace. Přijal jej také Coad, který představoval menšinového hráče. Mimo UML nyní stojí pouze Schlaer-Mellor. Pokud se softwarový průmysl chce posunout směrem k důležitějším tématům a pokud se má zahájit výměna myšlenek sjednoceným a srozumitelným způsobem — jako je tomu v ostatních inženýrských disciplínách —, je pro něj standardizovaná notace životně důležitá.
Většina výrobců vývojových nástrojů, která rozpoznala jak vážnost podpory (UML), tak výhody standardizace, nyní jazyk UML podporují v rámci jejich nástrojů CASE (Computer Aided Software Engineering, čili počítačem podporované nástroje pro softwarové inženýrství.). Ostatní se určitě přidají.
Jazyk UML poskytuje mechanismus pro rozšiřování notace prostřednictvím takzvaných stereotypů. Jde nepochybně o dobrý nápad, ale vede to k některým nešťastným vedlejším efektům (viz níže).
Podle mého názoru má UML tři vážné nedostatky:
UML používá poměrně malý počet tvarů pro vyjadřování velkého množství konceptů. Jako důsledek této skutečnosti vznikají diagramy, ve kterých nelze snadno rozpoznávat obsah. Občas je dokonce obtížné na první pohled určit, co diagram vyjadřuje (zda třídy nebo objekty, statické nebo dynamické vztahy).
Tato připomínka se vztahuje k dříve zmíněnému bodu, ale jde ještě o krok dále. Mnoho návrhových prvků, které měly v individuálních notacích rozlišitelný vzhled, bylo sloučeno a rozlišeno pouze stereotypovou notací. Jako příklad můžeme uvést metatřídy, kategorie tříd, třídy definující rozhraní, atd. Výsledkem je obtížná vizuální srozumitelnost diagramů. Abychom rozlišili druh jeho prvků, musíme číst jednotlivé popisky. Jak již jsme se zmínili, stereotypy představují skvělý způsob pro přidávání nových rysů do existující notace, ale neměly by být používány pro vyjadřování zásadních rysů v rámci objektově orientovaného návrhu.
Navzdory tomu, že Booch navrhl bohatou a užitečnou sadu ikon pro fyzický návrh, a navzdory faktu, že žádná z ostatních notací nenabízela nic podobného, z UML byla většina z nich odstraněna. Ponechán byl pouze balík (package; občas je vyjadřován stereotypem jako podsystém, případně i s maňásky typu rozhraní COM) a uzel (node). Úlohy, procesy, rozhraní, implementace, moduly — všechny tyto prvky zmizely jako dodo. Fyzický návrh je softwarovými inženýry často přehlížen a uvedené podlačení jeho významu v UML může tento trend pouze podpořit.
Po zvážení pro a proti věřím tomu, že UML patří k dobrým počinům. Použil jsem jej u několika malých projektů a naposledy jsem pomocí UML dokumentoval rozsáhlý systém, který není objektově orientovaný. Používal jsem zejména notaci pro fyzické prvky. Občas jsem však použil i stavové grafy a dokonce i objektové diagramy a diagramy tříd, abych s jejich pomocí ilustroval koncepci.
Ohlas — a to dokonce i od těch, kteří UML neznají — byl pozitivní, což upevňuje mé přesvědčení, že UML může tvořit základ jakéhosi Sjednoceného modelovacího jazyka pro softwarový průmysl, ať už jde o popis objektově orientovaných systémů, či nikoliv.
S tím jak se zlepšuje podpora typu CASE a jak se v odborných článcích pokračuje s používáním UML diagramů, seznámí se s touto notací i praktičtí programátoři a budou ji používat. Doufejme, že budeme brzy schopni porovnávat návrhy stejně snadno, jako to inženýři v elektrotechnice a stavitelství dělají už celá desetiletí.
Náměty k tomuto článku mi posílejte sem. (..., ale anglicky.)
Pokud vás napadne, co by se dalo na překladu této kapitoly vylepšit, zašlete e-mail odklepnutím Tím budou do dopisu automaticky vloženy informace o tomto HTML dokumentu.
$Id: czuml.html,v 1.5 2004/08/31 11:55:15 prikryl Exp $