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í.

Počítačová témata

UML — The Unified Modelling Language

… neboli Sjednocený modelovací jazyk

Historické souvislosti

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.

Síla UML

Jazyk UML vykazuje n>kolik silných stránek, které jej vyzvedávají nad ostatní, předcházející metody a notace:

Šířka záb>ru

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.

Standardizace

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á.

Podpora průmyslu

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í.

Rozšiřitelnost

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).

Slabé stránky UML

Podle mého názoru má UML tři vážné nedostatky:

Nedostatečné grafické rozlišení

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).

Nadužívání stereotypů

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.

Snížený důraz na fyzický návrh

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.

Praktické zkušenosti s UML

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 $