« Catalogue PlantUML » : différence entre les versions
Ajout de la page Catalogue PlantUML (20 cas d’usage) |
Ajout du rendu PlantUML sous chaque bloc de code existant |
||
| Ligne 28 : | Ligne 28 : | ||
@enduml | @enduml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startuml | |||
actor Utilisateur | |||
participant "Frontend" as Front | |||
participant "API" as API | |||
database "Base PostgreSQL" as DB | |||
Utilisateur -> Front : saisit ses identifiants | |||
Front -> API : POST /login | |||
API -> DB : vérifier le compte | |||
DB --> API : compte valide | |||
API --> Front : token | |||
Front --> Utilisateur : accès autorisé | |||
@enduml</pre> | |||
== 2. Diagramme de classes == | == 2. Diagramme de classes == | ||
| Ligne 55 : | Ligne 70 : | ||
@enduml | @enduml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startuml | |||
class Utilisateur { | |||
+id : UUID | |||
+nom : String | |||
+email : String | |||
+seConnecter() | |||
} | |||
class Role { | |||
+code : String | |||
+libelle : String | |||
} | |||
class Session { | |||
+token : String | |||
+expiration : Instant | |||
} | |||
Utilisateur "1" -- "*" Role | |||
Utilisateur "1" -- "0..*" Session | |||
@enduml</pre> | |||
== 3. Diagramme de cas d’utilisation == | == 3. Diagramme de cas d’utilisation == | ||
| Ligne 78 : | Ligne 116 : | ||
@enduml | @enduml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startuml | |||
left to right direction | |||
actor "Chef de projet" as CP | |||
actor "Analyste" as A | |||
rectangle "Plateforme d'analyse" { | |||
usecase "Lancer une analyse" as UC1 | |||
usecase "Consulter les résultats" as UC2 | |||
usecase "Exporter un rapport" as UC3 | |||
} | |||
A --> UC1 | |||
A --> UC2 | |||
CP --> UC2 | |||
CP --> UC3 | |||
@enduml</pre> | |||
== 4. Diagramme d’activité == | == 4. Diagramme d’activité == | ||
| Ligne 96 : | Ligne 153 : | ||
@enduml | @enduml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startuml | |||
start | |||
:Réception du code source; | |||
:Préparation de l'analyse; | |||
if (Langage supporté ?) then (oui) | |||
:Exécuter les règles; | |||
:Consolider les résultats; | |||
else (non) | |||
:Notifier l'absence de support; | |||
endif | |||
stop | |||
@enduml</pre> | |||
== 5. Diagramme d’états == | == 5. Diagramme d’états == | ||
| Ligne 111 : | Ligne 182 : | ||
@enduml | @enduml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startuml | |||
[*] --> Brouillon | |||
Brouillon --> EnRevue : soumettre | |||
EnRevue --> Valide : approuver | |||
EnRevue --> Rejete : refuser | |||
Rejete --> Brouillon : corriger | |||
Valide --> Archive : clôturer | |||
Archive --> [*] | |||
@enduml</pre> | |||
== 6. Diagramme de composants == | == 6. Diagramme de composants == | ||
| Ligne 127 : | Ligne 209 : | ||
@enduml | @enduml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startuml | |||
component "Frontend Angular" as Front | |||
component "API Spring Boot" as API | |||
component "Moteur d'analyse" as Engine | |||
database "PostgreSQL" as DB | |||
Front --> API | |||
API --> Engine | |||
API --> DB | |||
@enduml</pre> | |||
== 7. Diagramme de déploiement == | == 7. Diagramme de déploiement == | ||
| Ligne 150 : | Ligne 244 : | ||
@enduml | @enduml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startuml | |||
node "Poste utilisateur" { | |||
artifact "Navigateur" | |||
} | |||
node "Serveur applicatif" { | |||
artifact "frontend.war" | |||
artifact "api.jar" | |||
} | |||
node "Serveur base de données" { | |||
database "PostgreSQL" | |||
} | |||
"Navigateur" --> "frontend.war" | |||
"api.jar" --> "PostgreSQL" | |||
@enduml</pre> | |||
== 8. Diagramme d’objets == | == 8. Diagramme d’objets == | ||
| Ligne 170 : | Ligne 283 : | ||
@enduml | @enduml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startuml | |||
object utilisateur1 { | |||
id = 42 | |||
nom = "Dupont" | |||
email = "dupont@example.test" | |||
} | |||
object roleAdmin { | |||
code = "ADMIN" | |||
libelle = "Administrateur" | |||
} | |||
utilisateur1 -- roleAdmin | |||
@enduml</pre> | |||
== 9. Diagramme de packages == | == 9. Diagramme de packages == | ||
| Ligne 192 : | Ligne 321 : | ||
@enduml | @enduml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startuml | |||
package "presentation" { | |||
class Controleur | |||
} | |||
package "application" { | |||
class ServiceMetier | |||
} | |||
package "infrastructure" { | |||
class Repository | |||
} | |||
Controleur --> ServiceMetier | |||
ServiceMetier --> Repository | |||
@enduml</pre> | |||
== 10. Diagramme de timing == | == 10. Diagramme de timing == | ||
| Ligne 213 : | Ligne 360 : | ||
@enduml | @enduml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startuml | |||
robust "Service" as S | |||
concise "Cache" as C | |||
@0 | |||
S is Arrêté | |||
C is Vide | |||
@10 | |||
S is Démarré | |||
C is Chargement | |||
@20 | |||
C is Prêt | |||
@enduml</pre> | |||
== 11. Gantt == | == 11. Gantt == | ||
| Ligne 226 : | Ligne 390 : | ||
@endgantt | @endgantt | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startgantt | |||
Project starts 2026-04-01 | |||
[Analyse initiale] lasts 5 days | |||
[Revue d'architecture] starts at [Analyse initiale]'s end and lasts 3 days | |||
[Rapport final] starts at [Revue d'architecture]'s end and lasts 2 days | |||
@endgantt</pre> | |||
== 12. WBS – découpage des travaux == | == 12. WBS – découpage des travaux == | ||
| Ligne 245 : | Ligne 418 : | ||
@endwbs | @endwbs | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startwbs | |||
* Projet d'analyse | |||
** Préparation | |||
*** Collecte du code | |||
*** Vérification du périmètre | |||
** Analyse | |||
*** Qualité | |||
*** Sécurité | |||
*** Architecture | |||
** Restitution | |||
*** Rapport | |||
*** Présentation | |||
@endwbs</pre> | |||
== 13. Mindmap == | == 13. Mindmap == | ||
| Ligne 263 : | Ligne 451 : | ||
@endmindmap | @endmindmap | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startmindmap | |||
* Dette logicielle | |||
** Dette de code | |||
*** duplication | |||
*** complexité | |||
** Dette d'architecture | |||
*** couplage fort | |||
*** dépendances cycliques | |||
** Dette d'exploitation | |||
*** déploiement manuel | |||
*** supervision absente | |||
@endmindmap</pre> | |||
== 14. Organigramme / schéma de flux == | == 14. Organigramme / schéma de flux == | ||
| Ligne 279 : | Ligne 481 : | ||
@enduml | @enduml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startuml | |||
start | |||
:Recevoir la demande; | |||
if (Périmètre complet ?) then (oui) | |||
:Planifier l'analyse; | |||
else (non) | |||
:Demander les éléments manquants; | |||
endif | |||
stop | |||
@enduml</pre> | |||
== 15. Schéma de topologie réseau simple == | == 15. Schéma de topologie réseau simple == | ||
| Ligne 295 : | Ligne 509 : | ||
@enduml | @enduml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startuml | |||
node "Client VPN" as Client | |||
node "Reverse proxy" as Proxy | |||
node "OpenWebUI" as OWUI | |||
node "Dependency-Track" as DT | |||
Client --> Proxy : HTTPS | |||
Proxy --> OWUI : 8080 | |||
Proxy --> DT : 8081 | |||
@enduml</pre> | |||
== 16. Vue d’architecture applicative simple == | == 16. Vue d’architecture applicative simple == | ||
| Ligne 313 : | Ligne 539 : | ||
@enduml | @enduml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startuml | |||
rectangle "Utilisateur" as User | |||
rectangle "Portail Web" as Web | |||
rectangle "API métier" as API | |||
rectangle "Moteur d'analyse" as Engine | |||
database "Référentiel" as Ref | |||
User --> Web | |||
Web --> API | |||
API --> Engine | |||
API --> Ref | |||
@enduml</pre> | |||
== 17. Exemple de légende == | == 17. Exemple de légende == | ||
| Ligne 329 : | Ligne 569 : | ||
@enduml | @enduml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startuml | |||
legend | |||
|= Niveau |= Signification | | |||
| Critique | Correction immédiate | | |||
| Majeur | Correction à court terme | | |||
| Mineur | Amélioration souhaitable | | |||
endlegend | |||
rectangle "Exemple" | |||
@enduml</pre> | |||
== 18. Exemple d’écran / maquette fonctionnelle simple == | == 18. Exemple d’écran / maquette fonctionnelle simple == | ||
| Ligne 346 : | Ligne 598 : | ||
@enduml | @enduml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startuml | |||
rectangle "Écran principal" { | |||
rectangle "Menu" as Menu | |||
rectangle "Filtres" as Filters | |||
rectangle "Zone de résultats" as Results | |||
rectangle "Détail" as Detail | |||
} | |||
Filters --> Results | |||
Results --> Detail | |||
@enduml</pre> | |||
== 19. Exemple de workflow métier == | == 19. Exemple de workflow métier == | ||
| Ligne 368 : | Ligne 633 : | ||
@enduml | @enduml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startuml | |||
start | |||
:Réception d'un dossier; | |||
:Contrôle de complétude; | |||
if (Dossier complet ?) then (oui) | |||
:Instruction; | |||
if (Avis favorable ?) then (oui) | |||
:Validation; | |||
else (non) | |||
:Rejet motivé; | |||
endif | |||
else (non) | |||
:Demande de complément; | |||
endif | |||
stop | |||
@enduml</pre> | |||
== 20. Exemple de pipeline CI/CD == | == 20. Exemple de pipeline CI/CD == | ||
| Ligne 397 : | Ligne 680 : | ||
@enduml | @enduml | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Rendu du modèle === | |||
<pre class="oc-plantuml">@startuml | |||
start | |||
:Commit du développeur; | |||
:Déclenchement CI; | |||
:Compilation; | |||
if (Compilation OK ?) then (oui) | |||
:Tests automatiques; | |||
if (Tests OK ?) then (oui) | |||
:Analyse de qualité; | |||
if (Qualité acceptable ?) then (oui) | |||
:Construction de l'artefact; | |||
:Déploiement; | |||
else (non) | |||
:Blocage de la livraison; | |||
endif | |||
else (non) | |||
:Correction des tests; | |||
endif | |||
else (non) | |||
:Correction de la compilation; | |||
endif | |||
stop | |||
@enduml</pre> | |||
== Limites à connaître == | == Limites à connaître == | ||
Dernière version du 2 avril 2026 à 19:41
Catalogue PlantUML – principaux cas d’usage
Cette page présente plusieurs représentations réalisables avec PlantUML, sous la forme d’exemples simples, lisibles et facilement réutilisables.
Chaque section contient :
- le cas d’usage visé ;
- un exemple minimal ;
- un code PlantUML autonome.
1. Diagramme de séquence
Usage : représenter des échanges entre acteurs, applications, API, bases de données ou services.
@startuml
actor Utilisateur
participant "Frontend" as Front
participant "API" as API
database "Base PostgreSQL" as DB
Utilisateur -> Front : saisit ses identifiants
Front -> API : POST /login
API -> DB : vérifier le compte
DB --> API : compte valide
API --> Front : token
Front --> Utilisateur : accès autorisé
@endumlRendu du modèle
@startuml actor Utilisateur participant "Frontend" as Front participant "API" as API database "Base PostgreSQL" as DB Utilisateur -> Front : saisit ses identifiants Front -> API : POST /login API -> DB : vérifier le compte DB --> API : compte valide API --> Front : token Front --> Utilisateur : accès autorisé @enduml
2. Diagramme de classes
Usage : représenter une structure de données, un modèle métier ou l’organisation d’un code.
@startuml
class Utilisateur {
+id : UUID
+nom : String
+email : String
+seConnecter()
}
class Role {
+code : String
+libelle : String
}
class Session {
+token : String
+expiration : Instant
}
Utilisateur "1" -- "*" Role
Utilisateur "1" -- "0..*" Session
@endumlRendu du modèle
@startuml
class Utilisateur {
+id : UUID
+nom : String
+email : String
+seConnecter()
}
class Role {
+code : String
+libelle : String
}
class Session {
+token : String
+expiration : Instant
}
Utilisateur "1" -- "*" Role
Utilisateur "1" -- "0..*" Session
@enduml
3. Diagramme de cas d’utilisation
Usage : montrer les fonctionnalités offertes par un système à ses utilisateurs.
@startuml
left to right direction
actor "Chef de projet" as CP
actor "Analyste" as A
rectangle "Plateforme d'analyse" {
usecase "Lancer une analyse" as UC1
usecase "Consulter les résultats" as UC2
usecase "Exporter un rapport" as UC3
}
A --> UC1
A --> UC2
CP --> UC2
CP --> UC3
@endumlRendu du modèle
@startuml
left to right direction
actor "Chef de projet" as CP
actor "Analyste" as A
rectangle "Plateforme d'analyse" {
usecase "Lancer une analyse" as UC1
usecase "Consulter les résultats" as UC2
usecase "Exporter un rapport" as UC3
}
A --> UC1
A --> UC2
CP --> UC2
CP --> UC3
@enduml
4. Diagramme d’activité
Usage : représenter un processus, un enchaînement de traitements ou une procédure.
@startuml
start
:Réception du code source;
:Préparation de l'analyse;
if (Langage supporté ?) then (oui)
:Exécuter les règles;
:Consolider les résultats;
else (non)
:Notifier l'absence de support;
endif
stop
@endumlRendu du modèle
@startuml start :Réception du code source; :Préparation de l'analyse; if (Langage supporté ?) then (oui) :Exécuter les règles; :Consolider les résultats; else (non) :Notifier l'absence de support; endif stop @enduml
5. Diagramme d’états
Usage : décrire le cycle de vie d’un objet, d’un dossier ou d’un ticket.
@startuml
[*] --> Brouillon
Brouillon --> EnRevue : soumettre
EnRevue --> Valide : approuver
EnRevue --> Rejete : refuser
Rejete --> Brouillon : corriger
Valide --> Archive : clôturer
Archive --> [*]
@endumlRendu du modèle
@startuml [*] --> Brouillon Brouillon --> EnRevue : soumettre EnRevue --> Valide : approuver EnRevue --> Rejete : refuser Rejete --> Brouillon : corriger Valide --> Archive : clôturer Archive --> [*] @enduml
6. Diagramme de composants
Usage : présenter l’architecture logique d’une application ou la répartition des modules.
@startuml
component "Frontend Angular" as Front
component "API Spring Boot" as API
component "Moteur d'analyse" as Engine
database "PostgreSQL" as DB
Front --> API
API --> Engine
API --> DB
@endumlRendu du modèle
@startuml component "Frontend Angular" as Front component "API Spring Boot" as API component "Moteur d'analyse" as Engine database "PostgreSQL" as DB Front --> API API --> Engine API --> DB @enduml
7. Diagramme de déploiement
Usage : montrer où les composants sont installés et comment ils communiquent.
@startuml
node "Poste utilisateur" {
artifact "Navigateur"
}
node "Serveur applicatif" {
artifact "frontend.war"
artifact "api.jar"
}
node "Serveur base de données" {
database "PostgreSQL"
}
"Navigateur" --> "frontend.war"
"api.jar" --> "PostgreSQL"
@endumlRendu du modèle
@startuml
node "Poste utilisateur" {
artifact "Navigateur"
}
node "Serveur applicatif" {
artifact "frontend.war"
artifact "api.jar"
}
node "Serveur base de données" {
database "PostgreSQL"
}
"Navigateur" --> "frontend.war"
"api.jar" --> "PostgreSQL"
@enduml
8. Diagramme d’objets
Usage : illustrer un exemple concret d’instances d’objets.
@startuml
object utilisateur1 {
id = 42
nom = "Dupont"
email = "dupont@example.test"
}
object roleAdmin {
code = "ADMIN"
libelle = "Administrateur"
}
utilisateur1 -- roleAdmin
@endumlRendu du modèle
@startuml
object utilisateur1 {
id = 42
nom = "Dupont"
email = "dupont@example.test"
}
object roleAdmin {
code = "ADMIN"
libelle = "Administrateur"
}
utilisateur1 -- roleAdmin
@enduml
9. Diagramme de packages
Usage : décrire l’organisation modulaire d’un code ou d’une architecture applicative.
@startuml
package "presentation" {
class Controleur
}
package "application" {
class ServiceMetier
}
package "infrastructure" {
class Repository
}
Controleur --> ServiceMetier
ServiceMetier --> Repository
@endumlRendu du modèle
@startuml
package "presentation" {
class Controleur
}
package "application" {
class ServiceMetier
}
package "infrastructure" {
class Repository
}
Controleur --> ServiceMetier
ServiceMetier --> Repository
@enduml
10. Diagramme de timing
Usage : montrer l’évolution d’états au cours du temps.
@startuml
robust "Service" as S
concise "Cache" as C
@0
S is Arrêté
C is Vide
@10
S is Démarré
C is Chargement
@20
C is Prêt
@endumlRendu du modèle
@startuml robust "Service" as S concise "Cache" as C @0 S is Arrêté C is Vide @10 S is Démarré C is Chargement @20 C is Prêt @enduml
11. Gantt
Usage : représenter une planification simple de travaux ou de jalons.
@startgantt
Project starts 2026-04-01
[Analyse initiale] lasts 5 days
[Revue d'architecture] starts at [Analyse initiale]'s end and lasts 3 days
[Rapport final] starts at [Revue d'architecture]'s end and lasts 2 days
@endganttRendu du modèle
@startgantt Project starts 2026-04-01 [Analyse initiale] lasts 5 days [Revue d'architecture] starts at [Analyse initiale]'s end and lasts 3 days [Rapport final] starts at [Revue d'architecture]'s end and lasts 2 days @endgantt
12. WBS – découpage des travaux
Usage : structurer un projet en lots, sous-lots et activités.
@startwbs
* Projet d'analyse
** Préparation
*** Collecte du code
*** Vérification du périmètre
** Analyse
*** Qualité
*** Sécurité
*** Architecture
** Restitution
*** Rapport
*** Présentation
@endwbsRendu du modèle
@startwbs * Projet d'analyse ** Préparation *** Collecte du code *** Vérification du périmètre ** Analyse *** Qualité *** Sécurité *** Architecture ** Restitution *** Rapport *** Présentation @endwbs
13. Mindmap
Usage : organiser visuellement des idées, thèmes ou axes d’analyse.
@startmindmap
* Dette logicielle
** Dette de code
*** duplication
*** complexité
** Dette d'architecture
*** couplage fort
*** dépendances cycliques
** Dette d'exploitation
*** déploiement manuel
*** supervision absente
@endmindmapRendu du modèle
@startmindmap * Dette logicielle ** Dette de code *** duplication *** complexité ** Dette d'architecture *** couplage fort *** dépendances cycliques ** Dette d'exploitation *** déploiement manuel *** supervision absente @endmindmap
14. Organigramme / schéma de flux
Usage : représenter un enchaînement logique simple, proche d’une procédure.
@startuml
start
:Recevoir la demande;
if (Périmètre complet ?) then (oui)
:Planifier l'analyse;
else (non)
:Demander les éléments manquants;
endif
stop
@endumlRendu du modèle
@startuml start :Recevoir la demande; if (Périmètre complet ?) then (oui) :Planifier l'analyse; else (non) :Demander les éléments manquants; endif stop @enduml
15. Schéma de topologie réseau simple
Usage : représenter des flux entre postes, proxy, services ou zones.
@startuml
node "Client VPN" as Client
node "Reverse proxy" as Proxy
node "OpenWebUI" as OWUI
node "Dependency-Track" as DT
Client --> Proxy : HTTPS
Proxy --> OWUI : 8080
Proxy --> DT : 8081
@endumlRendu du modèle
@startuml node "Client VPN" as Client node "Reverse proxy" as Proxy node "OpenWebUI" as OWUI node "Dependency-Track" as DT Client --> Proxy : HTTPS Proxy --> OWUI : 8080 Proxy --> DT : 8081 @enduml
16. Vue d’architecture applicative simple
Usage : décrire une vue d’ensemble lisible sans entrer dans le détail UML formel.
@startuml
rectangle "Utilisateur" as User
rectangle "Portail Web" as Web
rectangle "API métier" as API
rectangle "Moteur d'analyse" as Engine
database "Référentiel" as Ref
User --> Web
Web --> API
API --> Engine
API --> Ref
@endumlRendu du modèle
@startuml rectangle "Utilisateur" as User rectangle "Portail Web" as Web rectangle "API métier" as API rectangle "Moteur d'analyse" as Engine database "Référentiel" as Ref User --> Web Web --> API API --> Engine API --> Ref @enduml
17. Exemple de légende
Usage : ajouter une légende de lecture commune à plusieurs schémas.
@startuml
legend
|= Niveau |= Signification |
| Critique | Correction immédiate |
| Majeur | Correction à court terme |
| Mineur | Amélioration souhaitable |
endlegend
rectangle "Exemple"
@endumlRendu du modèle
@startuml legend |= Niveau |= Signification | | Critique | Correction immédiate | | Majeur | Correction à court terme | | Mineur | Amélioration souhaitable | endlegend rectangle "Exemple" @enduml
18. Exemple d’écran / maquette fonctionnelle simple
Usage : esquisser rapidement une interface ou une disposition fonctionnelle.
@startuml
rectangle "Écran principal" {
rectangle "Menu" as Menu
rectangle "Filtres" as Filters
rectangle "Zone de résultats" as Results
rectangle "Détail" as Detail
}
Filters --> Results
Results --> Detail
@endumlRendu du modèle
@startuml
rectangle "Écran principal" {
rectangle "Menu" as Menu
rectangle "Filtres" as Filters
rectangle "Zone de résultats" as Results
rectangle "Détail" as Detail
}
Filters --> Results
Results --> Detail
@enduml
19. Exemple de workflow métier
Usage : représenter un traitement métier de bout en bout.
@startuml
start
:Réception d'un dossier;
:Contrôle de complétude;
if (Dossier complet ?) then (oui)
:Instruction;
if (Avis favorable ?) then (oui)
:Validation;
else (non)
:Rejet motivé;
endif
else (non)
:Demande de complément;
endif
stop
@endumlRendu du modèle
@startuml start :Réception d'un dossier; :Contrôle de complétude; if (Dossier complet ?) then (oui) :Instruction; if (Avis favorable ?) then (oui) :Validation; else (non) :Rejet motivé; endif else (non) :Demande de complément; endif stop @enduml
20. Exemple de pipeline CI/CD
Usage : représenter un pipeline d’intégration et de livraison.
@startuml
start
:Commit du développeur;
:Déclenchement CI;
:Compilation;
if (Compilation OK ?) then (oui)
:Tests automatiques;
if (Tests OK ?) then (oui)
:Analyse de qualité;
if (Qualité acceptable ?) then (oui)
:Construction de l'artefact;
:Déploiement;
else (non)
:Blocage de la livraison;
endif
else (non)
:Correction des tests;
endif
else (non)
:Correction de la compilation;
endif
stop
@endumlRendu du modèle
@startuml start :Commit du développeur; :Déclenchement CI; :Compilation; if (Compilation OK ?) then (oui) :Tests automatiques; if (Tests OK ?) then (oui) :Analyse de qualité; if (Qualité acceptable ?) then (oui) :Construction de l'artefact; :Déploiement; else (non) :Blocage de la livraison; endif else (non) :Correction des tests; endif else (non) :Correction de la compilation; endif stop @enduml
Limites à connaître
PlantUML est bien adapté :
- à la documentation ;
- à la démonstration ;
- aux schémas versionnables en texte ;
- à l’intégration dans un wiki ou un dépôt Git.
En revanche :
- le rendu BPMN natif n’est pas complet au sens d’un outil spécialisé ;
- les maquettes très visuelles sont moins naturelles qu’avec un outil graphique dédié ;
- les schémas très denses perdent rapidement en lisibilité.
Conseils d’utilisation
- Préférer un diagramme simple par idée.
- Donner un titre clair à chaque schéma.
- Réutiliser des alias courts pour garder un code lisible.
- Limiter le nombre d’éléments affichés pour éviter les schémas surchargés.
- Conserver ces exemples comme base de départ pour vos propres modèles.