Ugrás a tartalomhoz

Rendszertervezés 4., A rendszerfejlesztés eszközei (technikák, CASE, UML)Dr. Szepesné Stiftinger

Dr. Szepesné Stiftinger Mária (2010)

Nyugat-magyarországi Egyetem

4.2 UML (Unified Modeling Language, azaz egységesített modellező nyelv)

4.2 UML (Unified Modeling Language, azaz egységesített modellező nyelv)

Az UML egy szabványos, egységesített modellezőnyelv , amelynek segítségével fejlesztési modellek rendkívül jól szemléltethetőek. Az IR célja, az elvégzendő feladatok pontos meghatározása (a specifikáció), a tervezés, a dokumentálás mind grafikus formában, beszédes ábrák, diagramok segítségével történik.

Az UML a kilencvenes évek elejére kiteljesedő objektumorientált módszerek nyomán kidolgozott modellező eszköz. 1997-ben J.Rumbaugh, G. Booch és I. Jacobson az OMT [Rumbaogh et al., 1991], az OOADA [Booch, 1994] és az OOSE [Jacobson, 1994] koncepciók alapján egy olyan alkotásra, vizualizációra, dokumentálásra egyaránt alkalmas szimbólumrendszert, egy egyesített nyelvet (UML: Unified Modelling Language [Booch et al., 1998]) fejlesztett ki, amely kiváló kommunikációs eszköz nemcsak a fejlesztők közötti, hanem a felhasználó-fejlesztő együttműködésében is. Az OMG által 1998 őszén modellező szabványként elfogadott jelölésrendszer célja egy olyan egységes szemantika és jelölésrendszer biztosítása, amely megoldást kínál a tervezés minden fázisában. Bár az UML alkalmazása önmagában nem garantálja a fejlesztés sikerét, mégis azt kell mondanunk, hogy használata jelentősen lecsökkenti a betanítás, az átállás költségeit, lehetőséget biztosít a fejlesztési elvek, módszerek és eszközök hatékony integrációjára.

Az UML:

  • egy rendszer grafikus ábrázolására alkalmas eszközök (diagramok) gyűjteménye. (Modell)

  • a diagramok az UML-ben egységes jelölésrendszerbe kerültek, így kialakult egy grafikus nyelv,

  • jól áttekinthető specifikációk, modellek, tervek és dokumentációk készítésére ad lehetőséget (legalábbis a jelölésrendszert ismerők számára).

Az UML alapvető építőkövei:

  • rajzi elemek

  • rajzi elemek közötti relációk

  • diagramok

A rajzi elemek fajtái:

  • Strukturális elemek :

    • Objektum, Osztály, Felhasználói eset,

  • Megnyilvánulási elemek :

    • Művelet végzése, Interakció (üzenetküldés), Állapot

  • Annotációs elemek :

    • Kiegészítés, Megjegyzés

  • Csoportos elemek :

    • Csomag

Néhány Strukturális UML elem:

1. táblázat

Aktorok:

A rendszer felhasználói,

vagy külső rendszerek.

Meghatározzák a megvalósítandó

rendszer határvonalát.

Használati esetek:

a rendszer funkcióit definiálják.

Szemléltetik, hogy mit tesz a rendszer, ha az adott használati esetet kell megvalósítani.

Az adott osztály, mely egyértelműen azonosítható,

adatai, tulajdonságai (attribútumai) vannak,

saját adatain műveleteket tud végezni.

állapot

Példaobjektumok

Üzenet

Az utolsó sorban példát látnak m egnyilvánulási elemre.

Az UML elemei közötti kapcsolatok (reláció típusok) lehetnek:

Függőség (dependency)

Két elem között akkor áll fenn, ha az egyik (a független) elem változása hatással van a másik (a függő) elemre. Kölcsönös a függőség akkor, ha mindegyik elem hat a másikra. Grafikus ábrázolásában a szaggatott nyíl a független elem felé mutat.

