Diagram as Code — 10 min de lecture

Comprendre le format PlantUML

PlantUML vous permet d'écrire des diagrammes sous forme de texte brut. Découvrez ce que c'est, comment GanttTool l'utilise en coulisses pour générer des diagrammes de Gantt, et quels autres types de diagrammes il prend en charge.

10 min de lecture Juin 2026 Par GanttTool

Qu'est-ce que PlantUML ?

PlantUML est un outil open source qui vous permet de créer des diagrammes à partir de descriptions en texte brut. Au lieu de faire glisser des boîtes sur un canevas, vous écrivez quelques lignes de syntaxe simple et PlantUML génère un diagramme professionnel pour vous. Cette approche est souvent appelée « diagram as code » ou « text to diagram ».

Un diagramme PlantUML minimal ressemble à ceci : vous ouvrez avec une balise @start<type>, décrivez la structure en quelques lignes lisibles, et fermez avec @end<type>. L'outil analyse ce texte et produit un SVG, PNG ou PDF — où que vous le rendiez.

Pourquoi écrire des diagrammes sous forme de texte ?

  • Contrôle de version — Le texte brut se compare proprement dans Git. Vous pouvez suivre chaque modification d'un diagramme, la réviser dans une pull request et revenir en arrière en cas de problème.
  • Rapidité — Taper [Tâche A] lasts 5 days est plus rapide que de dessiner une barre sur un canevas et de la redimensionner.
  • Cohérence — Le moteur de rendu applique automatiquement un espacement, des polices et des couleurs uniformes. Vous vous concentrez sur le contenu, pas sur la mise en page.
  • Portabilité — Un fichier texte .puml est minuscule, lisible par un humain et s'affiche de la même manière partout.
  • Automatisation — Les diagrammes peuvent être générés par programme à partir de données, intégrés dans des pipelines CI et maintenus en synchronisation avec le code.

Astuce : PlantUML est largement utilisé dans la documentation d'ingénierie logicielle (diagrammes d'architecture, flux API), mais sa prise en charge des diagrammes de Gantt le rend tout aussi puissant pour les chefs de projet et les responsables d'équipe qui souhaitent des plannings reproductibles et versionnés.

Comment GanttTool utilise PlantUML

GanttTool vous offre un éditeur visuel graphique — vous ajoutez des tâches, définissez des durées, établissez des dépendances, choisissez des couleurs — mais en coulisses, tout ce que vous construisez est compilé en code PlantUML. Ce code est ensuite envoyé à un serveur de rendu qui le convertit en diagramme SVG affiché dans votre navigateur.

Le pipeline de rendu

🖱️
Éditeur visuel
tâches, dates, couleurs
📄
Code PlantUML
@startgantt … @endgantt
🔌
POST /api/kroki
route Next.js
🌐
PlantUML / Kroki
serveur de rendu
🖼️
Diagramme SVG
affiché dans le navigateur

La route API /api/kroki agit comme un proxy entre votre navigateur et les serveurs de rendu. Elle fonctionne en deux étapes :

  • Principal : serveur PlantUML.com — Le code PlantUML est compressé avec Deflate (niveau 9) et encodé en utilisant la variante base-64 personnalisée de PlantUML. La chaîne résultante est ajoutée à https://www.plantuml.com/plantuml/svg/~1{encoded} en tant que requête GET. Un délai de 3 secondes protège contre les réponses lentes.
  • Secours : serveur Kroki.io — Si PlantUML.com échoue ou expire, le texte PlantUML brut est envoyé en POST comme text/plain vers https://kroki.io/plantuml/svg avec un délai de 5 secondes. Kroki est une passerelle de rendu open source qui prend en charge de nombreux formats de diagrammes.

Quel que soit le serveur qui répond en premier avec un SVG valide, cette image est renvoyée au navigateur avec un en-tête Content-Type: image/svg+xml et affichée en ligne. Vous n'avez jamais à vous soucier de l'encodage ou du basculement — cela fonctionne simplement.

