Ugrás a fő tartalomra

UML diagram generálás dinamikusan pythonnal

UML diagram generálás dinamikusan pythonnal


PlantUML és plantuml Python csomag: A PlantUML egy népszerű eszköz, amely lehetővé teszi UML diagramok létrehozását szöveges leírás alapján. A plantuml Python csomag használatával közvetlenül Pythonból generálhatsz PlantUML diagramokat.

Telepítés:

pip install plantuml

 

Specialis használat Google colab alatti python használat


A Google Colab egy remek platform a Python kód futtatására, de az PlantUML telepítése és használata egy kicsit bonyolultabb, mivel a Google Colab környezetében nem biztos, hogy alapból telepítve van a PlantUML vagy annak szükséges függőségei.


Az alábbiakban bemutatom, hogyan használhatod a PlantUML-t és a plantuml Python csomagot Google Colab-ban:

 Telepítés és beállítás a Google Colab-ban

PlantUML telepítése

Mivel a Google Colab nem tartalmazza alapból a PlantUML programot, először telepítenünk kell egy Java környezetet és magát a PlantUML-t.

Telepítjük a szükséges csomagokat 

!apt-get install -y plantuml

Ezután telepítheted a plantuml Python csomagot a következő módon:

!pip install plantuml


Alternatív megoldás (Automatikus képgenerálás a PlantUML webszolgáltatásával)

Egy egyszerűbb megoldás a PlantUML webszolgáltatásának használata, amely képes a szöveges kódot közvetlenül képpé alakítani. Ez nem igényli a helyi telepítést.

Most, hogy telepítettük a szükséges eszközöket, létrehozhatunk egy PlantUML kódot és renderelhetjük azt.





A megfelelő PlantUML szöveges kód használata UML generáláshoz



A PlantUML egy nyílt forráskódú eszköz, amely lehetővé teszi UML (Unified Modeling Language) diagramok gyors és egyszerű generálását szöveges formátumból. A PlantUML szintaxis egyszerű, így különböző típusú diagramokat készíthetünk vele, például osztálydiagramot, szekvenciadiagramot, tevékenységdiagramot és használati eset diagramot.

PlantUML kulcsszavak és szintaxis

Általános szintaxis:

A PlantUML-ben a diagramokat szöveges kódként lehet definiálni, amelyet a megfelelő eszközzel értelmezünk és ábrázolunk. A diagramok kezdete és vége az @startuml és @enduml kulcsszavakkal van körülhatárolva.



Különböző diagram típusok és kulcsszavak:

Használati eset diagram:

  • Az actor kulcsszóval szereplőket (pl. felhasználókat) hozhatunk létre.
  • A usecase kulcsszóval pedig a használati eseteket.
  • A -> szimbólum mutatja az interakciókat.

Szintaxis példa:

-- plantuml

@startuml actor User User -> (Login) User -> (Browse Products) @enduml


Szekvenciadiagram:

  • A participant kulcsszóval hozhatunk létre résztvevőket.
  • Az interakciók időbeli sorrendje a -> szimbólummal van ábrázolva.

Szintaxis példa:

---plantuml

@startuml actor User participant "Web Browser" as Browser participant "Web Server" as Server User -> Browser : Open Website Browser -> Server : Request homepage Server -> Browser : Display homepage @enduml

Tevékenységdiagram:

  • Az activity kulcsszóval tevékenységeket ábrázolhatunk.
  • A start és stop kulcsszavak az aktivitás kezdő és befejező pontjait jelölik.
  • A -> szimbólum a tevékenységek közötti áramlást mutatja.
  • A if-else szerkezet döntési pontokat reprezentál.

Szintaxis példa:

--- plantuml

@startuml start :Browse Products; :Select Product; if (User logged in?) then (yes) :Proceed to Checkout; else (no) :Login; :Proceed to Checkout; endif :Make Payment; stop @enduml

Osztálydiagram:
  • A class kulcsszóval hozhatunk létre osztályokat.
  • Az osztályok közötti kapcsolatok (asszociációk, öröklés, kompozíció) a --, <|--, *-- szimbólumokkal vannak ábrázolva.
  1. Szintaxis példa:

    --- plantuml

    @startuml class User { +String name +String email +login() +logout() } class Product { +String productName +float price +displayDetails() } User "1" *-- "0..*" Product : purchases @enduml



  Részletes összefoglalás a kulcsszavak és diagram típusok használatáról

A diagram típusok és használatuk részletezése:

  • Használati eset diagramok (Use Case Diagram):

    • Célja: A rendszer funkcionális igényeinek vizuális ábrázolása.
    • Használat: Az aktorok és használati esetek kapcsolatait ábrázolja.
    • Kulcsszavak:
      • actor: Szereplők (pl. felhasználók)
      • usecase: Használati esetek (pl. "Bejelentkezés")
      • ->: Az aktor és a használati eset közötti interakciók ábrázolása.
  • Szekvenciadiagramok (Sequence Diagram):

    • Célja: A rendszerben zajló interakciók időbeli sorrendjének ábrázolása.
    • Használat: A résztvevők közötti üzenetváltásokat és azok sorrendjét ábrázolja.
    • Kulcsszavak:
      • participant: A diagramban résztvevő szereplők
      • ->: Az üzenetküldés a résztvevők között.
  • Tevékenységdiagramok (Activity Diagram):

    • Célja: A folyamatok és tevékenységek ábrázolása.
    • Használat: A lépések és a döntési pontok ábrázolása.
    • Kulcsszavak:
      • start: A folyamat kezdete
      • stop: A folyamat vége
      • if: Döntési pontok
  • Osztálydiagramok (Class Diagram):

    • Célja: Az osztályok és azok közötti kapcsolatok ábrázolása.
    • Használat: Az objektumorientált rendszerekben az osztályok közötti kapcsolatok ábrázolása.
    • Kulcsszavak:
      • class: Osztályok
      • --, *--, <|--: Kapcsolatok (asszociációk, öröklés, kompozíció)

Táblázatos összefoglalás

Diagram típusaCélKulcsszavak és használatPélda
Használati esetA rendszer funkcionális igényeinek ábrázolásaactor, usecase, -> - az aktorok és a használati esetek közötti interakciók ábrázolásaactor User -> (Login)
SzekvenciadiagramAz időbeli interakciók ábrázolásaparticipant, -> - résztvevők közötti üzenetváltás ábrázolásaUser -> Browser : Open Website
TevékenységdiagramA folyamatok és tevékenységek ábrázolásastart, stop, if - döntési pontok, tevékenységek ábrázolásastart -> :Browse Products -> if (User logged in?) then
OsztálydiagramAz osztályok és azok kapcsolataiclass, --, *--, `<--` - osztályok, kapcsolatok (asszociáció, öröklés, kompozíció)


Összegzés

A PlantUML segítségével egyszerű és gyors módon hozhatunk létre UML diagramokat, amelyek segítenek a rendszerek tervezésében és dokumentálásában. A fenti kulcsszavak és diagram típusok alapos megértésével könnyen és gyorsan készíthetünk különböző típusú diagramokat, legyen szó használati esetekről, szekvenciákról, tevékenységekről vagy osztályok közötti kapcsolatok ábrázolásáról.





Minta képernyőkép





Link:

 https://github.com/klajosw/python/blob/master/kl_uml_gen_py.ipynb

Megjegyzések