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