Tartalomjegyzék
UML
- Szerző: Sallai András
- Copyright © 2011, Sallai András
- Szerkesztve: 2011, 2014, 2020, 2023
- Licenc: CC BY-SA 4.0
- Web: https://szit.hu
Bevezetés
Az UML az Unified Modeling Language szavakból alkotott betűszó. Magyarul Egységesített Modellező Nyelv.
Egy grafikus modellező nyelv a szoftverrendszerek különböző nézeteinek modellezésére, de alkotóik szerint általános célú.
Grady Booch, James Rumbaugh és Ivar Jacobson munkája, amely 1.0 verzióként, 1997-ben az USA-ban készült.
- 1.0 - 1997
- 2.0 - 2004
Az OMG csoport szabványosítja, amelynek tagja a következő cégek:
- Hewlett-Packard
- IBM
- MS
A szoftverfejlesztés során a tervezésben használjuk, a megbízható és áttekinthető tervezet létrehozása érdekében.
A következő nyelvek mellett előszeretettel használják:
- Java
- C++
- Ada
- Smalltalk
Mit modellezhetünk vele:
- szervezetek
- rendszerek
- szereplők (egy rendszer, egy szervezet szereplője)
- üzleti tevékenység folyamatai
- logikai összetevők
- szoftverek
- adatbázisok
Diagramok
Struktúramodellezés
A rendszer struktúráját ábrázoló diagramok
- Osztálydiagram (class diagram)
- Megadja a rendszer osztályait, azok közötti kapcsolatokat és az öröklési hierarchiá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 egy szoftver milyen komponensekből épül fel.
- Telepítési diagram (deployment diagram)
- Megadja, hogy milyen szoftver elemeket milyen hardverre telepítünk.
Viselkedés modellezés
A rendszer viselkedését ábrázoló diagramok.
- Használati eset diagram (use case diagram)
- Megadja, hogy a felhasználó mire tudja használni a rendszert.
- Megadja, milyen esetekben használható egy szoftver
- Szekvenciadiagram (sequence diagram)
- Aktorokat, objektumokat és az azok közötti kapcsolatokat, kölcsönhatásokat (üzeneteket) ábrázoló diagram.
- A szekvenciadiagramot és az együttműködési diagramot együttesen interakció diagramoknak nevezzük.
- A szekvenciadiagram olyan interakció diagram, mely az idő múlására helyezi a hangsúlyt.
- Együttműkösi diagram (collaboration diagram)
- Megadja a rendszer objektumait, az azok közötti kapcsolatokat és üzeneteket.
- Az együttműködési diagram az osztálydiagram egy „pillanatfelvétele”.
- 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.
- Á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.
Rajzelemek
Osztály diagram
Az UML-ben az osztályokat egy téglalapban ábrázoljuk, amelyet vízszintesen három részre osztunk. Legfelülre írjuk az osztály nevét, középre az adattagokat, alulra pedig a metódusokat.
Egy osztályból létrehozott objektumot is téglalapban ábrázolunk, de az objektum nevét aláhúzzuk,
Osztályok közötti kapcsolatok
Asszociáció
Az asszociáció többféle kapcsolatot is takarhat. Jelölése:
- A Kezelo osztály egyik metódusa a Dolgozo osztály típussal tér vissza.
- Prog.java
class Dolgozo { String nev; int kor; } class Kezelo { public Dolgozo ujDolgozo() { Dolgozo janos = new Dolgozo(); janos.nev = "Nagy János"; janos.kor = 35; return janos; } }
- A Kezelo osztály egy metódusának paramétere Dolgozo típusú.
- Prog.java
class Dolgozo { String nev; int kor; } class Kezelo { public void kiir(Dolgozo dolgozo) { System.out.println(dolgozo.nev); System.out.println(dolgozo.kor); } }
- A Kezelo osztály egyik metódusa, hívja a Dolgozo osztály egyik metódusát.
- A Kezelo osztály egyik metódusa (lokálisan) példányosítja a Dolgozo osztályt.
Aggregáció
- A Dolgozo osztály tartalmaz egy Lakcim adattagot, de a lakcim objektum nem a Dolgozo osztály példányával együtt jön létre.
- Prog.java
class Dolgozo { String nev; int kor; Lakcim lakcim; public beallitLakcim(String telepules, String cim) { this.lakcim = new Lakcim(telepules, cim); } } class Lakcim { String telepules; String cim; public Lakcim(String telepules, String cim) { this.telepules = telepules; this.cim = cim; } }
Ha a beallitLakcim() metódust a Dolgozo osztály konstruktorában hívnám meg, akkor már erős kötést, vagyis kompozíciót hoznék létre, mivel együtt jönne létre a lakcim objektum és a Dolgozo objektummal.
Kompozíció
- A Dolgozo osztály tartalmaz egy Lakcim adattagot, és a lakcim objektum a Dolgozo osztállyal együtt jön létre, és együtt szűnik meg.
- Prog.java
class Dolgozo { String nev; int kor; Lakcim lakcim; public Dolgozo(Lakcim lakcim) { this.lakcim = lakcim; } } class Lakcim { String telepules; String cim; }
Ha Dolgozo osztály konstruktora public Dolgozo(String nev) { this.name = name } lenne, nem szokás aggregációról beszélni, mivel egyszerű adattípus a String.
Öröklés
- A Mernok osztály a Dolgozo osztályból származik.
Függőség
Konstruktor
A Dia programban jelöljük a műveletek között:
- [o] Osztály hatáskör - ez aláhúzza
- Sztereotípia: constructor - így jelenik meg: «constructor»
- Sztereotípia: C - így jelenik meg: «C»
Mindkettő jó megoldás, de nem kötelező.
Függvények
Komponens diagram
Használati eset diagram
Hogyan kezdjük egy ilyen diagram készítését?
Követelmények összegyűjtése az alkalmazáshoz. Az eredményeket használati-eset diagrammal mutatjuk be. Ez a használati-eset diagram lesz az alapja a szoftverfejlesztés többi szakaszában.
Elsőként rajzoljunk egy téglalapot, ami a rendszer határait ábrázolja. Tegyük fel milyen szereplők vannak, és azok mit csinálnak a rendszerben.
Szekvencia diagram
Állapot diagram
Aktivitás diagram
Telepítési diagram példa
Függelék
UML 2.2 diagram típusok
- osztály diagram
- csomag diagram
- vegyes szerkezeti diagram
- komponens diagram
- profil diagram
- használati eset diagram
- statikus gép diagram
- aktivitás diagram
- kölcsönhatás áttekintő diagram
- szekvencia diagram
- kommunikációs diagram
- objektum diagram
- ütemezési diagram
- telepítés diagram