Professional Documents
Culture Documents
Információtartalom vázlata
UML
(Unified Modeling Language)
Története:
Az UML definíciója
Az OMG definíciója az UML-ről:
Az egységesített modellező nyelv (UML) egy grafikus nyelv egy szoftver-intenzív rendszer
termékeinek megjelenítésére, specifikálására, felépítésére és dokumentálására. Az UML
szabványos lehetőségeket kínál a rendszer felvázolásához, beleértve a fogalmi dolgokat, mint
üzleti modellezés és rendszerfunkciók, valamint a konkrét dolgokat, mint programnyelvi
utasítások, adatbázis sémák és újrafelhasználható szoftverkomponensek."
Az UML általános célú modellező nyelv, így nem csak szoftverekről készíthető vele modell.
Nagyon széleskörűen használható:
Rendszerek, szervezetek
Szereplők
Üzleti tevékenységek, folyamatok
Logikai összetevők
Szoftverek, programok
Adatbázisok modellezésére is.
Az UML elemei
Elemek
- strukturális: osztály, interfész, együttműködés, use case, aktív osztály, komponens,
csomópont (működés)
- viselkedési: egymásrahatás, állapot
- csoport elem: package-ek
- megjegyzés elem: jegyzet
Architektúra
Egy rendszer alapvető szerkezeti felépítése, amely a komponenseiben, ezek egymáshoz ill. a
környezethez való kapcsolódásaiban, valamint azon elvekben fejeződik ki, amelyek a
rendszer tervezését, működését és továbbfejlesztését meghatározzák.
Építőelemek
- nézetek:use case, logikai, implementációs, párhuzamossági és működési
- építőelemek: elemek, kapcsolatok, diagramok
- nyelvi szabályrendszer: név, kiterjesztés, láthatóság,
- integritás végrehajtás
- nyelvi mechanizmus: specifikációk, megjegyzések,
- osztott elemek, kiterjesztés
Elemek és relációk
A rendszer egyes nézeteinek statikus és dinamikus sajátosságait különböző diagramokkal
fejezhetjük ki, amelyek a rendszer elemei közötti relációkat írják le, több különböző
szemszögből nézve.
Az UML négy relációtípust különböztet meg:
1. 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ással van a
másikra.
Grafikus ábrázolásában a szaggatott nyíl a független elem felé mutat.
2. asszociáció (association)
Az objektumok kapcsolatát, ezek struktúráját határozza meg. Speciális esete a rész-egész
viszony, amely kétféle lehet: aggregáció vagy kompozíció. Aggregáció esetén a rész az
egészhez tartozik, de önmagában is létező entitás, míg kompozíció esetén a rész
önmagában nem létezhet, csak az egész elemeként.
A szemléltető nyílon jelöljük az asszociáció irányát, multiplicitását. Rész-egész viszony
esetén az egésznél lévő vonalvég egy csúcsára állított, aggregációnál „lyukas”,
kompozíciónál tömött rombusz.
3. általánosítás és specializáció (generalization/ specification)
Az objektumok speciális viszonya, gyermek-szülő kapcsolat, amelyben a fölérendelt elem
az általános, az alárendelt a specializált.
ábrázolása egy „lyukas” nyíl, amely a szülő felé mutat.
4. megvalósítás (realization)
Annak kifejezése, hogy egy osztály biztosít egy másikat arról, hogy elvégez számára egy
bizonyos feladatot.
Grafikus szimbóluma egy szaggatott, „lyukas” fejű nyíl.
Diagramok
Az UML alapelemei a diagramok, melyek szabvány UML jelölést használnak. Az UML 2.0
verziójában már 13 különböző diagram található. Ezekről ad áttekintést az 1. sz. melléklet.
Strukturális diagramok
Ez a típus a rendszer egészéről, felépítéséről ad felvilágosítást.
- Osztálydiagram (Class Diagram): Megadja a rendszer osztályait, és az azok közötti
társítási és öröklési kapcsolatokat. Az adatbázisdiagram (database diagram) egy speciális
osztálydiagram, amely megadja a rendszer perzisztens adatainak szerkezetét.
- Objektumdiagram (Object Diagram): Megadja a rendszer objektumait, és az azok
közötti kapcsolatokat. Az osztálydiagram egy „pillanatfelvétele”.
- Komponensdiagram (Component Diagram): Megadja a szoftver fizikai felépítést,
vagyis a tervezési elemek szoftver elemekre való leképezését
- Telepítési diagram (Deployment Diagram): Megadja, hogy milyen szoftver elemeket
milyen hardverre telepítünk.
- Összetett szerkezet diagram (Composite Structure Diagram): az osztály belső
szerkezetét mutatja meg.
- Csomag diagram (Package Diagram): a rendszer elemeinek logikai csoportokra való
osztását és azok összefüggéseit ábrázolja
Viselkedés diagramok
A rendszer történéseit, és azok paramétereit modellezi.
- Használatieset-diagram (Use Case Diagram). Megadja, hogy a felhasználó mire
tudja használni a rendszert. Aktorokat, használati eseteket és azok kapcsolatait ábrázoló
diagram. Funkcionális követelményeket ábrázoló diagram.
- Állapotdiagram (State Diagram): Egy adott osztály vagy alrendszer
állapotváltozásait írja le.
- Aktivitásdiagram (Activity Diagram): Leír egy folyamatot (tevékenységek
egymásutánját). Az üzleti folyamat diagram egy speciális aktivitásdiagram, mely leírja a
rendszert körülvevő folyamatokat, illetve azt a környezetet, amelybe a rendszert el kell
helyezni.
Interakciós diagramok
A rendszerelemek közti kommunikációt modellezik.
- Szekvenciadiagram (Sequence Diagram): Aktorokat, objektumokat és az azok
közötti kapcsolatokat, kölcsönhatásokat (üzeneteket) ábrázoló diagram. A
szekvenciadiagram olyan interakció diagram, mely az idő múlására helyezi a hangsúlyt.
- Együttműködési diagram (Collaboration (UML 1.x)/Communication Diagram
(UML 2.0)): Megadja a rendszer objektumait, az azok közötti kapcsolatokat és üzeneteket.
Az együttműködési diagram a szekvenciadiagram egy más formája – olyan interakció
diagram, mely az objektumok közötti kapcsolatra helyezi a hangsúlyt.
- Interaction Overview Diagram (UML 2.0) A variant of an activity diagram
which overviews the control flow within a system or business process. Each
node/activity within the diagram can represent another interaction diagram.
- UML Timing Diagram (UML 2.0) Depicts the change in state or condition of a
classifier instance or role over time.
Hátrányai
Bár az UML széles körben elterjedt, mégis számos kritikát fogalmaztak meg vele szemben.
Túl sok diagramot használ, melyek részben redundánsak, ezért bonyolulttá, nehezen
áttekinthetővé vált. AZ UML szemantikája nem definiált szigorúan, részben OCL-ben,
részben angolul van, ami szintén megnehezíti az értelmezését. Ez a nyelv még nem kiforrott,
ez abból is látszik, hogy az 1-es és a 2-es verzió közt is vannak eltérések, és mivel még
mindig fejlesztik, valószínűsíthető, hogy továbbra is változni fog. A legnagyobb hátránya
viszont az, hogy amennyi idő alatt lemodellezünk vele egy programot, azalatt kényelmesen
meg is írhatjuk azt.
Modelltípusok:
- rejtettek
- nem rejtettek
- inkonzisztensek
Mechanizmusok