
2. Standardisierte Unified Modeling Language (UML)-Diagramme
Im Kern wurde PlantUML entwickelt, um die Erstellung offizieller UML-Diagramme zu vereinfachen. Es gliedert sich in zwei Hauptkategorien: Strukturdiagramme und Verhaltensdiagramme.
Strukturdiagramme
Klassen- und Objektdiagramme
Modellieren Sie objektorientierte Strukturen, Klassenhierarchien, Schnittstellen, Attribute und Beziehungen (Vererbung, Aggregation, Komposition) direkt aus Code-Definitionen.

@startuml
title Hotel-Management-System
' Schnittstellen definieren
interface IReservable {
+ makeReservation(Kunde: Kunde, Daten: Datumsbereich): boolean
+ cancelReservation(ReservierungsId: String): boolean
+ checkAvailability(Datum: Datum): boolean
}
interface IPayable {
+ processPayment(Betrag: double): boolean
+ issueRefund(ReservierungsId: String): boolean
+ getPaymentStatus(): String
}
' Abstrakte Klasse definieren
abstract class Person {
- id: String
- name: String
- email: String
- phone: String
+ getId(): String
+ getName(): String
+ getContactInfo(): String
+ updateContactInfo(Info: String): void
}
' Konkrete Klassen definieren
class Kunde {
- Treuepunkte: int
- Gesamtübernachtungen: int
- Präferenzen: List
+ earnLoyaltyPoints(Übernachtungskosten: double): void
+ redeemLoyaltyPoints(Punkte: int): boolean
+ getLoyaltyTier(): String
+ addPreference(Präferenz: String): void
}
class Zimmer {
- ZimmerNummer: String
- ZimmerTyp: ZimmerTyp
- Kapazität: int
- PreisProNacht: double
- Annehmlichkeiten: List
- istVerfügbar: boolean
+ bookRoom(Kunde: Kunde, Daten: Datumsbereich): boolean
+ releaseRoom(): void
+ getPrice(Kunde: Kunde): double
+ addAmenity(Annehmlichkeit: String): void
+ getRoomStatus(): String
}
class Reservierung {
- reservierungsId: String
- checkInDate: Datum
- checkOutDate: Datum
- totalPrice: double
- status: ReservierungsStatus
- specialRequests: String
+ calculateTotalPrice(): double
+ confirmReservation(): void
+ checkIn(): void
+ checkOut(): boolean
+ updateDates(neuerCheckIn: Datum, neuerCheckOut: Datum): boolean
+ getDuration(): int
}
' Aufzählung
enum ZimmerTyp {
STANDARD
DELUXE
SUITE
PRESIDENTIAL
}
' Aufzählung
enum ReservierungsStatus {
PENDING
CONFIRMED
CHECKED_IN
CHECKED_OUT
CANCELLED
}
' Beziehungen
' Schnittstellenimplementierung (gestrichelte Linie mit Dreieck)
IReservable <|.. Reservierung : implements
IPayable <|.. Reservierung : implements
' Abstrakte Vererbung (durchgezogene Linie mit Dreieck)
Person <|-- Kunde : extends ' Komposition (durchgezogener Diamant) - Zimmer ist Teil der Reservierung Reservierung *-- "1..*" Zimmer : contains >
' Assoziation (einfache durchgezogene Linie) mit Multiplizität
Kunde "1" -- "0..*" Reservierung : macht >
' Abhängigkeit (gestrichelter Pfeil) - Kunde hängt von ZimmerTyp ab
Kunde ..> ZimmerTyp : hat Treuestufe basierend auf >
' Assoziation mit benutzerdefiniertem Label
Reservierung "1" --o "1" Kunde : gebucht von >
' Realisierung der Schnittstelle durch abstrakte Klasse (optionale zusätzliche Verbindung)
IReservable <|.. Zimmer : implements
@enduml Komponenten- und Bereitstellungsdiagramme
Karten Sie Softwarekomponenten, physische Knoten, Artefakte und Bereitstellungsumgebungen, um die Softwareverteilung über Hardware- oder Cloud-Infrastrukturen zu visualisieren.
@startuml
title Webanwendung-Komponentendiagramm
package "Client-Schicht" {
[Web Browser] as Browser
[Mobile App] as Mobile
}
package "Anwendungsserver" {
[API Gateway] as Gateway
[User Service] as UserService
[Order Service] as OrderService
[Payment Service] as PaymentService
}
package "Datenbankschicht" {
database "User Database" as UserDB
database "Order Database" as OrderDB
}
package "Drittanbieter-Dienste" {
[Stripe API] as Stripe
}
' Verbindungen
Browser --> Gateway : HTTP / REST
Mobile --> Gateway : HTTP / REST
Gateway --> UserService : Internes REST
Gateway --> OrderService : Internes REST
UserService --> UserDB : Lesen / Schreiben
OrderService --> OrderDB : Lesen / Schreiben
OrderService --> PaymentService : Zahlung verarbeiten
PaymentService --> Stripe : HTTPS / API
@enduml 
@startuml
title Bereitstellungsdiagramm - 3-Schichten-Webanwendung
skinparam componentStyle rectangle
node "Client-Desktop" as clientNode {
node "Web Browser" as browser {
artifact "Web-App-Frontend (HTML/JS)" as frontend
}
}
node "Anwendungsserver" as appServerNode {
node "Servlet-Container (Tomcat)" as tomcat {
artifact "Backend-API (WAR-Datei)" as appApi
}
}
node "Datenbankserver" as databaseNode {
database "PostgreSQL" as postgres {
artifact "Anwendungsdatenbankschema" as dbSchema
}
}
clientNode -- appServerNode : HTTPS (Port 443)
appServerNode -- databaseNode : JDBC (Port 5432)
@enduml 
Verhaltens- und Interaktionsdiagramme
Sequenzdiagramme
Der beliebteste PlantUML-Diagrammtyp. Verfolgen Sie schrittweise Interaktionen, synchrone/asynchrone API-Aufrufe und Nachrichtenflüsse zwischen Akteuren und Systemen im Zeitverlauf.
@startuml
titel Benutzerauthentifizierungsablauf
actor "Benutzer" as user
participant "Web-App" as app
participant "Auth-API" as auth
database "Benutzer-DB" as db
user -> app : Anmelden
activate app
app -> auth : POST /api/v1/login
activate auth
auth -> db : Benutzer nach E-Mail abfragen
activate db
db --> auth : Benutzerdatensatz & Hash zurückgeben
deactivate db
alt Gültige Anmeldedaten
auth -> auth : Passwort überprüfen & JWT generieren
auth --> app : 200 OK (Token & Profil)
app --> user : Zum Dashboard weiterleiten
else Ungültige Anmeldedaten
auth --> app : 401 Unauthorized (Fehler)
app --> user : "Ungültige Anmeldedaten" anzeigen
end
deactivate auth
deactivate app
@enduml 
Anwendungsfalldiagramme
Systemgrenzen, Akteure, Benutzerziele und funktionalen Umfang definieren.
@startuml
titel Online-Shopping-System - Anwendungsfalldiagramm
von links nach rechts
actor Kunde
actor "Registrierter Kunde" as RegKunde
actor "Zahlungsanbieter" as PaymentSystem
Kunde <|-- RegKunde rectangle "E-Commerce-System" { usecase "Produkte durchsuchen" as UC_Browse usecase "Artikel suchen" as UC_Search usecase "Warenkorb verwalten" as UC_Cart usecase "Bestellung abschließen" as UC_Checkout usecase "Rabattcode anwenden" as UC_Coupon usecase "Zahlung verarbeiten" as UC_Payment usecase "Bestellhistorie anzeigen" as UC_History } Kunde --> UC_Browse
Kunde --> UC_Search
Kunde --> UC_Cart
Kunde --> UC_Checkout
RegKunde --> UC_History
UC_Checkout .> UC_Payment : <>
UC_Checkout <.. UC_Coupon : <>
UC_Payment -- PaymentSystem
@enduml 
Aktivitäts- und Zustandsdiagramme
Komplexe Geschäftslogik, algorithmische Abläufe, Zustandsautomaten-Übergänge und Nebenläufigkeit darstellen.
@startuml
titel Bestellabwicklungsprozess
|Kunde|
start
:Bestellung aufgeben;
:Zahlungsdetails eingeben;
|Bestellsystem|
if (Zahlung gültig?) then (ja)
:Lagerbestand reservieren;
' Parallelverarbeitung
fork
|Lager|
:Artikel vom Regal entnehmen;
:Artikel in Box verpacken;
fork again
|Rechnungswesen|
:Rechnungs-PDF erstellen;
:Zahlungsmethode belasten;
end fork
|Versand|
:Versandetikett anbringen;
:An Kurier übergeben;
|Kunde|
:Paket erhalten;
stop
else (nein)
|Bestellsystem|
:Zahlungsfehlermitteilung senden;
|Kunde|
:Zahlungsmethode aktualisieren;
stop
endif
@enduml 
@startuml
titel E-Commerce-Bestelllebenszyklus
[*] --> Ausstehend : Bestellung aufgegeben
state Ausstehend {
[*] --> Zahlung ausstehend
Zahlung ausstehend --> Zahlung fehlgeschlagen : Zahlungsfehler
Zahlung fehlgeschlagen --> Zahlung ausstehend : Zahlung erneut versuchen
}
Ausstehend --> Bearbeitet : Zahlung autorisiert
Ausstehend --> Storniert : Benutzer storniert Bestellung
state Bearbeitet {
[*] --> Verpacken
Verpacken --> Versandbereit : Qualitätsprüfung bestanden
}
Bearbeitet --> Versendet : Übergabe an Spediteur
Versendet --> Geliefert : Lieferung bestätigt
Versendet --> Zurückgesendet : Lieferung fehlgeschlagen / abgelehnt
Geliefert --> [*]
Storniert --> [*]
Zurückgesendet --> [*]
@enduml 
Zeitdiagramme
Präzise Zustandsübergänge und Objektinteraktionen über diskrete Zeitintervalle darstellen – ideal für eingebettete Systeme oder Echtzeit-Hardware-Design.
@startuml
titel SPI-Datenübertragungs-Zeitdiagramm
robust "Takt (SCLK)" as CLK
binary "Chip-Select (CS)" as CS
binary "Master Out (MOSI)" as MOSI
concise "Datenbus (MISO)" as MISO
@0
CS ist Hoch
CLK ist Tief
MOSI ist Tief
MISO ist "Leerlauf"
@1
CS ist Tief
MISO ist "Header"
@2
CLK ist Hoch
MOSI ist Hoch
@3
CLK ist Tief
@4
CLK ist Hoch
MOSI ist Tief
MISO ist "Payload"
@5
CLK ist Tief
@6
CS ist Hoch
CLK ist Tief
MOSI ist Tief
MISO ist "Leerlauf"
@enduml 
3. Hocharchitektur und domänenspezifische Diagramme
Jenseits des traditionellen UML zeichnet sich PlantUML durch die Darstellung mehrschichtiger Softwaresysteme und Datenarchitekturen unter Verwendung spezialisierter Erweiterungsbibliotheken aus.
C4-Modell-Diagramme
Drücken Sie Softwarearchitektur auf verschiedenen Abstraktionsebenen aus – Kontext, Container, Komponente und Code – und machen Sie das Systemdesign für technische und nicht-technische Stakeholder verständlich.
@startuml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml
TITLE Systemkontextdiagramm für das Internet-Banking-System
Person(customer, "Privatkundenbankkunde", "Ein Kunde der Bank mit privaten Bankkonten.")
System(banking_system, "Internet-Banking-System", "Ermöglicht Kunden, Informationen über ihre Bankkonten einzusehen und Zahlungen vorzunehmen.")
System_Ext(mainframe, "Mainframe-Banking-System", "Speichert alle Kernbankinformationen über Kunden, Konten, Transaktionen usw.")
System_Ext(email_system, "E-Mail-System", "Das interne Microsoft Exchange-E-Mail-System.")
Rel(customer, banking_system, "Sieht Kontostände ein und führt Zahlungen durch")
Rel(banking_system, mainframe, "Bezieht Kontoinformationen und führt Zahlungen durch")
Rel(banking_system, email_system, "Sendet E-Mails")
Rel_Back(email_system, customer, "Sendet E-Mails an")
@enduml 
ArchiMate-Diagramme
Unterstützt die Modellierung der Unternehmensarchitektur über die Geschäftsbereiche, Anwendungsbereiche und Technologieebenen hinweg, um die Unternehmensstrategie auf operative Systeme abzubilden.
@startuml
!include <archimate/Archimate>
title ArchiMate-Beispiel – Online-Rechnungsbezahlung
Grouping(business, "Geschichtsebene"){
Business_Process(payBillProcess, "Rechnungsbezahlungsprozess")
Business_Object(bankAccount, "Kundenbankkonto")
Business_Service(paymentService, "Geschäftsdienstleistung für Rechnungsbezahlung")
}
Grouping(application, "Anwendungsebene"){
Application_Component(bankingApp, "Mobile-Banking-Anwendung")
Application_Function(paymentProcessing, "Logik zur Zahlungsabwicklung")
Application_DataObject(transactionRecord, "Transaktionsdaten-Payload")
}
Grouping(technology, "Technologieebene"){
Technology_Artifact(jwtToken, "Verschlüsselter Sitzungstoken")
Technology_Service(apiGateway, "API-Gateway-Dienst")
Technology_Service(dbService, "Kern-Datenbankdienst")
}
Rel_Flow_Right(payBillProcess, bankAccount, "")
Rel_Serving_Up(paymentService, payBillProcess, "")
Rel_Specialization_Up(paymentProcessing, paymentService, "")
Rel_Flow_Right(transactionRecord, paymentProcessing, "")
Rel_Assignment_Left(bankingApp, paymentProcessing, "")
Rel_Realization_Up(jwtToken, transactionRecord, "")
Rel_Serving_Up(apiGateway, paymentProcessing, "")
Rel_Serving_Up(dbService, apiGateway, "")
@enduml 
Entity-Relationship-Diagramme (ERD)
Erstellen Sie saubere Visualisierungen von Datenbank-Schemata, einschließlich der Standard-Notation mit Krähenfüßen und Chen-ERD-Modellen.
@startuml
title E-Commerce-Datenbankschema (Krähenfuß)
' Kreissymbole für Entitäten ausblenden
hide circle
skinparam linetype ortho
entity "Benutzer" as user {
* user_id : INT <>
--
* email : VARCHAR(255)
* password_hash : VARCHAR(255)
* created_at : TIMESTAMP
}
entity "Kundenprofil" as profile {
* profile_id : INT <>
--
* user_id : INT <>
* first_name : VARCHAR(100)
* last_name : VARCHAR(100)
phone : VARCHAR(20)
}
entity "Bestellung" as order {
* order_id : INT <>
--
* user_id : INT <>
* order_date : TIMESTAMP
* total_amount : DECIMAL(10,2)
* status : VARCHAR(50)
}
entity "Bestellposition" as item {
* order_item_id : INT <>
--
* order_id : INT <>
* product_id : INT <>
* quantity : INT
* unit_price : DECIMAL(10,2)
}
entity "Produkt" as product {
* product_id : INT <>
--
* sku : VARCHAR(50)
* name : VARCHAR(150)
description : TEXT
* price : DECIMAL(10,2)
}
' Beziehungen
user ||--o| profile : "hat"
user ||--o{ order : "legt auf"
order ||--|{ item : "enthält"
product ||--o{ item : "ist enthalten in"
@enduml 
Netzwerk- und Infrastrukturkarten
Erstellen Sie mühelos Netzwerktopologien, Serverknoten, Cloud-Verbindungen und Firewalls.
@startnwdiag
title Unternehmensnetzwerk-Topologie
nwdiag {
network External_Internet {
address = "0.0.0.0/0"
user_client [address = "203.0.113.15", description = "Remote-Benutzer"];
edge_firewall [address = "192.168.1.1", description = "Perimeter-Firewall"];
}
network DMZ_Zone {
address = "192.168.1.0/24"
edge_firewall;
load_balancer [address = "192.168.1.10", description = "Nginx-Lastenausgleich"];
mail_server [address = "192.168.1.25", description = "SMTP-Server"];
internal_firewall [address = "192.168.1.254", description = "Interne Firewall"];
}
network Private_LAN {
address = "10.0.1.0/24"
internal_firewall;
app_server_01 [address = "10.0.1.50", description = "API-Knoten 1"];
app_server_02 [address = "10.0.1.51", description = "API-Knoten 2"];
db_master [address = "10.0.1.100", description = "PostgreSQL-Hauptinstanz"];
}
network Management_Subnet {
address = "10.0.99.0/24"
internal_firewall;
admin_bastion [address = "10.0.99.5", description = "SSH-Bastion-Host"];
monitoring_node [address = "10.0.99.20", description = "Prometheus-Host"];
}
}
@endnwdiag 
4. Planungs-, Management- und Brainstorming-Visualisierungen
PlantUML ist nicht auf Software-Design beschränkt – es ist auch ein leistungsstarkes Werkzeug für Projektmanagement und Team-Brainstorming.
Gantt-Diagramme
Planen Sie Projektzeitpläne, Aufgabenabhängigkeiten, Meilensteine und Ressourcenallokation mit sauberem Text-Markup.
gantt
title Zeitplan für die Softwareproduktveröffentlichung
dateFormat YYYY-MM-DD
axisFormat %b %d
section Planung & Design
Anforderungsermittlung :a1, 2026-09-01, 10d
Architekturdesign :a2, nach a1, 10d
section Entwicklung
Backend-API-Entwicklung :b1, nach a2, 15d
Frontend-UI-Entwicklung :b2, nach a2, 15d
section Testen & Veröffentlichung
Integrationstest :c1, nach b1 b2, 8d
Sicherheitsaudit :c2, nach c1, 5d
Produktionsveröffentlichung :milestone, m1, nach c2, 0d 
Arbeitszerlegungsstruktur (AZS)
Zerlegen Sie komplexe Projekte in hierarchische Lieferobjekte und handhabbare Aufgabenblöcke.
@startwbs
title Arbeitszerlegungsstruktur für Website-Redesign
* Projekt Website-Redesign
** 1. Erkundung & Strategie
*** 1.1 Stakeholder-Interviews
*** 1.2 Wettbewerbsanalyse
*** 1.3 Freigabe von Umfang und Strategie
** 2. UX/UI-Design
*** 2.1 Wireframing
**** 2.1.1 Desktop-Layouts
**** 2.1.2 Mobile-Layouts
*** 2.2 Design-System
**** 2.2.1 Komponentenbibliothek
**** 2.2.2 Typografie & Styleguide
** 3. Technische Entwicklung
*** 3.1 Frontend
**** 3.1.1 Seitenvorlagen
**** 3.1.2 API-Integrationen
*** 3.2 CMS & Backend
**** 3.2.1 Benutzerdefinierte Post-Typen
**** 3.2.2 Datenbankmigration
** 4. Qualitätssicherung & Launch
*** 4.1 Browserübergreifender Test
*** 4.2 Content-Migration
*** 4.3 DNS-Umschaltung & Go-Live
@endwbs 
Mindmaps
Erfassen Sie strukturierte Ideen, Merkmals-Taxonomien und technische Erkundungsnotizen schnell während Teamsitzungen.
@startmindmap
title Merkmalskarte für E-Commerce-Plattform
* E-Commerce-Plattform
** Benutzerkontoverwaltung
*** Social Auth (Google, Apple)
*** Multi-Faktor-Authentifizierung
** Bestellverlauf & Verfolgung
** Produktkatalog & Suche
*** Facettierte Suche & Filter
*** Inventar-Synchronisation
*** Produktbewertungen & -bewertungen
** Checkout & Zahlungen
*** Zahlungsgateways (Stripe, PayPal)
*** Gutschein- & Promo-Engine
** One-Click-Gast-Checkout
** Kundensupport
*** Live-Chat-Assistent
*** Automatisiertes Rückgabeportal
@endmindmap 
5. Schnelles Schreiben und Rendern von PlantUML: Der VPasCode-Vorteil
Obwohl PlantUML äußerst leistungsfähig ist, kann die Einrichtung lokaler Java-Umgebungen, Graphviz-Abhängigkeiten und Befehlszeilenwerkzeuge zu Reibungsverlusten führen. Die Verwendung einer dedizierten, webbasierten PlantUML-Toolbeseitigt diese Hürden vollständig.
Visual Paradigm VPasCodeist eine einheitliche Diagramm-as-Code-Plattform, die speziell entwickelt wurde, um Text-zu-Diagramm-Workflows zu optimieren. Mit den kürzlich in unserem Großes VPasCode-Update: Diagramme sofort mit KI generieren und bearbeitenunterstützt es nun native KI-Funktionen direkt im Editor.
Hauptvorteile von VPasCode:
- Native KI-Diagrammerstellung & -bearbeitung:Erstellen Sie sofort vollständige PlantUML-, Mermaid- oder Graphviz-Diagramme mithilfe natürlicher Sprachbefehle (z. B. „Erstellen Sie ein Use-Case-Diagramm in PlantUML für ein Geldautomatensystem“) oder weisen Sie die KI an, bestehenden Code in Echtzeit zu ändern.
- Online-Plattform ohne Einrichtungsaufwand:Greifen Sie sofort über vpascode.com auf einen leistungsstarken Editor zu, ohne lokale Compiler oder Plugins installieren zu müssen. Erfahren Sie mehr in VPasCode-Übersicht.
- Automatische Formaterkennung & Echtzeit-Vorschau:Fügen Sie Ihr Skript ein, und VPasCode erkennt automatisch, ob es sich um PlantUML, Mermaid oder Graphviz handelt, und rendert Live-Updates sofort beim Tippen.
- KI-gestützte Code-Fehlerbehebung:Wenn Sie auf einen Syntaxfehler stoßen, klicken Sie einfach auf „Von KI beheben“. VPasCode repariert den Code und bietet einen nebeneinanderliegenden Diff mit klaren Erklärungen, damit Sie die PlantUML-Syntax schneller beherrschen können.
- Native KI-Diagrammübersetzung:Übersetzen Sie Diagrammetiketten und Notizen direkt im Editor in mehrere Sprachen – ideal für globale Entwicklungsteams.
- Flexibler Export & Dokumentationsintegration:Exportieren Sie hochauflösende PNGs oder skalierbare SVG-Vektorbilder kostenlos. Sie können Diagramme auch direkt über ihre „Diagramm-as-Code”-Funktionshilfe an Visual Paradigm OpenDocs übergeben.”Funktionshilfe für Diagramm-as-Code.
(Hinweis: Erweiterte KI-Funktionen für Diagrammerstellung, -bearbeitung und Fehlerbehebung sind in der Visual Paradigm Online Deluxe Edition / Visual Paradigm Desktop Professional Edition+ verfügbar).
6. Schnellstartbeispiel: Rendern eines Sequenzdiagramms in VPasCode
Um zu sehen, wie einfach es ist, einen kostenlosen UML-Editorwie VPasCode zu verwenden, betrachten Sie dieses grundlegende PlantUML-Sequenzdiagramm-Skript:
@startuml
autonumber
actor User
participant "VPasCode Editor" as Editor
participant "AI Engine" as AI
User -> Editor: PlantUML-Code einfügen
Editor -> Editor: Format automatisch erkennen & Live-Rendern
alt Syntaxfehler erkannt
User -> Editor: Auf „Von KI beheben" klicken
Editor -> AI: Defekten Code senden
AI --> Editor: Korrigierten Code & Diff zurückgeben
end
Editor --> User: Sauberes Vektordiagramm anzeigen (SVG/PNG)
@enduml" 
Kopieren Sie einfach den obigen Code, öffnen Sie VPasCode und fügen Sie ihn in den Editor ein, um eine sofortige Live-Rendern-Anzeige zu sehen und automatisierte KI-Verbesserungen auszuprobieren.
7. Fazit & Nächste Schritte
PlantUML ermöglicht es Teams, klare, versionierbare und konsistente visuelle Dokumentation über UML, Architektur, Datenbankschemata und Projektmanagement-Diagramme hinweg zu pflegen. Kombiniert mit einem modernen PlantUML-Toolwie VPasCode wird technisches Schreiben schneller, fehlerfrei und nahtlos kollaborativ.
Bereit, Ihren Diagrammierungsprozess zu optimieren? Beginnen Sie noch heute kostenlos mit dem Bearbeiten und Rendern von PlantUML-Diagrammen unter vpascode.com.



