UML / 1 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
UML / 2 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 1996 jun, okt. UML 0.9 1995 UML 0.8 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 UML / 3
Hivatkozások 1. A legteljesebb: www.omg.com/uml 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 UML / 4
UML / 5 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 Formája: Megjegyzés szövege Megjegyzések 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 UML / 6
UML / 7 Use case diagram 1. Jacobson "hozománya" 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
UML / 8 Use case diagram 4: PéldaP Fizetés a kasszánál: 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ó (from 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
UML / 9 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 Windowk Specifikációs 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
UML / 10 Osztálydiagram: objektum szimbóluma Egy konkrét objektum Objektum neve : Osztály neve Pl.: Egy osztály tetszıleges objektuma : Osztály neve KissPista : Hallgató 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 Osztálydiagram: attribútumok tumok Formája: 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
UML / 11 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
UML / 12 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 Példa: Osztálydiagram: asszociáci ció Szerep nevek Cég +alkalmazó +alkalmazott Alkalmazás 0..1 1..* Személy Számosság Kapcsolat neve Számosság Unified Modeling Language UML / 36
UML / 13 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: Tárgy +regisztrált felvesz +gyakvezér demonstrátor 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 UML / 14
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 UML / 15
UML / 16 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 Aggregáció Kerék 0..1 1..* Konyha Kompozíció Szoba Unified Modeling Language UML / 47 Osztálydiagram: parametrizált osztály DinTomb Elemek:Tombelem elemszám:integer <<bind (Cím, 100)>> Paraméterek Parametrizált osztály Konkretizálás paraméterei Címlista Konkretizált osztály Unified Modeling Language UML / 48
UML / 17 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
UML / 18 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 Állapot diagram 1. llapot diagram 1. Egy adott objektum lehetséges állapotai á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
UML / 19 Á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
UML / 20 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 tranzakció összeg készpénz tranzakció tranzakció összeg rendben Készpénzfelvétel ATM-bıl összeg : ATM engedély : központi gép 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
UML / 21 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
UML / 22 Sávos aktivitás diagram - példa Unified Modeling Language UML / 64 Komponensek: fizikai alkotóelemek. Tipikusan: forrás-állományok könyvtárak futtatható állományok dokumentumok adatfile-ok software komponensek Komponens diagram 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 Admin. szerver Tárgy kezelés szerver TCP-IP (védett) Online szerver 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 UML / 23
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 UML / 24
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 UML / 25