UML
A
rövidítés jelentése Unified Modelling
Language, azaz Egységesített Modellező Nyelv. Az UML eredetileg Booch,
Rumbaugh és Jacobson módszereit egyesítette, de ma már minden
szoftverfejlesztéssel foglalkozó világcég felismerte a szabvány jelentőségét,
és foglalkozik annak továbbfejlesztésével.
Az UML egy grafikus
nyelv, amelyben lehetőségünk van a probléma specifikációjára, megoldására,
a megoldás dokumentálására.
Az UML-hez léteznek az
alábbi transzformációs eszközök:
- UML – programozási nyelv, ahol a nyelv lehet például: Java, C++,
Smalltalk, Visual Basic, 4GLs.
- UML –
közbeeső rétegek, amelyek lehetnek: EJB, CORBA, DNA.
A nyelv kialakításában
az alábbi szempontok játszottak szerepet:
- teljes rendszereket akartak
ábrázolni objektumorientált elv alapján
- explicit kapcsolatot
kialakítani az elv és a végrehajtható kód között
- mind az ember, mind a gép számára érthető
modellező nyelvet készíteni
Az UML jellemzői:
1. Az UML-ben létrehozott
modell grafikus szemléltetést nyújt.
2. A nyelv lehetővé
teszi modellek megalkotását különböző nézetekből.
3. Alkalmas a probléma
megoldásának pontos leírására.
4. Alkalmas a probléma
megoldásának dokumentálására, ezen belül:
- a projektterv dokumentálására
- a szoftverkészítés fázisainak
dokumentálására
- a prototípus dokumentálására
5. Az UML konstrukciós
eszköz.
6.
Nem csak szoftvermodellek leírására alkalmas, de munkafolyamatok,
szervezetek, különböző üzleti tevékenységek stb. leírására is.
Az UML
nyelv két jól elkülöníthető része a jelölésrendszer, és a metamodell.
Ebből az első az, amivel általában találkozunk, mindazok a grafikus
jelek, amelyeket a modellekben használunk. Ez az UML szintaxisa. A metamodell a nyelv szemantikája.
Osztály-diagrammokból áll, és a jelölésrendszert definiálja. Az UML
használatához hasznos a metamodell ismerete is, de nem feltétlenül szükséges.
Igazából akkor van nagy jelentősége, ha olyan programot szeretnénk
készíteni, amely képes UML-ben adott modelleket értelmezni, és ez alapján kódot
generálni.
Az UML nyelv elemei a
nézetek és a diagramok. A nézetek diagramokat tartalmaznak.
A nézet a modellezett
rendszer bizonyos aspektusait mutatja. A nézet egy olyan elvonatkoztatás, amely
több diagramot tartalmaz, és a teljes rendszer kivetítését tartalmazza.
Gyakorlatilag lehetetlen az egész rendszert egyetlen nézettel leírni. A
rendszert több oldalról is megközelíthetjük: funkcionális (statikus struktúra,
illetve dinamikus), nem-funkcionális (időzítés, megbízhatóság stb.),
szervezési (munkaszervezés).
Az UML diagrammok
csoportosítása különböző nézetek szerint:
Statikus szempont szerint:
- osztálydiagram: a
rendszer objektumelvű szerkezetének leírása. Olyan statikus modell, amely
a rendszerben található összes osztályt, és azok statikus (ismeretségi,
tartalmazási és öröklési) kapcsolatait ábrázolja. Az összes többi modell erre
épül.
-
objektumdiagram: az osztálydiagram egy példányát mutatja be. Egy lehetséges
rendszerkonfigurációt ad meg, a használt objektumok ábrázolásával és az ezek
közötti relációkkal.
Dinamikus szempont szerint:
- állapotdiagram: azt mutatja meg, hogy
a rendszer milyen állapotokon keresztül, milyen állapotátmenetekkel oldja meg a
feladatot. Azt mutatja meg, hogy a
rendszer milyen állapotokon keresztül, milyen állapotátmenetekkel oldja mega
feladatot. Megadja, hogy egy adott objektum, egy bizonyos esemény hatására
milyen állapotból milyen állapotba megy át. Tulajdonképpen a rendszer vagy az
alrendszer életciklusának leírását tartalmazza a következő elemek
segítségével:
- állapotok
- események
- integritás és más
típusú feltételek
- akciók
- aktivitások
- egy kezdőállapot
- több végállapot
- szekvencia-diagram: az objektumok közötti
üzenetváltások időbeli menetét szemlélteti. Az objektumok közötti
interakciókat követi nyomon, időrendi sorrendben. Hasonló az
együttműködési diagramhoz, azonban a fő hangsúlyt az időre, az
időrendi sorrendre helyezzük
A nyilak segítségével
az időrendiséget és az üzenet típusát adhatjuk meg:
- Szinkron:
- Visszatérés:
- Egyszerű:
-
Aszinkron:
A
nyilakra ráírhatjuk az üzenet nevét
és feltüntethetjük az időtartamot
is.
- aktivációs diagram: a tevékenységek és az
objektumok egymásra gyakorolt hatását fejezi ki (vezérlések,
rendszerfunkciók). Az állapotdiagram
egy formája, a tevékenység implementációját adja meg, a felhasznált
műveletek kifejtésével. Tulajdonképpen egy véges állapotú automata.
- együttműködési diagram: az objektumoknak a
probléma megoldásában való együttműködését mutatja be. Olyan, konkrét
objektumokat tartalmazó diagram, amely az objektumok közötti dinamikus
kapcsolatokat ábrázolja. Tartalmazza az objektumok közötti ismeretségi, illetve
tartalmazási (egész - rész) kapcsolatokat is. Az objektumok közötti
információcsere üzenetekkel történik, ezeket olyan nyilakkal ábrázoljuk,
amelyekre ráírjuk az üzenet nevét, és meg is számozhatjuk őket, ahhoz,
hogy az eseményeket relatív rendezettséggel tüntessük fel
Implementációs szempont
szerint:
- komponens-diagram: a komponensekből
felépülő szoftverrendszert mutatja be. Az osztálydiagram osztályainak és
egyéb elemeinek fizikai csoportosítását ábrázoló diagram.
Szoftver-komponenseket, interfészeket és ezek közötti kapcsolatokat tartalmaz.
A szoftver-komponensek programállományok (forráskódok), bináris állományok és
végrehajtható programok lehetnek.
- alrendszer-diagram: az alrendszerek
kapcsolatát írja le
Környezeti szempont szerint:
- konfigurációs diagram: a szoftverrendszer
környezetének, a hardver-szoftver konfigurációnak a szemléltetésére
szolgál. Más szóval a telepítendő
rendszer elhelyezkedését mutatja, a rendszerben található fizikai eszközöket
(hálózati eszközök, számítógépek, processzorok, nyomtató stb.) és azok
kapcsolatait ábrázolja.
Felhasználói szempont szerint:
- felhasználói esetek
diagramja: a rendszernek és felhasználóinak kapcsolatát adja meg. Leírja a
funkcionalitásokat, amelyeket a rendszer a külső aktoroknak (külső
személyek, felhasználók, más rendszerek, más számítógépek, más objektumok)
szolgáltat, használati eset diagramok (use case diagram UCD) segítségével. A
rendszerelemzők használják.
Az osztályokat,
objektumokat kategóriákba szoktuk csoportosítani. Így objektum sztereotípusokról
beszélhetünk. A kategóriák között nem húzható mindig éles határ, ez a
csoportosítás mégis jó az osztályozás, a keresés szempontjából.
Objektumok sztereotípusai:
- Aktorok
- Egyed objektumok
- Interfész objektum
- Riport objektum
- Kontroll objektum
Az UML koncepciója,
hogy nem foglalkozik azzal, hogy hogyan találjuk ki a megfelelő
absztrakciókat, és hogyan készítjük el a rendszerünk modelljét, hanem a
jelölésekre koncentrál. Persze a helyzet nem ennyire sarkított, hiszen a
nyelvnek fejlesztésünk minden lépésénél segítenie kell az egyszerű
jelölést, és a könnyű áttekintést.
Finta Anna-Mária