A függőség fajtái:

  • Finomítás vagy részletezés (refinement)

  • Nyomkövetés (trace)

  • Tartalmazás (include)

  • Kiterjesztés (extend)

Társítás (asszociáció ;association)

Az objektumok kapcsolatát, ezek struktúráját határozza meg.

Társítási kapcsolat fajtái:

  • Ismeretség: Az UML-ben a társítási kapcsolatot folytonos nyíllal jelöljük, ahol a nyíl iránya jelzi a kapcsolat irányát. Ha a nyíl hegyét nem tesszük ki, akkor a kapcsolat kétirányú. A szemléltető nyílon jelöljük az asszociáció irányát, multiplicitását.

  • Tartalmazás (aggregation). Gyenge és erős tartalmazás.

    • Aggregáció esetén a rész az egészhez tartozik, de önmagában is létező entitás.

Az egésznél lévő vonalvég egy csúcsára állított, aggregációnál „lyukas” rombusz. (gyenge tartalmazás).

  • Kompozíció esetén a rész önmagában nem létezhet, csak az egész elemeként. Jele: az egésznél lévő vonalvégnél egy csúcsára állított tömött rombusz. (erős tartalmazás).

Általánosítás: Specializáció (specialization), öröklés (inheritance)

Az objektumok speciális viszonya, gyermek-szülő kapcsolat, amelyben a fölérendelt elem az általános, az alárendelt a specializált. Osztályszerű elemek közötti strukturális kapcsolat. Általánosítási kapcsolat lehet például osztályok, aktorok, vagy használati esetek között. Jelölés: a nyíl iránya jelzi az általánosítás irányát.

Megvalósítás (realization)

A megvalósítási kapcsolatban egy dolog megvalósít (realizálja, implementálja) egy másik dolgot. Logikai kapcsolat, mely az általánosítás és függőség egy keveréke. A kapcsolat csak osztályszerű elemek között lehetséges. Annak kifejezése, hogy egy osztály biztosít egy másikat arról, hogy elvégez számára egy bizonyos feladatot. Az UML-ben a megvalósítási kapcsolatot szaggatott telt végű (öröklési) nyíllal jelöljük, ahol a nyíl iránya jelzi a megvalósítás (függőség) irányát.

Az UML elemekből és kapcsolatokból diagramok készíthetők; ezek lehetnek:

  • Használati eset (Use case): funkcionalitás a felhasználó szemszögéből

  • Osztály (Class): rendszer „szótára”: osztályok és kapcsolatai

  • Objektum (Object): osztály példányok és kapcsolataik

  • Komponens (Component): implementáció fizikai szerkezete

  • Telepítési (Deployment): rendszer hardver topológiája

  • Szekvencia (Sequence): dinamikus viselkedés (idő-orientált)

  • Együttműködési (Collaboration): din. viselkedés (üzenet-orientált)

  • Állapot (Statement): din. viselkedés (esemény-orientált)

  • Aktivitás (Activity): din. viselkedés (activitás-orientált)

4-1. ábra

Használati eset diagram (USE CASE diagram):

Célja megfogalmazni, mi az, amire a rendszernek képesnek kell lennie.

Elemei:

Az aktorok felhasználókat vagy bármely más külső eseményforrást jelképeznek, mellyel a rendszer működése során kapcsolatba kerülhet. Az aktorok segítségével szabjuk meg a rendszer határait.

4-2. ábra

Használati esetek: a rendszer funkcióit definiálják. Minden használati esethez leírás szükséges, amelyben szerepel, hogy mit tesz a rendszer, ha az adott használati esetet megvalósítja.

4-3. ábra

