Unified Modeling Language (UML) Áttekintés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 08. 10. 16. Unified Modeling Language UML / 1
Szüks kségessége Az objektum orientált fejlesztési módszerek a rendszer különbözı nézıpontú modelljeit készítik el A modellek dokumentálására megfelelı technikára van szükség A technikának szabványosnak kell lennie, mert ez segíti a fejlesztık közötti kommunikációt (közös nyelv), lehetıvé teszi a technikát támogató eszközök ("tool"- ok) készítését Unified Modeling Language UML / 2
Az UML törtt rténete 1. Az 1990-es évek közepe - vezetı módszertanok: Booch'93 (Booch): erıs a tervezés fázisában, népszerő az engineering-intenzív alkalmazásoknál. OMT2 (Rumbaugh) : erıs az analízis fázis során, népszerő az adat-intenzív alkalmazásoknál. OOSE (Jacobson) : kiváló támogatást ad a "business engineering"-hez, és igazan csak ez támogatja a követelmény analízist. Unified Modeling Language UML / 3
Az UML törtt rténete 2. 1991-ben Grady Booch és Jim Rumbaugh (Rational Software Corporation) 1995 október: UML 0.8 1995-ben Ivar Jacobson is csatlakozott 1996. október: UML 0.91 1997. január 17.: UML 1.0 (OMG-nek!) 1997. szeptember: UML 1.1 (szabvány!) az utolsó teljes szabványos verzió az UML 1.5 (elfogadva 2003. március) Részben elfogadva: UML 2.0 (2006. március.) Unified Modeling Language UML / 4
Az UML törtt rténete 3. Iparszerû alkalmazás 1997. jan. 17. UML 1.0 Szabványosítás 1995 1996 jun, okt. UML 0.8 UML 0.9 További fejlesztõ partnerek Egységesítés Booch'93 OMT2 Más módszerek Booch'91 OMT-1 OOSE Sokféleség Unified Modeling Language UML / 5
Az UML definíci ciója Az OMG Unified Modeling Language Specification, vers. 1.5 dokumentum 1.1 pontjának (Overview) elsı két mondata: The Unified Modeling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other nonsoftware systems. The UML represents a collection of the best engineering practices that have proven successful in the modeling of large and complex systems. Unified Modeling Language UML / 6
Az UML fı célkitőzései 1. Kifejezı vizuális modellezı nyelv biztosítása fejlesztés támogatása kommunikáció támogatása Lehetıség az alap koncepció bıvítésére és specializálására Alkalmazkodni tudjon a különbözı fejlesztések szükségleteihez Szokásos fejlesztés: elegendı legyen hozzá az alap eszköztár Új elképzelésekkel az alapok módosítása nélkül legyen kiegészíthetı (kiterjesztési mechanizmus) Egy adott alkalmazásterület speciális igényei szerint testre szabható legyen Unified Modeling Language UML / 7
Az UML fı célkitőzései 2. Programozási nyelvtıl és módszertantól független legyen Biztosítson formális alapot a modellezı nyelv megértéséhez Precíz definíciók szükségesek az eszköz készítık számára Érthetı (nem túl formális) definíciók szükségesek a felhasználók számára Megoldás: metamodell osztály diagrammok segítségével Unified Modeling Language UML / 8
Az UML fı célkitőzései 3. Támogatja az objektum orientált eszközök fejlesztését Számos felhasználó által ismert és használt, szabványos eszköz Az eddigi gyakorlati tapasztalatok ("best practices") integrálása A magas szintő fejlesztési koncepciók támogatása: komponensek, keretrendszerek, minták (patterns) stb. Unified Modeling Language UML / 9
A legteljesebb: www.omg.com/uml Hivatkozások 1. Vég Csaba: Alkalmazásfejlesztés a Unified Modeling Language szabványos jelöléseivel Logos 2000, Debrecen, 2000 Raffai Mária: Egységesített mogoldások a fejlesztésben; UML modellezı nyelv, RUP módszertan Novodat, 2001. Unified Modeling Language UML / 10
Hivatkozások 2. Sike Sándor, Varga László: Szoftvertechnológia és UML ELTE Eötvös Kiadó, Budapest, 2002. Unified Modeling Language UML / 11
A modell leíró nyelv elemei 1. A továbbiakban szereplı elemek az 1.5 verzió szerinti állapotnak megfelelıek. use case diagramm osztály diagramm viselkedés diagrammok : állapot diagramm (state diagram) aktivitás diagramm (activity diagram) sorrend diagramm (sequence diagram) együttmőködési diagramm (collaboration diagram) Unified Modeling Language UML / 12
A modell leíró nyelv elemei 2. implementációs diagrammok: komponens diagramm (component diagram) telepítési diagramm (deployment diagram) kiterjesztési mechanizmusok kiegészítı jelölések, amelyek több diagramtípus által is használhatók Az UML tehát nem módszertan! Unified Modeling Language UML / 13
Kiterjesztési si mechanizmusok Az UML kiegészítı jelölései. Feladatai: a szabványos jelölésrendszer "testre szabása" a szabványos elemekkel nem leírható modell tulajdonságok rögzítése Fajtái: sztereotípia (stereotype): új modell elemek jelölésére megszorítás (constraint): az UML más jelöléseivel meg nem adható tulajdonságok kulcsszavas értékek (tagged values): modell elemek speciális jellemzıinek megadására megjegyzések Unified Modeling Language UML / 14
Megjegyzések Formája: Megjegyzés szövege Megjegyzés teljes szövege: megjegyzes.doc Kapcsolható egy elemhez: Egy osztály Elemhez kapcsolt megjegy zés Unified Modeling Language UML / 15
Sztereotípia Formája: «megnevezés» A minısített név elıtt vagy fölött kell megadni. Ikon is rendelhetı hozzá. Az egyes ábratípusoknál speciális sztereotípiák jelennek meg. Unified Modeling Language UML / 16
Megszorítások sok Formája: { megszorítás leírása } A leírás lehet szöveges vagy formális. A formális leírásra egy ajánlat: OCL (Object Constraint Language, IBM) Megadható: minısített elem után vagy alatt kapcsolt megjegyzésben Unified Modeling Language UML / 17
Kulcsszavas értékek Formálisan ez is megszorítás Adott névhez értéket rendel Érték önállóan is szerepelhet A fejlesztéssel kapcsolatos információkat is így rögzíthetjük Példák: { persistent } {author="", version=0.9.9, date=00.01.01} Unified Modeling Language UML / 18
Jacobson "hozománya" Use case diagram 1. Use Case (használati eset): interakció a felhasználó és az alkalmazás között a felhasználó által látható funkciót ír le konkrét felhasználói cél elérését rögzíti A rendszer határait jelölhetjük ki. Lényeges szerepe van a követelmény analízis során Unified Modeling Language UML / 19
Use case diagram 2: Aktor Jele: Vásárló (f rom Act ors) A felhasználó egy szerepe a rendszerben. Több felhasználó - egy aktor Egy felhasználó - több aktor Aktor lehet külsı rendszer is Unified Modeling Language UML / 20
Use case diagram 3: Use case Egy jól meghatározott funkció, amelynek végrehajtása a rendszer és egy külsı entitás közötti üzenetváltást kíván. Jele: Áruvásárlás A rendszer, egy alrendszer vagy egy osztály objektumai által végrehajtott funkció-együttes. Pontos leírása is szükséges (szöveges vagy egyéb diagram) Unified Modeling Language UML / 21
Fizetés a kasszánál: Use case diagram 4: PéldaP A vevı a kasszához megy a kiválasztott árukkal, a pénztáros leolvassa a vonalkódokat, a rendszer elkészíti a blokkot, a vevı fizet, a pénztáros elveszi az összeget. Aktorok: vevı, pénztáros A rendszer válaszai: egységár a vonalkódokra Use-case-ek: vásárlás, blokkolás, fizetés Unified Modeling Language UML / 22
Use case diagram 5: Példa P (ábra)( Áruvásárlás Vásárló (f rom Actors) Blokkolás Fizetés Pénztáros Unified Modeling Language UML / 23
Use case diagram 6: kapcsolatok Aktor és use case között: asszociáció (jelölhetı a számossága is) Use case-ek között: <<include>>: A1 use case magában foglalja A2- ıt (részletezés, vagy ismétlıdés kezelése) <<extend>>: A1 use case mőködését A2 kiegészíti (többlet funkciók vagy speciális esetek) Aktorok vagy use case-ek között: általánosítás (generalization) Unified Modeling Language UML / 24
Use case diagram 7: kapcsolatok (ábra)( Általánosítás <<include>> Pénztáros (f rom U se Cas e View) Áruvásárlás Blokkolás (f rom Use Case View) Göngyöleg kezelés <<exte nd>> Boltvezeto Hitel adás Árulista megnézése Unified Modeling Language UML / 25
Osztálydiagram Osztályok és összefüggéseik ábrázolására A rendszer statikus strukturális modellje Három szint: koncepcionális specifikációs implementációs - általában túl sok részlet, de dokumentáció kódgenerálás Rajzolható objektum diagram is, az osztályok példányainak felhasználásával Unified Modeling Language UML / 26
Osztálydiagram: osztály szimbóluma Koncepcionális Im plementációs Specifikációs Windowk Windows visibili ty : Bool ean size : Area <<abstract>> Windowi size : Area = (100,100) visibility : Boolean = invisible xptr : XWindow* display() hide() attachxwindow() create() Név Attribútumok Operációk display() hide() Unified Modeling Language UML / 27
Osztálydiagram: objektum szimbóluma Egy konkrét objektum Objektum neve : Osztály nevepl.: KissPista : Hallgató Egy osztály tetszıleges objektuma : Osztály neve Megadhatók konkrét attribútum értékek is KissPista : Hallgató Név = Kiss Pista NeptunKód = ZZZZZZ Megjegyzés: az aláhúzás része a jelölésnek! Unified Modeling Language UML / 28
Formája: Osztálydiagram: attribútumok tumok láthatóság név : típus = alapérték A láthatóság jelölése: szabványos: + public # protected - private Window private attr. protected attr. public attr. Rational Rose szerint Unified Modeling Language UML / 29
Osztálydiagram: attribútumok tumok koncepcionális szint: az osztálynak van ilyen adata (pl. a vásárlónak van neve) specifikációs szint: az osztálynak van adott típusú adata, amelyen meghatározott operációk hajthatók végre (pl. a vásárló neve beállítható, lekérdezhetı) implementációs szint: az osztály adott típusú mezıje és az azokat kezelı módszerei Unified Modeling Language UML / 30
Osztálydiagram: operáci ciók Formája: láthatóság név(param) : típus{comment} típus a visszatérési érték típusa param a paraméterlista (vesszıvel elv.) azonosító : típus = alapérték Közöttük lehetnek az alábbi sztereotípusok: <<constructor>> <<query>> <<update>> <<getting method>> vagy <<setting method>> Unified Modeling Language UML / 31
Osztálydiagram: operáci ciók koncepcionális szint: a viselkedés lényegi elemei specifikációs szint: az osztály publikus módszerei implementációs szint: az osztály módszerei Unified Modeling Language UML / 32
Osztálydiagram: kapcsolatok Kapcsolat az egyes osztályok között Asszociáció (általános kapcsolat) Nevesített kapcsolatok: általánosítás tartalmazás (aggregáció és kompozíció) beágyazott (osztály hatáskörben definiált) osztály - elsısorban az implementációs szintő diagrammokon Unified Modeling Language UML / 33
Osztálydiagram: asszociáci ció Jele vonal, tulajdonságai: kapcsolat neve, szerepkör (mindkét irányban), irányítása (egy-vagy kétirányú vagy nincs), a szerepkörök számossága n..m vagy n-m vagy n,m,...,k n,m stb lehet 0 vagy * (végtelen) * magában a 0..* -ot jelenti. A szerep kötött sorrendje is elıírható. Az asszociáció minısítıje is elıírható. Az asszociációhoz a tulajdonságait leíró osztály is rendelhetı. Unified Modeling Language UML / 34
Osztálydiagram: asszociáci ció koncepcionális szint: viszony a fogalmak között specifikációs szint: felelısségek implementációs szint: az elérhetıség megvalósítása (pl. pointer, kulcs) Unified Modeling Language UML / 35
Osztálydiagram: asszociáci ció Példa: Szerep nevek Cég +alkalmazó 0..1 Alkalmazás +alkalmazott 1..* Személy Számosság Kapcsolat neve Számosság Unified Modeling Language UML / 36
Osztálydiagram: asszociáci ció (szerep) A szerep lehet sorrendiségi, azaz jelölhetjük, hogy az objektumok kötött sorrendben vesznek részt az asszociációban Jelölése az {ordered} megszorítással Példa: multiplicitás +alkotja 3..* sokszög pont {ordered} Szerepnév Kötött sorrendben! Unified Modeling Language UML / 37
Osztálydiagram: asszociáci ció (szerep) Két osztály közötti asszociációhoz tartozhat több szerep is Ilyenkor minden szerephez egy vonal Példa: +regisztrált Tárgy felvesz demonstrátor +gyakvezér Hallgató Unified Modeling Language UML / 38
Osztálydiagram: asszociáci ció (minısítı) A minısítı konkrét értékei az asszociáció többes oldalán az objektumok egy példányát vagy egy részhalmazát jelölik ki. Jele: Osztály1 minısítı Osztály2 Unified Modeling Language UML / 39
Osztálydiagram: asszociáci ció (minısítı) Példa: Tárgy tárgykód Hallgató felvesz Ennek megfelelı objektum diagram: Software Technológia : Tárgy GEIAL2144N felves z KissPista: Hallgató Unified Modeling Language UML / 40
Osztálydiagram: asszociáci ció (tulajdonság) Olyan tulajdonságokat, amelyek inkább az asszociációhoz, mint valamelyik osztályhoz rendelhetık, összefoglalhatunk egy harmadik osztályba, amelyet a kapcsolathoz rendelünk. Jelölés: Osztály1 Osztály2 Tulajdonság Unified Modeling Language UML / 41
Osztálydiagram: asszociáci ció (tulajdonság) Példa: Cég Személy Alkalmazás Kezdete Fizetés beosztás Unified Modeling Language UML / 42
Osztálydiagram: asszociáci ció (többes) Több osztály között fennálló asszociáció jelölése: Osztály4 Osztály1 Osztály2 Osztály1 Osztály2 Osztály3 Osztály3 Unified Modeling Language UML / 43
Osztálydiagram: Általánosítás Speciális (közvetett) viszony két osztály között koncepcionális szint: típus - altípus viszony specifikációs szint: az alosztály interface-e rendelkezik az ısosztály interfac-ének minden elemével implementációs szint: öröklıdés (származtatás) Unified Modeling Language UML / 44
Osztálydiagram: Általánosítás Alakzat Kör Téglalap Hatszög Unified Modeling Language UML / 45
Osztálydiagram: aggregáci ció és s kompozíci ció Kétféle egész - rész viszony: aggregáció: a rész az egészhez tartozik, de önállóan is létezı entitás kompozíció: a rész önmagában nem létezhet, csak valaminek a részeként. Unified Modeling Language UML / 46
Osztálydiagram: aggregáci ció és s kompozíci ció (ábra) Autó Ház Motor 1 4..5 Kerék 0..1 1..* Konyha Szoba Aggregáció Kompozíció Unified Modeling Language UML / 47
Osztálydiagram: parametrizált osztály Elemek:Tombelem elemszám:integer Paraméterek DinTomb Parametrizált osztály <<bind (Cím, 100)>> Konkretizálás paraméterei Címlista Konkretizált osztály Unified Modeling Language UML / 48
Osztálydiagram: interface Az <<interface>> sztereotípiával, vagy egy körrel jelöljük Csak a metódusoknak van hely Interface-ek közötti lehetséges asszociáció: általánosítás Interface és osztály közötti lehetséges asszociáció: implementálás, realizálás. Jele a példán. Unified Modeling Language UML / 49
Szekvencia diagram 1. Objektumok közötti üzenetváltások az idıben Elemei: példaobjektumok, életvonallal, aktivitási szakasszal (vezérlési fókusszal) üzenetek (név, argumentum, feltétel, ismétlıdés) megjegyzések az ábrától balra Unified Modeling Language UML / 50
Szekvencia diagram 2: példap Forrás: UML specification Unified Modeling Language UML / 51
Szekvencia diagram 3: üzenet fajták Objektum1 Objektum2 Egyszerû üzenet Szinkron üzenet Aszinkron üzenet Uzenet time-outttal Unified Modeling Language UML / 52
Szekvencia diagram 4: példap Élettartam kezdete Alternatív mőködés Beágyazott vezérlés fókusz Élettartam vége Forrás: UML specification Unified Modeling Language UML / 53
Egy adott objektum lehetséges állapotai Állapot diagram 1. átmenetek az egyes állapotok között (állapotváltozások) ehhez kapcsolható események az objektum értékeihez kapcsolható feltételek [feltétel] formában az ismétlıdés jelzése (*) kezdı és végállapot egy állapot részletezhetı (strukturált áll. diagram) állapotok között lehet általánosítás kapcsolat Unified Modeling Language UML / 54
Állapot diagram 2. Állapot jelölése Állapot entry/ Belépési tevékenység exit/ Kilépési tevékenység do/ Normál tevékenység on esemény/ ^Eseményhez kapcsolódó tev. Unified Modeling Language UML / 55
Állapot diagram 3. (példa) Forrás: UML specification Unified Modeling Language UML / 56
Együttm ttmőködési diagram 1. Szintén objektumok közötti üzenetváltások az idıben Elemei: példaobjektumok aktív: vastag keret vagy {active} megszorítás üzenetet küldhet másik objektumnak passzív üzenet hatására aktivizálódik multiobjektum: objektumok egy csoportja Az együttmőködı objektumok vonallal összekötve Ellenırzendı: a megfelelı osztályok között az osztálydiagramon asszociációnak kell lennie! Unified Modeling Language UML / 57
Együttm ttmőködési diagram 2. üzenetek objektumok közötti nyilak, sorszámozva és névvel ellátva a nyíl iránya jelzi az üzenetküldés irányát A sorszám sorrendiséget jelez Üzenetnek lehet argumentuma és eredménye Jele kis körbıl kiinduló nyíl, az adatáramlás irányát mutatja A nyílon az argumentum vagy eredmény megnevezése Az ábrán szerepelhet aktor is, ekkor tıle indul az elsı üzenet. Unified Modeling Language UML / 58
Együttm ttmőködési diagram 3. példap Ügyf Vásárló él (f rom Actors) : banki gép Készpénzfelvétel ATM-bıl tranzakció összeg : ATM készpénz összeg engedély tranzakció tranzakció : központi gép összeg rendben Unified Modeling Language UML / 59
Együttm ttmőködési diagram 4. példap Multi objektummal Zh eredmény hirdetés : oktató eredménylap : hallgató Unified Modeling Language UML / 60
Aktivitás s diagram Idıben lezajló változások ábrázolása a végrehajtandó tevékenységek és azok sorrendjének megadásával Alapjai: munkafolyamat (work-flow) diagram folyamatábra (flow chart) Alapelemei: tevékenységek (ívelt oldalú téglalap) átmenet (nyíl) szinkronizációs vonal (vastag vízszintes vonaldarab) döntési pont (rombusz) Unified Modeling Language UML / 61
Aktivitás s diagram - példa (nem teljes!) Tágy meghirdetése Határidõig várakozás Kiírások megnézése Tárgyra jelentkezés Tárgy lem ondás a Tárgy véglegesítése Jeletkezés elfogadása Módosítás felajánlása Tárgy megtartása Tárgy lezárása Unified Modeling Language UML / 62
Sávos aktivitás diagram A diagramm függılegesen sávokra osztható Egy sáv egy felelısségi kört (felhasználó, szervezeti egység stb.) jelöl A tevékenységek a sávokhoz rendelhetık, ezzel az adott tevékenységhez tartozó felelıs is ábrázolható Unified Modeling Language UML / 63
Sávos aktivitás diagram - példa Unified Modeling Language UML / 64
Komponens diagram Komponensek: fizikai alkotóelemek. Tipikusan: forrás-állományok könyvtárak futtatható állományok dokumentumok adatfile-ok software komponensek Definiált sztereotípiák: «executable» «library» «tables» «file» «document» Unified Modeling Language UML / 65
Komponens diagram - példa Tárgyra jelentkezés Tárgy kezelés s zerver Adatbázis szerver Web Browser Online szerver Unified Modeling Language UML / 66
Telepítési diagram Tartalma: A rendszer hardware elemei (csomópontok) és a közöttük levı fizikai viszonyok A hardware és software elemek összerendelése Unified Modeling Language UML / 67
Telepítési diagram - példa Tanszéki szerver Adatbázis szerver Admi n. szerver Tárgy kezelés szerver Online szerver TCP-IP (védett) TCP-IP Hallgatói PC Web Browser Unified Modeling Language UML / 68
Modellez ezés támogatása Az UML támogatja teljes modellek felépítését Eszközei: Csomag (package) Alrendszer (subsystem) Modell Unified Modeling Language UML / 69
Csomag Tetszıleges modell elemek csomagba rendezhetık A csomagok egymásba ágyazhatók Egy csomag beágyazott csomagot és egyéb modell elemeket egyszerre is tartalmazhat. A csomagok közötti kapcsolatokat szaggatott nyilak jelzik, a kapcsolat jellegét sztereotípiával adhatjuk meg. Két elıre definiált sztereotípia: <<import>> <<access>> Unified Modeling Language UML / 70
Csomag: : példap Forrás: UML specification Unified Modeling Language UML / 71
Alrendszer Olyan csomag, amely egy viselkedési egység. Az alrendszer interface-eket biztosít a többi alrendszernek Tartalmaz(hat) Operációkat Specifikációs elemeket Realizációs elemeket Unified Modeling Language UML / 72
Alrendszer: jelölés és s kapcsolatok Jelölés: Kapcsolatok: Operációk leírása Interface-ek Forrás: UML specification Unified Modeling Language UML / 73
Modell A rendszer egy nézete (view) Jelölés: Forrás: UML specification Unified Modeling Language UML / 74