Diagramm als Code — 10 Min. Lesezeit

Das PlantUML-Format verstehen

PlantUML ermöglicht es Ihnen, Diagramme als Klartext zu schreiben. Erfahren Sie, was es ist, wie GanttTool es im Hintergrund zur Darstellung von Gantt-Diagrammen nutzt und welche anderen Diagrammtypen es unterstützt.

10 Min. Lesezeit Juni 2026 Von GanttTool

Was ist PlantUML?

PlantUML ist ein Open-Source-Tool, mit dem Sie Diagramme aus Klartextbeschreibungen erstellen können. Anstatt Boxen auf einer Zeichenfläche zu verschieben, schreiben Sie ein paar Zeilen einfacher Syntax und PlantUML rendert ein professionelles Diagramm für Sie. Dieser Ansatz wird oft als „Diagramm als Code" oder „Text zu Diagramm" bezeichnet.

Ein minimales PlantUML-Diagramm sieht so aus: Sie öffnen mit einem @start<typ>-Tag, beschreiben die Struktur in wenigen lesbaren Zeilen und schließen mit @end<typ>. Das Tool analysiert diesen Text und erzeugt ein SVG, PNG oder PDF — wo immer Sie es rendern.

Warum Diagramme als Text schreiben?

  • Versionskontrolle — Klartext lässt sich sauber in Git differenzieren. Sie können jede Änderung an einem Diagramm verfolgen, in einem Pull Request überprüfen und bei Problemen zurücksetzen.
  • Geschwindigkeit[Aufgabe A] dauert 5 Tage zu tippen ist schneller, als einen Balken auf einer Zeichenfläche zu zeichnen und in der Größe anzupassen.
  • Konsistenz — Die Rendering-Engine wendet automatisch einheitliche Abstände, Schriftarten und Farben an. Sie konzentrieren sich auf den Inhalt, nicht auf das Layout.
  • Portabilität — Eine .puml-Textdatei ist winzig, für Menschen lesbar und wird überall gleich gerendert.
  • Automatisierung — Diagramme können programmatisch aus Daten generiert, in CI-Pipelines eingebettet und mit dem Code synchron gehalten werden.

Tipp: PlantUML wird in der Softwareentwicklungs-Dokumentation häufig verwendet (Architekturdiagramme, API-Abläufe), aber die Gantt-Diagramm-Unterstützung macht es ebenso leistungsstark für Projektmanager und Teamleiter, die reproduzierbare, versionierte Zeitpläne benötigen.

Wie GanttTool PlantUML verwendet

GanttTool bietet Ihnen einen visuellen GUI-Editor — Sie fügen Aufgaben hinzu, legen Dauern fest, definieren Abhängigkeiten und wählen Farben aus — aber hinter den Kulissen wird alles, was Sie erstellen, in PlantUML-Code kompiliert. Dieser Code wird dann an einen Rendering-Server gesendet, der ihn in ein SVG-Diagramm konvertiert, das in Ihrem Browser angezeigt wird.

Die Rendering-Pipeline

🖱️
GUI-Editor
Aufgaben, Daten, Farben
📄
PlantUML-Code
@startgantt … @endgantt
🔌
POST /api/kroki
Next.js-Route
🌐
PlantUML / Kroki
Render-Server
🖼️
SVG-Diagramm
im Browser angezeigt

Die API-Route unter /api/kroki fungiert als Proxy zwischen Ihrem Browser und den Rendering-Servern. Sie arbeitet in zwei Stufen:

  • Primär: PlantUML.com-Server — Der PlantUML-Code wird mit Deflate (Level 9) komprimiert und mit der benutzerdefinierten Base-64-Variante von PlantUML codiert. Der resultierende String wird als GET-Anfrage an https://www.plantuml.com/plantuml/svg/~1{codiert} angehängt. Ein 3-Sekunden-Timeout schützt vor langsamen Antworten.
  • Fallback: Kroki.io-Server — Wenn PlantUML.com ausfällt oder das Timeout überschreitet, wird der rohe PlantUML-Text als text/plain an https://kroki.io/plantuml/svg mit einem 5-Sekunden-Timeout per POST gesendet. Kroki ist ein Open-Source-Rendering-Gateway, das viele Diagrammformate unterstützt.

Welcher Server auch immer zuerst mit einem gültigen SVG antwortet — dieses Bild wird mit einem Content-Type: image/svg+xml-Header an den Browser zurückgegeben und inline gerendert. Sie müssen sich nie um Codierung oder Fallback kümmern — es funktioniert einfach.

Unter der Haube: Die „PlantUML-Code"-Ansicht in der Seitenleiste von GanttTool zeigt Ihnen den exakten Text, der an den Server gesendet wird. Sie können ihn kopieren, in PlantText oder den PlantUML-Online-Server einfügen und erhalten dasselbe Diagramm.