4-4. ábra

  • Osztálydiagram (class) : a rendszer objektumelvű szerkezetének leírása. Az osztályoknak, azok tartalmának és kapcsolatrendszerének összefoglaló diagramja. Az osztálydiagramok legalapvetőbb objektumorientált modellező eszközök, melyekkel a rendszert fölépítő objektumokat és a közöttük lévő statikus kapcsolatokat írhatjuk le. Az osztálydiagram szemlélteti, hogy az osztályok illetve az objektumok milyen kölcsönhatásban lesznek egymással. A társítások (asszociációk) két osztály illetve két objektum közötti viszonyt fejeznek ki. Minden társításhoz irányától függően két osztály rendelhető (forrás osztály és célosztály). A valódi összefüggés az osztályokból létrejövő objektumok között jön létre. Az osztálydiagram rögzíti az objektumok közötti kapcsolatok szabályait. Két osztály közötti társítási kapcsolat főbb jellemzői: ismeretségi vagy tartalmazási kapcsolat; név; multiplicitás (egy–egy, egy–sok vagy sok–sok jellegű; kötelező vagy opcionális); szerepnév; megszorítás.

Egy osztálydiagram elemei:

  • osztályok, jele: téglalap

  • az osztályok közti relációk

4-5. ábra

Az osztályok meghatározásának elvei:

  • Egy osztály a lehető legminimálisabb metódushalmazzal rendelkezzen

  • Egyszerű interfész a külvilág felé == minimális függőség az objektumok között

  • Apró, jól definiált feladatokat végrehajtó, sok, de egyszerű osztály

  • Nem akkor tökéletes egy osztály, ha már nem lehet mit hozzáadni, hanem akkor, ha már nincs mit elvenni

  • Többféle szinten valósul meg, de minden szint önmagában könnyen átlátható

4-6. ábra

Objektum diagram (Object)

Az osztálydiagram egy példányát mutatja be. Az objektum-osztályok hordozzák a hozzá tartozó objektumok jellemzőit. Minden objektum valamilyen osztály példánya (instancia), rendelkezik osztályának sajátosságaival, örökli annak tulajdonságait az adatszerkezetre és a műveletekre vonatkoztatva egyaránt.

4-7. ábra

CSOMAGDIAGRAMOK:

Olyan eszközök, melyekkel funkcionálisan összefüggő modellelemek egyetlen magasabb szintű egységbe foghatók, így rendszerünk statikus struktúrája kezelhetővé válik. A csomagok alapvetően osztályokból állnak, az osztályok között pedig függőségek léteznek, ha egymástól függő osztályok különböző csomagokba kerülnek, akkor ez a csomagok közötti függőségek kialakulásához vezet. Ezért a csomagdiagramok a csomagokat és a függőségeket jelentő szimbólumokat tartalmazzák.

ÁLLAPOTDIAGRAM

Az osztályok belső állapottal rendelkezhetnek, mely üzenetek hatására megváltozhat. Az állapotdiagram egy osztály belső állapotainak egymástól és különböző üzenetektől való függését írja le. Egy állapotokat és eseményeket összekapcsoló gráf, amely egy objektum eseményekre történő állapotváltozásait ábrázolja.

Egy állapotdiagram elemei:

Állapotok (ívelt oldalú téglalapok)

Kezdőállapot (teli körlap)

Záró állapot (céltábla).

4-8. ábra

SZEKVENCIA DIAGRAM

Az objektumok közötti üzenetváltások időbeli sorrendjének leírására szolgál.

Egy SZEKVENCIA DIAGRAM elemei:

  • Példaobjektumok: Általában feladatokat jelölnek.

Jele: téglalap

  • Életpálya: az objektumok élettartamára utal.

Jele: függőleges vonal

  • Az egyes objektumok közötti üzenetváltások

4-9. ábra

AKTIVITÁS DIAGRAMOK segítségével a rendszerben megjelenő tevékenységek végrehajtásának módja írható le (mint egy folyamatábrán).

4-10. ábra

EGYÜTTMŰKÖDÉSI DIAGRAM

