Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:uml

< Programozás

UML

  • Szerző: Sallai András
  • Copyright © 2011, Sallai András
  • Szerkesztve: 2011, 2014, 2020, 2023
  • Licenc: CC BY-SA 4.0

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.
Prog.java
class Dolgozo {
    String nev;
    int kor;
    public void kiirMinden() {
        System.out.println(this.nev);
        System.out.println(this.kor);
    }
}
 
class Kezelo {
    public void kiir() {
        Dolgozo janos = new Dolgozo();
        janos.nev = "Nagy János";
        janos.kor = 35;
        janos.kiirMinden();
    }
}

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.

Prog.java
class Dolgozo {
    String nev;
    int kor;
}
 
class Mernok extends Dolgozo {
    String diploma;
}

Függőség

Prog.java
class Dolgozo {
    String nev;
    public void ir() {
        System.out.println(this.nev);
    }
 
}
 
class Kezelo {
 
    Dolgozo dolgozo;
    public void csinalValamit() {
        dolgozo.ir();
    }
}

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

  • Sztereotípia: function
  • Osztálynév: elhagyva

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

  1. osztály diagram
  2. csomag diagram
  3. vegyes szerkezeti diagram
  4. komponens diagram
  5. profil diagram
  6. használati eset diagram
  7. statikus gép diagram
  8. aktivitás diagram
  9. kölcsönhatás áttekintő diagram
  10. szekvencia diagram
  11. kommunikációs diagram
  12. objektum diagram
  13. ütemezési diagram
  14. telepítés diagram

Linkek

oktatas/programozas/uml.txt · Utolsó módosítás: 2024/10/10 18:51 szerkesztette: admin