PlantUML Gantt-Diagramm-Syntax

Jedes PlantUML-Gantt-Diagramm wird in @startgantt / @endgantt-Tags eingeschlossen. Innerhalb beschreiben Sie Ihr Projekt in einem natürlichen, lesbaren Stil.

Grundlegende Aufgabenstruktur

plantuml — einfaches gantt
@startgantt
' Projekttitel und Maßstab
title Website-Redesign-Projekt
Project starts 2026-07-01
printscale weekly

' Phasentrenner
-- Analyse --

' Reguläre Aufgaben: [Name] dauert N Tage
[Anforderungserhebung] lasts 5 days
[Wettbewerbsanalyse] lasts 3 days

-- Design --

[Wireframes] lasts 7 days
[Visuelles Design] lasts 10 days
[Visuelles Design] starts at [Wireframes]'s end

-- Entwicklung --

[Frontend-Entwicklung] lasts 14 days
[Frontend-Entwicklung] starts at [Visuelles Design]'s end
[Backend-Integration] lasts 10 days
[Backend-Integration] starts at [Frontend-Entwicklung]'s end

@endgantt

Meilensteine

Meilensteine haben eine Dauer von null und erscheinen als Rautenmarkierung auf der Zeitachse. Definieren Sie sie mit happens at anstelle von lasts.

plantuml — meilensteine & farben
@startgantt
Project starts 2026-07-01

[Entwicklung] lasts 14 days and is colored in CornflowerBlue
[QA-Test] lasts 5 days and is colored in LightGreen
[QA-Test] starts at [Entwicklung]'s end

' Meilenstein — findet am Ende einer bestimmten Aufgabe statt
[Release v1.0] happens at [QA-Test]'s end

' Fortschrittsprozentsatz
[Entwicklung] is 70% completed

@endgantt

Phasentrenner & Projekteinstellungen

Umschließen Sie Abschnittsnamen mit doppelten Bindestrichen (-- Phasenname --), um eine Trennzeile einzufügen. Kombinieren Sie dies mit projektweiten Einstellungen für volle Kontrolle.

plantuml — trenner & einstellungen
@startgantt
title Q3-Produkteinführung
Project starts 2026-07-01
printscale weekly zoom 2
saturday are closed
sunday are closed
today is colored in Lavender

-- Planung --
[Kickoff-Meeting] lasts 1 day
[Umfangsdefinition] lasts 3 days
[Umfangsdefinition] starts at [Kickoff-Meeting]'s end

-- Entwicklung --
[Engineering Sprint 1] lasts 10 days
[Engineering Sprint 1] starts at [Umfangsdefinition]'s end
[Engineering Sprint 2] lasts 10 days
[Engineering Sprint 2] starts at [Engineering Sprint 1]'s end

-- Launch --
[Smoke-Testing] lasts 2 days
[Smoke-Testing] starts at [Engineering Sprint 2]'s end
[Go-Live] happens at [Smoke-Testing]'s end

@endgantt

Wichtige Gantt-Syntax auf einen Blick

Syntax Bedeutung
[Aufgabe] lasts N days Erstellt eine Aufgabe mit einer Dauer in Tagen
[Aufgabe] lasts N weeks Dauer in Wochen
[B] starts at [A]'s end Ende-zu-Start-Abhängigkeit
[M] happens at [A]'s end Meilenstein am Ende einer Aufgabe
-- Phasenname -- Fügt eine Phasentrennzeile ein
[A] is 50% completed Zeigt den Fertigstellungsfortschritt an
printscale weekly zoom 2 Wöchentliche Skala, 2-facher Zoom
saturday are closed Samstage bei der Dauer überspringen
[A] is colored in Red Benutzerdefinierte Aufgabenbalken-Farbe

PlantUML jenseits von Gantt-Diagrammen

Gantt ist nur einer von über einem Dutzend Diagrammtypen, die PlantUML unterstützt. Dieselbe Klartext-Philosophie — Start-Tag, Beschreibung, End-Tag — gilt für alle. Hier ist ein Überblick über die am häufigsten verwendeten Typen.

Sequenzdiagramme

Sequenzdiagramme zeigen, wie Objekte oder Komponenten im Laufe der Zeit interagieren — perfekt für API-Abläufe, Authentifizierungssequenzen und Microservice-Kommunikation.

plantuml — sequenzdiagramm
@startuml
title Benutzer-Login-Ablauf

Browser -> API: POST /login {email, password}
API -> Database: SELECT user WHERE email=?
Database --> API: Benutzerdatensatz
alt gültige Anmeldedaten
    API --> Browser: 200 OK + JWT-Token
else ungültig
    API --> Browser: 401 Unauthorized
