Les diagrammes UML sont couramment regroupés en structurels diagrammes, qui décrivent de quoi un système est composé, et comportementaux diagrammes, qui décrivent ce qu’il fait. Les exemples ci-dessous utilisent un seul scénario de boutique en ligne afin qu’ils puissent être comparés et adaptés. UML 2.5.1 est la spécification formelle de référence ici.
PlantUML rend de nombreuses notations UML directement. Quelques types de diagrammes spécialisés—en particulier le profil, la structure composite, la communication et l’aperçu des interactions—peuvent être exprimés à l’aide d’une approximation pratique de PlantUML plutôt que d’un rendu de diagramme dédié. Les commentaires identifient ces cas.

Diagrammes structurels
1. Diagramme de classes
Affiche les classes du système, leurs données et opérations, ainsi que les relations telles que l’association, l’héritage et la composition. Utilisez-le pour discuter des modèles de domaine ou de la conception orientée objet.

@startuml
class Client {
+id: String
+email: String
+passerCommande(): Commande
}
class Commande {
+numero: String
+statut: StatutCommande
+total(): Argent
}
class LigneCommande {
+quantite: int
+prixUnite: Argent
}
class Produit {
+sku: String
+nom: String
}
Client "1" -- "0..*" Commande : passe
Commande "1" *-- "1..*" LigneCommande : contient
LigneCommande "*" --> "1" Produit : se réfère à
@enduml
Lisez-le :un client peut passer plusieurs commandes ; une commande contient une ou plusieurs lignes ; chaque ligne se réfère à un produit. Le losange plein indique une composition : la commande possède ses lignes.
2. Diagramme d’objets
Affiche des instances concrètes et des liens à un moment donné. Il est utile pour illustrer des données d’exemple ou expliquer un modèle de classe avec un scénario spécifique. Dans PlantUML, utilisez la notation d’objets.

@startuml
objet "alice:Client" as alice {
id = C104
email = [email protected]
}
objet "commande:Commande" as order {
numero = O9001
statut = PAYE
}
objet "ligne:LigneCommande" as line {
quantite = 2
prixUnite = 19.99
}
objet "mug:Produit" as mug {
sku = MUG-01
nom = Gobelet de voyage
}
alice -- order
order *-- line
line --> mug
@enduml
3. Diagramme de composants
Affiche les parties logicielles déployables ou remplaçables et leurs dépendances. Utilisez-le pour communiquer l’architecture de l’application et les limites d’intégration.

@startuml
composant "Boutique Web" as web
composant "Service de Commande" as orders
composant "Adaptateur de Paiement" as payments
base de données "Base de données Commande" as db
nuage "Fournisseur de Paiement" as provider
web --> orders : REST
orders --> db : SQL
orders --> payments : autoriser
payments --> provider : HTTPS
@enduml
4. Diagramme de structure composite
Affiche les parties internes d’un classificateur—tel qu’un composant ou une classe—et la manière dont ces parties se connectent via des ports. Il est utile lorsque la collaboration interne est plus importante que l’architecture du système environnant.
PlantUML ne propose pas de syntaxe dédiée à la structure composite universellement prise en charge. Ce croquis au style de diagramme de classes transmet les parties et les connexions :

@startuml
allowmixing
skinparam componentStyle rectangle
class Car {
}
package "Car" {
component "engine : Engine" as engine {
portout p1
}
component "transmission : Transmission" as trans {
portin p2
portout p3
}
component "wheel : Wheel [4]" as wheels {
portin p4
}
p1 -- p2 : drives
p3 -- p4 : power
}
@enduml Considérez ceci comme un croquis structurel ; il ne montre pas de ports UML formels ni de sémantique de connecteurs.
5. Diagramme de déploiement
Mappe les artefacts logiciels ou les services sur des nœuds matériels et des environnements d’exécution. Utilisez-le pour expliquer où le logiciel s’exécute et comment les nœuds d’exécution communiquent.