Sous le capot : La vue « Code PlantUML » dans la barre latérale de GanttTool vous montre le texte exact envoyé au serveur. Vous pouvez le copier, le coller dans PlantText ou le serveur en ligne PlantUML, et obtenir le même diagramme.

Syntaxe PlantUML pour les diagrammes de Gantt

Chaque diagramme de Gantt PlantUML est enveloppé dans les balises @startgantt / @endgantt. À l'intérieur, vous décrivez votre projet dans un style naturel et lisible.

Structure de base d'une tâche

plantuml — gantt de base
@startgantt
' Titre du projet et échelle
title Website Redesign Project
Project starts 2026-07-01
printscale weekly

' Séparateur de phase
-- Discovery --

' Tâches normales : [Nom] lasts N days
[Requirements gathering] lasts 5 days
[Competitor analysis] lasts 3 days

-- Design --

[Wireframes] lasts 7 days
[Visual design] lasts 10 days
[Visual design] starts at [Wireframes]'s end

-- Development --

[Frontend build] lasts 14 days
[Frontend build] starts at [Visual design]'s end
[Backend integration] lasts 10 days
[Backend integration] starts at [Frontend build]'s end

@endgantt

Jalons (milestones)

Les jalons ont une durée nulle et apparaissent comme un marqueur en losange sur la chronologie. Définissez-les avec happens at plutôt que lasts.

plantuml — jalons & couleurs
@startgantt
Project starts 2026-07-01

[Development] lasts 14 days and is colored in CornflowerBlue
[QA Testing] lasts 5 days and is colored in LightGreen
[QA Testing] starts at [Development]'s end

' Jalon — se produit à la fin d'une tâche spécifique
[Release v1.0] happens at [QA Testing]'s end

' Pourcentage d'achèvement
[Development] is 70% completed

@endgantt

Séparateurs de phase & paramètres du projet

Encadrez les noms de section entre doubles tirets (-- Nom de la phase --) pour insérer une ligne de séparation. Combinez avec les paramètres globaux du projet pour un contrôle total.

plantuml — séparateurs & paramètres
@startgantt
title Q3 Product Launch
Project starts 2026-07-01
printscale weekly zoom 2
saturday are closed
sunday are closed
today is colored in Lavender

-- Planning --
[Kickoff meeting] lasts 1 day
[Scope definition] lasts 3 days
[Scope definition] starts at [Kickoff meeting]'s end

-- Build --
[Engineering sprint 1] lasts 10 days
[Engineering sprint 1] starts at [Scope definition]'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

Aperçu de la syntaxe Gantt essentielle

Syntaxe Ce qu'elle fait
[Task] lasts N days Crée une tâche avec une durée en jours
[Task] lasts N weeks Durée en semaines
[B] starts at [A]'s end Dépendance fin-à-début
[M] happens at [A]'s end Jalon à la fin d'une tâche
-- Phase name -- Insère une ligne de séparation de phase
[T] is 50% completed Affiche la progression d'achèvement
printscale weekly zoom 2 Échelle hebdomadaire, zoom 2x
saturday are closed Ignore les samedis dans la durée
[T] is colored in Red Couleur personnalisée de la barre de tâche

PlantUML au-delà des diagrammes de Gantt

Gantt n'est qu'un type parmi plus d'une douzaine de diagrammes que PlantUML prend en charge. La même philosophie de texte brut — balise de début, description, balise de fin — s'applique à tous. Voici un tour d'horizon des types les plus utilisés.

Diagrammes de séquence

Les diagrammes de séquence montrent comment les objets ou composants interagissent dans le temps — parfaits pour les flux API, les séquences d'authentification et la communication entre microservices.

plantuml — diagramme de séquence
@startuml
title User Login Flow

Browser -> API: POST /login {email, password}
API -> Database: SELECT user WHERE email=?
Database --> API: user record
alt valid credentials
    API --> Browser: 200 OK + JWT token