end
@enduml

Klassendiagramme

Klassendiagramme modellieren objektorientierte Strukturen: Klassen, Attribute, Methoden und Beziehungen. Unverzichtbar für die Dokumentation von Softwarearchitekturen.

plantuml — klassendiagramm
@startuml
class Project {
    +id: String
    +name: String
    +startDate: Date
    +getTasks(): Task[]
}

class Task {
    +id: String
    +name: String
    +duration: Number
    +complete(): void
}

class Milestone {
    +name: String
    +date: Date
}

Project "1" o-- "many" Task
Project "1" o-- "many" Milestone
Task <|-- Milestone
@enduml

Weitere PlantUML-Diagrammtypen

👤

Anwendungsfalldiagramme

Zeigen, welche Akteure mit welchen Systemfunktionen interagieren. Nützlich für die Anforderungserhebung und Stakeholder-Präsentationen. Syntax: @startuml mit actor, usecase und -->-Pfeilen.

🔄

Aktivitätsdiagramme

Modellieren Sie Arbeitsabläufe, Geschäftsprozesse und Entscheidungsflüsse mit Start-/Stopp-Knoten, Verzweigungen, Zusammenführungen und bedingten Pfaden. Betrachten Sie sie als Flussdiagramme mit formaler Semantik.

🔀

Zustandsdiagramme

Stellen den Lebenszyklus eines Objekts durch Zustände und Übergänge dar. Perfekt für die Modellierung von Bestellstatus, Benutzersitzungszuständen oder Gerätemodi.

🧩

Komponentendiagramme

Zeigen, wie Systemkomponenten, Bibliotheken und Schnittstellen zusammengesetzt sind. Hervorragend für die Dokumentation von Microservice-Architekturen und Deployment-Topologien.

🧠

Mind Maps

Brainstorming und Ideenorganisation in einem radialen Baumformat. Verwendet eingerückte *-Marker zur Definition der Hierarchie. Gut geeignet für Feature-Aufteilungen und Wissenslandkarten.

🗄️

Entity-Relationship (ER)

Modellieren Sie Datenbankschemata mit Entitäten, Attributen und Beziehungen. Unterstützt über das @startuml / entity-Schlüsselwort oder über dedizierte ER-Erweiterungen.

Hier ist ein kurzes Beispiel einer PlantUML-Mindmap, um zu veranschaulichen, wie Nicht-Gantt-Diagramme derselben Text-zuerst-Philosophie folgen:

plantuml — mind map
@startmindmap
* Projektplanung
** Umfang
*** Anforderungen
*** Ergebnisse
** Zeitplan
*** Gantt-Diagramm
*** Meilensteine
** Team
*** Rollen
*** Ressourcen
** Risiken
*** Risikominderungsplan
@endmindmap

PlantUML online ausprobieren

Sie müssen nichts installieren, um mit PlantUML zu experimentieren. Das Ökosystem bietet hervorragende kostenlose Online-Renderer:

Empfohlener Arbeitsablauf: Erstellen Sie Ihr Gantt-Diagramm visuell in GanttTool, klicken Sie auf „PlantUML-Code" in der Seitenleiste, um den generierten Text zu sehen, und fügen Sie ihn dann in PlantText oder PlantUML.com ein, wenn Sie an der Rohsyntax arbeiten möchten. Sie erhalten das Beste aus beiden Welten: einen visuellen Editor und vollen Zugriff auf das zugrunde liegende Diagramm-als-Code-Format.

Beginnen Sie mit der Erstellung von Gantt-Diagrammen

GanttTool gibt Ihnen die Leistungsfähigkeit von PlantUML, ohne dass Sie eine einzige Codezeile schreiben müssen. Verwenden Sie den visuellen Editor, um Ihren Projektzeitplan zu erstellen, und lassen Sie die App die PlantUML-Syntax und das Diagramm-Rendering automatisch erledigen.

  • Aufgaben, Meilensteine und Phasentrenner mit einem Klick hinzufügen.
  • Dauern, Abhängigkeiten, Farben und Fertigstellungsprozentsätze visuell festlegen.
  • Den generierten PlantUML-Code jederzeit einsehen — kopieren und überall wiederverwenden.
  • Als SVG exportieren oder als PNG in die Zwischenablage kopieren für Präsentationen und Dokumente.
  • Beschreiben Sie Ihr Projekt in einfachem Deutsch und lassen Sie den KI-Assistenten einen vollständigen Gantt-Entwurf erstellen.

GanttTool ausprobieren — kostenlos, ohne Konto

Erstellen Sie in wenigen Minuten ein professionelles PlantUML-Gantt-Diagramm. Die App generiert den PlantUML-Code für Sie — exportieren, teilen oder überall einfügen.

GanttTool öffnen — kostenlos