@startuml
node "Appareil client" as client {
artifact "Navigateur"
}
node "Cloud" {
node "Hôte d'application" as appHost {
artifact "API de la boutique"
}
database "Base de données des commandes" as db
}
cloud "Fournisseur de paiement externe" as pay
client --> appHost : HTTPS
appHost --> db : SQL
appHost --> pay : HTTPS
@enduml
6. Diagramme de paquets
Regroupe les éléments du modèle dans des espaces de noms ou des couches et montre les dépendances entre ces groupes. Utilisez-le pour expliquer l’organisation du code et l’orientation architecturale.

@startuml
package "store.web" {
class CheckoutController
}
package "store.application" {
class PlaceOrder
}
package "store.domain" {
class Order
class Product
}
package "store.persistence" {
class OrderRepository
}
CheckoutController ..> PlaceOrder
PlaceOrder ..> Order
PlaceOrder ..> OrderRepository
@enduml
7. Diagramme de profil
Définit une extension spécifique au domaine pour UML en utilisant des stéréotypes, des valeurs étiquetées et des contraintes. Utilisez-le lorsqu’un projet nécessite un vocabulaire de modélisation cohérent au-delà d’UML standard.
PlantUML peut afficher les concepts de profil comme un croquis au style UML, mais ce n’est pas un rendu dédié aux diagrammes de profil.

@startuml
class "«profil» StoreProfile" as Profile
class "«stéréotype» «Service»" as Service
class "«stéréotype» «Repository»" as Repository
class "«métaclass» Component" as Component
Profile ..> Service : définit
Profile ..> Repository : définit
Service ..> Component : étend
Repository ..> Component : étend
note right of Service
valeur étiquetée :
owner: String
end note
@enduml
Diagrammes comportementaux
8. Diagramme de cas d’utilisation
Affiche les acteurs externes et les objectifs du système avec lesquels ils interagissent. Utilisez-le pour définir la portée et capturer les exigences fonctionnelles à un niveau élevé.

@startuml
direction left to right
acteur Client
acteur "Fournisseur de paiement" as Fournisseur
rectangle "Boutique en ligne" {
cas d'utilisation "Parcourir les produits" as Parcourir
cas d'utilisation "Passer une commande" as Passer
cas d'utilisation "Payer la commande" as Payer
cas d'utilisation "Suivre la commande" as Suivre
}
Client --> Parcourir
Client --> Passer
Client --> Suivre
Fournisseur --> Payer
Passer ..> Payer : <<inclure>>
@enduml
9. Diagramme d’activité
Modélise un flux de travail : actions, décisions, chemins parallèles et transmissions. Utilisez-le pour les processus métier, les procédures opérationnelles ou le flux de contrôle d’un algorithme.

@startuml
début
:Sélectionner les articles;
:Entrer les détails de livraison;
:Calculer le total;
si (Articles disponibles ?) alors (oui)
:Autoriser le paiement;
si (Paiement approuvé ?) alors (oui)
:Créer la commande;
:Envoyer la confirmation;
sinon (non)
:Afficher l'erreur de paiement;
finsi
sinon (non)
:Afficher les articles indisponibles;
fin si
fin
@enduml
10. Diagramme d’état
Décrit les états qu’une entité peut occuper et les événements ou conditions qui provoquent des transitions. Utilisez-le lorsque le comportement d’un objet dépend de son état actuel.

@startuml
[*] --> Brouillon
Brouillon --> PaiementEnAttente : soumettre
PaiementEnAttente --> Payé : paiement approuvé
PaiementEnAttente --> Annulé : paiement refusé
PaiementEnAttente --> Annulé : le client annule
Payé --> Expédié : expédition
Expédié --> Livré : livraison confirmée
Annulé --> [*]
Livré --> [*]
@enduml
11. Diagramme de séquence
Affiche les messages échangés entre les participants dans l’ordre chronologique. Utilisez-le pour décrire un scénario, un flux d’appels d’API ou une interaction entre des services.

