( kisg | 2011. 07. 03., v – 00:01 )

Az UML-nek két fő felhasználási területe van szerintem:
- kommunikációs segédeszköz emberek között, hogy ne kelljen minden alkalommal azon vitatkozni, hogy a fekete rombuszban végződő nyíl mit is jelent. Ilyenkor nem cél, hogy a teljes rendszer összes elemét tartalmazza az ábra, hanem hogy a megértést segítse. Nem is szokott azért A0-ás plotter kelleni. A1-es elég :) A toolok is főleg rajzprogramok közül kerülnek ki (Visio, Dia ... stb.), bár korlátozott kódgeneráló képességük ezeknek a tooloknak is szokott lenni.

- MDA / MDD és egyéb "M" kezdetű bűvszavas rendszereknél bemeneti nyelv. Ilyenkor ugye tényleg minden csavart le kell modellezni UML-ben, ami szép nagy modelleket eredményez, amiket ráadásul folyamatosan karban kell tartani, verziókezelni ... stb. Ezek a modellek önmagukban már nem alkalmasak a kommunikációra, mivel elveszik a lényeg -> valakinek le kell gyártania és karbantartania a kivonatolt modelleket, amikről már lehet beszélni. Nem tudom, hogy az újabb Rational termékek mennyire segítenek ebben, a régebbiek nem álltak a helyzet magaslatán.

A gond akkor van, amikor ezt a két területet elkezdik keverni: sokan akkor utálják meg az UML-t.

Persze semmi sem tökéletes, főbb problémák:
- Use case diagram: Azok, akikkel a use case-ekről diagrammok segítségével kommunikálnál (jellemzően nem a fejlesztők, hanem a megrendelő, a marketinges, a PM ... stb.), fogalmuk nincs az UML-ről, tehát felejtős, hogy egy a rendszert jól leíró use case diagrammot (extends, includes, sztereotípiák) megértsenek. Akkor meg minek? Jobban jár az ember ha gyárt színes szagos diagrammokat az Office csomagjában dobozokkal, kis emberekkel, mindenki számára érthető képekkel / ikonokkal.

- Dinamikus viselkedést leíró diagrammok: sajnos a legtöbb fejlesztő ezeket már nem ismeri / nehezen olvassa. Sok esetben a pszeudókód nálam jobban bevált. Emellett bonyolultabb viselkedéseket egyszerűen gyorsabb pszeudókóddal leírni, mint sequence diagrammokat vagy statechartokat rajzolgatni.

Viszont a statikus struktúrák leírására szerintem kiválóan alkalmas, én ötletelésnél papíron is UML-t szoktam rajzolgatni.