Az együttműködési diagramok szemléletesen mutatják az adott tevékenységben részt vevő objektumok strukturális elhelyezkedését. Az üzenetek időbeli sorrendjének leírására az üzeneteknek bekövetkezési sorrendjük szerinti számozása. Az együttműködés diagramon objektumok szerveződése, kapcsolódási módjaik hangsúlyosak, nem pedig az üzenetváltások időbeli sorrendje (ezt az üzenetek számozásával jelölhetjük, ha fontos a végrehajtás sorrendje). A diagramon a példaobjektumok ikonként szerepelnek, az üzeneteket a kapcsolatok melletti nyilak és elnevezések jelölik

4-11. ábra

4-12. ábra

KOMPONENSDIAGRAMOK :

A szoftvermodulok közötti kapcsolatokat reprezentálnak. A komponensek a szoftvermodulok fizikai kódját testesítik meg, melyek a csomagdiagramokban megjelenő csomagoknak felelnek meg. A komponensek közötti kommunikáció a megfelelő csomagok közötti függőségek alapján történik.

4-13. ábra

Telepítési diagram

Működő rendszerünket alkotó szoftver és hardverkomponensek közötti fizikai kapcsolatot írják le. A feladatkiosztási diagramok csomópontjai a számítógépes rendszerünk fizikai erőforrásait reprezentálják. Egygépes környezetben elhanyagolható, ha rendszerünk osztottá válik, akkor egyre fontosabb szerep jut szoftverünk architektúrájának a fizikai architektúrájára való optimális leképezése. A telepítési diagram modellelemei:

- Csomópont: egy hardver elem, processzor, számítógép vagy egyéb eszköz. A csomópont sztereotípusai például: pc, pc-kliens, pc-szerver, printer, cd-rom, storage (tároló) stb.

- Kapcsolat: A csomópontok közötti kapcsolat lehet társítási, öröklési, tartalmazási stb. A kapcsolat sztereotípusa lehet például: lokális háló , TCP/IP.

- Komponens: A csomópontokra komponensek tehetők. Ez jelzi, hogy a komponens a hardver elemen van, illetve fut.

4-14. ábra

A fent ismertetett UML1 az UML1különböző verzióiban használatos 9 diagram segítségével modellezte a rendszert. Az UML fejlesztése során újabb diagramok segítségével bővítették a modellezési lehetőségeket.

Az UML2 diagramjai:

Szerkezeti diagramok:

▪ Osztály diagram (Class Diagram), Objektum diagram (Object Diagram)

▪ Telepítési diagram (Deployment Diagram): ez az egyetlen diagram, amely az implementációs környezet elemeivel foglalkozik. Némileg különbözik a korábbitól, mivel új modellelemek jelentek meg a diagramban.

▪ Csomag diagram (Package Diagram), Komponens diagram (Component Diagram): hasonlóan az osztálydiagramhoz, csomagok és komponensek ábrázolására szolgálnak.

Composite Structure Diagram : a belső szerkezet ábrázolására szolgáló új diagram típus, az osztályok, komponensek hierarchikus kompozícióját mutatja be.

A viselkedést leíró diagramok áttekintése:

▪ Szekvencia diagram (Sequence Diagram)

▪ Kommunikáció diagram (Communication Diagram) – a korábbi együttműködési diagram

▪ Aktivitás diagram (Activity Diagram)

Interakció áttekintés (Interaction Overview Diagram)

▪ Állapotgép diagram (Statemachine Diagram)

Idő diagram (Timing Diagram)

▪ Használati eset diagram (Use Case Diagram)

Az Uml bármely változata segít a modellvezérelt tervezésben, de a modellező eszköz fejlesztése nem helyettesítheti az ember tervezési feladatát. Mi az UML1 diagramjait használjuk, mert az könnyebben áttekinthető, valamint a kiválasztott szoftver -amit használni fogunk- az UML1 9 diagrammjának megrajzolását támogatja. A választást az indokolta, hogy nem informatikusokat képzünk, hanem olyan szakembereket, akik az információtechnológia eszközeinek eredményes alkalmazói, használói lesznek.