Diagramme de séquence

Les diagrammes de séquence dans PlantUML se définissent entièrement en texte. Vous décrivez les participants et les messages qu'ils échangent ; la mise en page, les espacements et les flèches sont générés automatiquement.

Voir les commandes communes pour les fonctionnalités disponibles dans tous les types de diagrammes.

Exemples de base

Dans les diagrammes de séquence PlantUML, la séquence -> dénote un message envoyé entre deux participants, qui sont automatiquement reconnus et n'ont pas besoin d'être déclarés au préalable.

Utilisez les flèches pointillées en employant la séquence -->, offrant une visualisation distincte dans vos diagrammes.

Pour améliorer la lisibilité sans affecter la représentation visuelle, utilisez des flèches inversées comme <- ou <--. Cependant, soyez conscient que ceci est spécifiquement pour les diagrammes de séquence et que les règles diffèrent pour d'autres types de diagrammes.

Déclaration d'un participant

Si le mot-clé participant est utilisé pour déclarer un participant, il est possible d'exercer un contrôle accru sur ce participant.

L'ordre de déclaration sera l'ordre d'affichage(par défaut).

L'utilisation de ces autres mots-clés pour déclarer des participants modifiera la forme de la représentation du participant :

Renommez un participant en utilisant le mot-clé as.

Vous pouvez également modifier la couleur de fond de l'acteur ou du participant .

Vous pouvez utiliser le mot-clé order pour personnaliser l'ordre d'affichage des participants.

WARNING
 This translation need to be updated. 
WARNING

Déclarer un participant sur plusieurs lignes

Vous pouvez déclarer un participant sur plusieurs lignes.

[Ref. QA-15232]

Caractères non alphanumérique dans les participants

Si vous voulez mettre des charactères non alphanumériques, il est possible d'utiliser des guillemets. Et on peut utiliser le mot clé as pour définir un alias pour ces participants.

Message à soi-même

Un participant peut s'envoyer un message à lui-même.

Il est également possible d'avoir plusieurs lignes en utilisant \n

[Réf. QA-1361]

Alignement du texte

L'alignement du texte sur les flèches peut être défini sur left, right ou center en utilisant skinparam sequenceMessageAlign.

Vous pouvez également utiliser direction ou reverseDirection pour aligner le texte en fonction de la direction de la flèche. De plus amples détails et des exemples sont disponibles sur la page skinparam.

Texte du message de réponse sous la flèche

Vous pouvez placer le texte du message de réponse sous la flèche, avec la commande skinparam responseMessageBelowArrow true

Change Actor style

You can change the actor style from stick man (by default) to:

Stick man (by default)

Awesome man

[Ref. QA-10493]

Hollow man

