Tartalomjegyzék

< Programozás

UML

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.

Az OMG csoport szabványosítja, amelynek tagja a következő cégek:

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:

Mit modellezhetünk vele:

Diagramok

Struktúramodellezés

A rendszer struktúráját ábrázoló diagramok

Viselkedés modellezés

A rendszer viselkedését ábrázoló diagramok.

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:

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;
    }
}
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);
    }
}
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ó

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ó

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

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();
    }
}

Komponens diagram

Használati eset diagram

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