@startuml
acteur Client
participant "Boutique Web" as Web
participant "Service de commande" as Commandes
participant "Service de paiement" as Paiements
Client -> Web : soumettre le paiement
Web -> Commandes : créer une commande
Commandes -> Paiements : autoriser le paiement
Paiements --> Commandes : approuvé
Commandes --> Web : confirmation de commande
Web --> Client : afficher la confirmation
@enduml
12. Diagramme de communication
Met l’accent sur les objets qui collaborent et les liens entre eux ; la numérotation des messages indique l’ordre des interactions. Utilisez-le lorsque le réseau de participants collaborant est plus important qu’une chronologie.
PlantUML ne dispose pas d’un rendu dédié pour les diagrammes de communication dans son ensemble UML standard. Ce croquis de liens d’objets étiquette les messages avec des numéros de séquence :

@startuml
objet Client
objet BoutiqueWeb
objet ServiceCommande
objet ServicePaiement
Client --> BoutiqueWeb : 1: checkout()
BoutiqueWeb --> ServiceCommande : 1.1: createOrder()
ServiceCommande --> ServicePaiement : 1.2: authorize()
ServicePaiement --> ServiceCommande : 1.3: approved
ServiceCommande --> BoutiqueWeb : 1.4: confirmation
@enduml
13. Diagramme de vue d’ensemble des interactions
Fournit une vue de haut niveau du flux de contrôle des interactions, combinant un flux de style activité avec des références à des scénarios d’interaction. Utilisez-le pour montrer comment plusieurs scénarios de niveau séquence s’intègrent dans un processus plus large.
Cet exemple PlantUML utilise un diagramme d’activité comme vue d’ensemble, avec des noms de scénarios servant de substituts aux interactions référencées :

@startuml
skinparam conditionStyle InsideDiamond
title Diagramme d'aperçu de l'interaction : Système de traitement des commandes
start
:Le client passe une commande ;
si (L'article est-il en stock ?) alors (oui)
partition "sd Séquence de paiement" {
:Autoriser le paiement ;
:Déduire l'inventaire ;
}
sinon (non)
partition "sd Processus de commande différée" {
:Notifier le client ;
:Générer une demande fournisseur ;
}
finsi
fork
partition "sd Séquence d'expédition" {
:Emballer la commande ;
:Expédier à l'adresse ;
}
fork again
partition "sd Séquence de facturation" {
:Générer la facture ;
:Envoyer l'e-mail de reçu ;
}
end fork
:Clôturer la commande ;
stop
@enduml Pour les échanges de messages détaillés à l’intérieur de chaque scénario, créez un diagramme de séquence séparé.
14. Diagramme de chronologie
Affiche les changements d’état ou de valeur par rapport à un axe temporel. Utilisez-le pour les comportements sensibles au temps, les protocoles, les interactions matérielles ou les exigences impliquant des durées et des délais.

@startuml
robuste "Commande" as Order
concis "Paiement" as Payment
@0
La commande est en brouillon
Le paiement est inactif
@5
La commande est en attente
Le paiement est en cours de traitement
@10
Le paiement est approuvé
@12
La commande est confirmée
@enduml
Choisir un diagramme
Commencez par la question que le diagramme doit répondre :
-
Qu’y a-t-il dans le système ?Classe, objet, composant, structure composite, paquet, profil ou déploiement.
-
Que fait le système ?Cas d’utilisation, activité ou machine d’états.
-
Comment les participants collaborent-ils ?Séquence, communication, aperçu de l’interaction ou chronologie.
Gardez chaque diagramme centré sur un seul objectif, utilisez des noms cohérents dans tous les diagrammes et incluez uniquement assez de détails pour le public et la décision en cours. Les extraits PlantUML sont des points de départ : vérifiez la syntaxe prise en charge par votre rendu, en particulier pour les types de diagrammes spécialisés.
Cette publication est également disponible en Deutsch, English, Español, فارسی, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, Việt Nam, 简体中文 : liste des langues séparées par une virgule, 繁體中文 : dernière langue.