else invalid
    API --> Browser: 401 Unauthorized
end
@enduml

Diagrammes de classes

Les diagrammes de classes modélisent la structure orientée objet : classes, attributs, méthodes et relations. Essentiels pour la documentation de l'architecture logicielle.

plantuml — diagramme de classes
@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

Autres types de diagrammes PlantUML

👤

Diagrammes de cas d'utilisation

Montrent quels acteurs interagissent avec quelles fonctions du système. Utiles pour la collecte des exigences et les présentations aux parties prenantes. Syntaxe : @startuml avec actor, usecase et les flèches -->.

🔄

Diagrammes d'activité

Modélisent les flux de travail, les processus métier et les flux de décision avec des nœuds de début/fin, des bifurcations, des jointures et des branches conditionnelles. Considérez-les comme des organigrammes avec une sémantique formelle.

🔀

Diagrammes d'états

Représentent le cycle de vie d'un objet à travers des états et des transitions. Parfaits pour modéliser les statuts de commande, les états de session utilisateur ou les modes d'appareil.

🧩

Diagrammes de composants

Montrent comment les composants système, les bibliothèques et les interfaces sont assemblés. Idéal pour documenter les architectures microservices et les topologies de déploiement.

🧠

Cartes mentales (Mind Maps)

Organisez vos idées et faites du brainstorming dans un format d'arbre radial. Utilise des marqueurs indentés * pour définir la hiérarchie. Idéal pour les décompositions de fonctionnalités et les cartes de connaissances.

🗄️

Entité-Relation (ER)

Modélisez les schémas de base de données avec des entités, des attributs et des relations. Pris en charge via @startuml / mot-clé entity ou via des extensions ER dédiées.

Voici un exemple rapide d'une carte mentale PlantUML pour illustrer comment les diagrammes non-Gantt suivent la même philosophie texte d'abord :

plantuml — carte mentale
@startmindmap
* Planification de projet
** Périmètre
*** Exigences
*** Livrables
** Calendrier
*** Diagramme de Gantt
*** Jalons
** Équipe
*** Rôles
*** Ressources
** Risques
*** Plan d'atténuation
@endmindmap

Essayez PlantUML en ligne

Vous n'avez pas besoin d'installer quoi que ce soit pour commencer à expérimenter avec PlantUML. L'écosystème dispose d'excellents moteurs de rendu en ligne gratuits :

Flux de travail recommandé : Construisez votre diagramme de Gantt visuellement dans GanttTool, cliquez sur « Code PlantUML » dans la barre latérale pour voir le texte généré, puis collez-le dans PlantText ou PlantUML.com si vous souhaitez itérer sur la syntaxe brute. Vous obtenez le meilleur des deux mondes : un éditeur visuel et un accès complet au format diagram-as-code sous-jacent.

Commencez à créer des diagrammes de Gantt

GanttTool vous donne la puissance de PlantUML sans avoir besoin d'écrire une seule ligne de code. Utilisez l'éditeur visuel pour construire le planning de votre projet, et laissez l'application gérer automatiquement la syntaxe PlantUML et le rendu du diagramme.

  • Ajoutez des tâches, des jalons et des séparateurs de phase en un clic.
  • Définissez les durées, les dépendances, les couleurs et les pourcentages d'achèvement visuellement.
  • Inspectez le code PlantUML généré à tout moment — copiez et réutilisez-le n'importe où.
  • Exportez en SVG ou copiez dans le presse-papiers en PNG pour vos présentations et documents.
  • Décrivez votre projet en langage naturel et laissez l'assistant IA générer une ébauche complète de Gantt.

Essayez GanttTool — gratuit, sans compte

Créez un diagramme de Gantt PlantUML professionnel en quelques minutes. L'application génère le code PlantUML pour vous — exportez, partagez ou collez-le n'importe où.

Ouvrir GanttTool — c'est gratuit