[Ref. PR#396]

Autre style de flèches

Vous pouvez changer les flèches de plusieurs façons :

Changer la couleur des flèches

Changer la couleur d'une flèche ainsi:

Numérotation séquentielle des messages

Le mot clé autonumber est utilisé pour ajouter automatiquement un numéro incrémentiel aux messages

Vous pouvez spécifier un numéro de début avec autonumber <start> et également un incrément avec autonumber <start> <increment>.

Vous pouvez spécifier un format pour votre nombre en utilisant entre guillemets.

Le formatage est fait avec la classe Java DecimalFormat (0 signifie chiffre, # signifie chiffre et zéro si absent).

Vous pouvez utiliser une balise html dans le format

Vous pouvez également utiliser autonumber stop et autonumber resume <increment> <format> pour respectivement interrompre et reprendre la numérotation automatique de

Votre numéro de départ peut également être une séquence de 2 ou 3 chiffres utilisant un délimiteur de champ tel que ., ;, ,, : ou un mélange de ceux-ci. Par exemple : 1.1.1 ou 1.1:1.

Le dernier chiffre s'incrémente automatiquement.

Pour incrémenter le premier chiffre, utilisez : autonumber inc A. Pour incrémenter le deuxième chiffre, utilisez : autonumber inc B

Vous pouvez également utiliser la valeur de autonumber avec la variable %autonumber%
[Réf. QA-7119]

Titre, en-tête et pied de page de la page

Le mot clé title est utilisé pour ajouter un titre à la page.

Les pages peuvent afficher des en-têtes et des pieds de page en utilisant header et footer.

Découper un diagramme

Le mot clé newpage est utilisé pour découper un digramme en plusieurs images.

Vous pouvez mettre un titre pour la nouvelle page juste après le mot clé newpage.

Ceci est très pratique pour mettre de très longs digrammes sur plusieurs pages.

WARNING
 This translation need to be updated. 
WARNING

Regrouper les messages (cadres UML)

Il est possible de regrouper les messages dans un cadre UML à l'aide d'un des mot clés suivants:

Il est aussi possible de mettre un texte à afficher dans l'entête. Le mot-clé end est utilisé pour fermer le groupe. Il est aussi possible d'imbriquer les groupes.

Terminer le cadre avec le mot-clé end.

Il est possible d'imbriquer les cadres.

WARNING
 This translation need to be updated. 
WARNING

Étiquette secondaire de groupe

Pour les group, il est possible d'ajouter, entre[ et ], un texte ou une étiquette secondaire qui sera affiché dans l'en-tête

[Réf. QA-2503]

Partition across the entire width

You can use partition command to group messages horizontally across the entire width (full-width).

Messages are not grouped horizontally across the entire width (by default)

Grouping messages horizontally across the entire width (with teoz mode)

[Ref. GH-589]

Note sur les messages

Pour attacher une note à un message, utiliser les mots-clés note left (pour une note à gauche) ou note right (pour une note à droite) juste après le message.

Il est possible d'avoir une note sur plusieurs lignes avec le mot clé end note.

Encore plus de notes

Il est aussi possible de mettre des notes placées par rapport aux participants.

Il est aussi possible de faire ressortir une note en changeant sa couleur de fond.

On peut aussi avoir des notes sur plusieurs lignes à l'aide du mot clé end note.

WARNING
 This translation need to be updated. 
WARNING

Changer l'aspect des notes

Vous pouvez préciser la forme géométrique des notes :

[Ref. QA-1765]

Note sur tous les participants [à travers]

Vous pouvez directement faire une note sur tous les participants, avec la syntaxe :

[Réf. QA-9738]

Plusieurs notes alignées au même niveau [/]

Vous pouvez faire plusieurs notes alignées au même niveau, avec la syntaxe /:

[Réf. QA-354]

Créole (langage de balisage léger) et HTML

Il est également possible d'utiliser le formatage créole (langage de balisage léger):

WARNING
 This translation need to be updated. 
WARNING

Diviseur ou séparateur

Si vous le souhaitez, vous pouvez diviser un diagramme en utilisant == comme séparateur pour diviser votre diagramme en étapes logiques

Référence

Vous pouvez ajouter des références dans un diagramme, en utilisant le mot-clé ref over.

Retard

Utiliser ... pour indiquer le passage de temps arbitraire dans le diagramme. Un message peut être associé à un retard.

Habillage du texte

Pour interrompre de longs messages, vous pouvez ajouter manuellement \n dans votre texte.

Une autre option consiste à utiliser le paramètre maxMessageSize

Message text spans beyond the involved participants

You can use sequenceMessageSpan command to allow message text to span beyond the involved participants.

Without sequenceMessageSpan (by default)

With sequenceMessageSpan (on teoz mode)

[Ref. GH-2386]

Séparation verticale

Utiliser ||| pour créer un espace vertical dans le diagramme.

Il est également possible de spécifier un nombre de pixels pour la séparation verticale.

Lignes de vie

Vous pouvez utiliser activate et deactivate pour marquer l'activation des participants.

Une fois qu'un participant est activé, sa ligne de vie apparaît.

Les ordres activate et deactivate s'applique sur le message situé juste avant.

Le mot clé destroy sert à montrer la fin de vie d'un participant.

Les lignes de vie peuvent être imbriquées, et il est possible de les colorer.

WARNING
 This translation need to be updated. 
WARNING

Retour

La commande return génère un message de retour avec un libellé facultatif.

Le point de retour est celui qui a provoqué l'activation la plus récente de la ligne de vie.

La syntaxe est return labellabel, si elle est fournie, est toute chaîne acceptable pour les messages conventionnels.

Création d'un participant

Vous pouvez utiliser le mot clé create juste avant la première réception d'un message pour souligner le fait que ce message crée effectivement ce nouvel objet.

Syntaxe raccourcie pour l'activation, la désactivation, la création

Immédiatement après avoir spécifié le participant cible, la syntaxe suivante peut être utilisée :

Vous pouvez alors mélanger activation et désactivation, sur la même ligne

[Réf. QA-4834, QA-9573 et QA-13234]

Messages entrant et sortant

Vous pouvez utiliser des flèches qui viennent de la droite ou de la gauche pour dessiner un sous-diagramme.

Il faut utiliser des crochets pour indiquer la gauche "[" ou la droite "]" du diagramme.

Vous pouvez aussi utiliser la syntaxe suivante:

WARNING
 This translation need to be updated. 
WARNING

Flèches courtes pour les messages entrants et sortants

Vous pouvez avoir des flèches courtes en utilisant ?

[Réf. QA-310]

Anchors and Duration

En utilisant teoz il est possible d'ajouter des balises au diagramme et d'utiliser ces balises pour preciser la duree.

Vous pouvez utiliser l'option de ligne de commande -P pour spécifier le pragma:

java -jar plantuml.jar -Pteoz=true

[Ref. issue-582]

Stéréotypes et décoration

Il est possible de rajouter un stéréotype aux participants en utilisant "<<" et ">>".

Dans le stéréotype, vous pouvez ajouter un caractère entouré d'un cercle coloré en utilisant la syntaxe (X,couleur).

Par défaut, le caractère guillemet est utilisé pour afficher les stéréotypes. Vous pouvez changer ce comportement en utilisant la propriété skinparam guillemet:

Position of the stereotypes

It is possible to define stereotypes position (top or bottom) with the command skinparam stereotypePosition.

Top postion (by default)

Bottom postion

[Ref. QA-18650]

Plus d'information sur les titres

Vous pouvez utiliser le formatage creole dans le titre.

Vous pouvez mettre des retours à la ligne en utilisant \n dans la description.
Vous pouvez aussi mettre un titre sur plusieurs lignes à l'aide des mots-clé title et end title.

Cadre pour les participants

Il est possible de dessiner un cadre autour de certains participants, en utilisant les commandes box et end box.

Vous pouvez ajouter un titre ou bien une couleur de fond après le mot-clé box.

WARNING
 This translation need to be updated. 
WARNING

Supprimer les participants en pied de page

Vous pouvez utiliser le mot-clé hide footbox pour supprimer la partie basse du diagramme.

Personnalisation

Utilisez la commande skinparam pour changer la couleur et la mise en forme du texte du schéma.

Vous pouvez utiliser cette commande :

Vous pouvez aussi modifier d'autres paramètres pour le rendu, comme le montrent les exemples suivants:

WARNING
 This translation need to be updated. 
WARNING

Changer le padding

Il est possible de changer certains paramètres du padding.

*[Ref. [QA-5493](https://forum.plantuml.net/5493/provide-skinparam-between-participants-sequence-diagrams)]*

Appendix: Examples of all arrow type

Normal arrow

Itself arrow

Incoming and outgoing messages (with '[', ']')

Incoming messages (with '[')

Outgoing messages (with ']')

Short incoming and outgoing messages (with '?')

Short incoming (with '?')

Short outgoing (with '?')

SkinParameter spécifique

Par défaut

LifelineStrategy

[Ref. QA-9016]

Pour avoir une ligne de vie solide dans les diagrammes de séquence, vous pouvez utiliser : skinparam lifelineStrategy solid

[Ref. QA-2794]

style strictuml

Pour être conforme à l'UML strict(pour le style de flèche : émet un triangle plutôt que des pointes de flèche pointues), vous pouvez utiliser
[Réf. QA-1047]

*[Ref. [GH-2266](https:github.com/plantuml/plantuml/pull/2266) and [GH-2662](https:github.com/plantuml/plantuml/issues/2662)]*
WARNING
 This translation need to be updated. 
WARNING

Masquer un participant non lié

Par défaut, tous les participants sont affichés

Mais vous pouvez hide unlinked participant

[Réf. QA-4247]

Colorier un groupe de message

Il est possible de colorer un groupe de message

[Réf. QA-4750 et QA-6410]

Mainframe

[Ref. QA-4019 and Issue#148]

Slanted or odd arrows

You can use the (nn) option (before or after arrow) to make the arrows slanted, where nn is the number of shift pixels.

[Available only after v1.2022.6beta+]

[Ref. QA-14145]

[Ref. QA-6684]

[Ref. QA-1072]

Parallel messages (with teoz)

You can use the & teoz command to display parallel messages:

(See also Teoz architecture)

Style for Solid Lifeline

By default

Solid Lifeline using style

[Ref. GH-2266 and GH-2662]