UML-eszköz

Az UML-eszköz egy olyan szoftver, amely támogatja a Unified Modeling Language (UML)-hez tartozó legtöbb jelölést. Ez az eszköz a szoftverfejlesztésben egy általános célú szabványos modellező nyelv.

Az UML eszközök széles körben használtak olyan alkalmazásoknál is, amelyek nem kizárólag az UML-re fókuszálnak, de támogatják az Unified Modeling Language egyes funkcióit, akár kiegészítőként, akár egy komponens (alkotóelem) formájában vagy a teljes funkcionalitás egy részeként.

Funkcionalitás fajtái

[szerkesztés]

Az UML eszközök a következő funkcionalitásokat támogatják:

Diagramok

[szerkesztés]

A diagram ebben a szövegkörnyezetben UML diagramok létrehozását és szerkesztését jelenti, azaz olyan diagramok, amelyek az Unified Modeling Language grafikus jelöléseit követik.

Az UML-diagramok használata általánosan elfogadott a szoftverfejlesztők által, főleg objektumorientált szoftverek diagramjainak rajzolására. Amikor a fejlesztetők UML ábrákat rajzolnak fel objektumorientált szoftverekhez, akkor rendszerint az UML jelöléseit követik. Másrészt gyakran vitatják, hogy szükség van-e ezekre a diagramokra, illetve, hogy a szoftverfejlesztési folyamat mely szakaszaiban kell őket használni, és hogyan tartsák ezeket naprakészen (ha egyáltalán lehetséges). A szoftverkód elsőbbsége gyakran a diagramok elavulásához vezet.

Oda-vissza/Kör fejlesztés

[szerkesztés]

Az oda-vissza/kör fejlesztés arra az UML eszközök nyújtotta lehetőségre utal, hogy képes kódgenerálást végezni modellekből, és modellgenerálást végezni kódból, miközben a modellt és a kódot szemantikailag egységes állapotban tartjuk egymással. A kódgenerálást és a fordított fejlesztést, az alábbiakban részletesebben ismertetjük.

Kódgenerálás

[szerkesztés]

A kódgenerálás ebben a szövegkörnyezetben annyit jelent, hogy a felhasználó létrehoz egy UML diagramot, aminek van néhány kapcsolódó modelladata, és az UML tool levezeti a forráskódokat a diagramokból és a modelladatokból. Néhány eszközben a felhasználó biztosíthat egy "vázat" a forráskódnak, egy forráskód sablon formájában, ahol az előre definiált szimbólumok ki lesznek cserélve a program forráskódjára a kódgenerálási folyamat során.

A szoftverfejlesztők között vita folyik arról, hogy mennyire hasznos a kódgenerálás. Ez határozottan az adott problémától és attól függ, hogy a kód generálását milyen mértékben kell alkalmazni. Vannak olyan jól ismert területek, ahol a kód generálása bevált gyakorlat, és nem korlátozódik az UML területére.

A fejlesztők meglehetősen vitatják azt a gondolatot, hogy a „kódszintet” teljesen elhagyják, és a „programozást” közvetlenül az UML diagramszinten (azaz a tervezési szinten) kezdjék el. Ez a modellvezérelt architektúra (MDA) jövőképe. Ez az ötlet nem olyan széles körben elterjedt, mint más szoftverfejlesztő eszközök, például fordítóprogramok vagy szoftverkonfiguráció-kezelő rendszerek.

Egy gyakran idézett kritika, hogy az UML diagramokból hiányoznak olyan részletek amelyek szükségesek ahhoz, hogy ugyanazt az információt fedjék le, mint maga a forráskód. Jack W. Reeves[1] állította, hogy a végső megtestesülése a dizájn-nak a forráskódban rejlik. (A gyakran idézett állítását, miszerint a "a kód maga a dizájn" félreértelmezték, annyira, hogy nincs szükség közép- és magas szintű szoftver-tervezési műalkotásokra, például UML-diagramokra vagy szoftver-követelmények dokumentumaira).

Fordított programozás

[szerkesztés]

A fordított fejlesztés ebben a szövegkörnyezetben azt jelenti, hogy az UML tool beolvassa a program forráskódját input-ként, és abból levezeti a modell adatait és a hozzá kapcsolódó grafikus UML ábrákat.

A fordított programozás kihívásai:

  • A forráskód gyakran több, részletesebb információt hordoz, mint amennyit a diagramon látni szeretnénk. Ezt a problémát a szoftver architektúra rekonstrukciója oldja meg.
  • A diagram adatait általában nem tartalmazza a program forráskódja. Az UML eszköznek legalább a kezdeti lépésben létre kell hoznia egy véletlenszerű tervet/megjelenést az UML grafikus szimbólumaiból, vagy valamilyen automatikus elrendezési algoritmust kell használnia ami elhelyezi a szimbólumokat olyan sorrendben amilyenben a felhasználó megtudja érteni a diagramot. Például a szimbólumok úgy kell hogy elhelyezve legyenek, hogy azok ne fedjék le egymást. Általában, a felhasználónak magának is kell kicsit szerkesztenie az ábrát, hogy az automatikusan generált diagram kapjon egy kis értelmet. Gyakran a diagramok rajzolása elhagyható, mert a teljes forráskód annyi adatot és részletet tartalmaz hogy az UML ábra elvesztené a jelentőségét.
  • Vannak nyelvi adottságok néhány programozási nyelvben, mint például osztály vagy metódus sablonok a C++ programozási nyelvben, amiket közismerten nehéz teljes egészében automatikusan konvertálni UML ábrába.

Model és diagram csere

[szerkesztés]

XML metaadatcsere (XMI) egy formátuma az UML modellcserének. XMI nem támogatja az UML diagram cserét, ami lehetővé teszi egy UML diagram importálását egyik modellről a másikra.

Model transzformáció

[szerkesztés]

A modellorientált architektúrához kapcsolódó kulcsfogalom az a képesség, hogy egy modellt egy másik modellre alakítsanak. Előfordulhat például, hogy egy platformfüggetlen domain-modellt Java-platform-specifikus modellre kell alakítani. Az UML modellek refaktorálása is lehetővé teszi tömörebb és jól kialakított UML modellek előállítását. Lehetséges az is, hogy UML modelleket előállítsunk más modellezési jelölésekből is, mint például a BPMN, amely önmagában egy UML profil. Az ezt támogató szabványt QVT-nek hívják, ami a Queries/Views/Transformations rövidítéséből áll össze. A nyílt forráskódú QVT-megoldás egyik példája az INRIA által készített ATL nyelv.

Jegyzetek

[szerkesztés]
  1. Reeves, Jack W.: developer.* - Code as Design: Three Essays by Jack W. Reeves (angol nyelven). www.developerdotstar.com, 2005. február 23. (Hozzáférés: 2020. június 10.)

Külső linkek

[szerkesztés]
Commons:Category:UML tools
A Wikimédia Commons tartalmaz UML-eszköz témájú médiaállományokat.


Fordítás

[szerkesztés]
  • Ez a szócikk részben vagy egészben az UML tool című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.