Archyno
UMLDiagrammes de comportement

Diagrammes d'activité UML

Un processus tracé avec précision : les étapes, les branches, et les parties qui se déroulent vraiment en même temps. Ce qu'UML a de plus proche d'un logigramme, l'ambiguïté en moins.

9 min de lectureUML 2.5.113 sur 35

La réponse courte

  • Un losange envoie le jeton sur exactement un arc, une barre sur tous à la fois. Dessiner un losange là où l'on voulait une barre est l'erreur la plus fréquente de cette notation.
  • Une jointure est une barre et attend chaque arc entrant. Une fusion est un losange et n'attend rien : le premier jeton poursuit sa route.
  • Employer une fusion là où l'on voulait une jointure, c'est ainsi qu'un diagramme affirme qu'un processus continue avant que son travail parallèle soit terminé.
  • C'est un logigramme dont l'ambiguïté a été retirée : bifurcations et jointures, noeuds d'objet, partitions, et une sémantique de jetons qui dit ce qui se passe à chaque noeud.
Diagramme d'activité UML d'un processus de remboursement. Depuis le nœud initial, on reçoit la demande de remboursement. Une décision se branche selon que le montant dépasse la limite : si oui, on escalade au responsable, sinon on continue directement. Les deux chemins fusionnent, puis une barre de bifurcation lance en parallèle le crédit au client et la notification au marchand. Une jonction attend les deux, puis la demande est close et le nœud final de l'activité est atteint.
Un processus de remboursement. Le losange choisit un chemin ; les barres pleines se divisent en deux chemins qui s'exécutent en même temps puis s'attendent.

01Ce qu'il montre#

Un diagramme d'activité décrit un processus comme un flux de travail. Il ressemble à un organigramme, et dans les cas simples c'en est un. Ce qu'il ajoute - et la raison de le préférer à une bibliothèque de formes - est la précision sur deux points où les organigrammes restent flous : la concurrence et la synchronisation.

Le modèle sous-jacent est le flux de jetons. Un jeton part du nœud initial et avance le long des flèches. Une action s'exécute quand un jeton arrive ; quand elle finit, le jeton repart. Une bifurcation transforme un jeton en plusieurs. Une jonction attend d'en avoir un sur chaque arc entrant. Ce seul modèle mental explique tous les symboles du diagramme, et il vaut la peine de s'y accrocher parce qu'il rend les cas délicats évidents.

02Les nœuds#

ÉlémentNotationCe que cela signifie
Nœud initialdisque pleinLà où le flux commence. Un par activité, normalement.
Actionrectangle arrondiUne étape de travail, nommée avec le verbe en premier. Elle s'exécute jusqu'au bout dès qu'un jeton arrive.
Décisionlosange, un arc entrantChoisit un arc sortant selon sa garde. Les gardes s'écrivent entre crochets ; [else] attrape le reste.
Fusionlosange, un arc sortantRamène ensemble des chemins alternatifs. Elle n'attend pas : le premier jeton qui passe continue.
Bifurcationbarre pleine, un arc entrantSe divise en chemins qui s'exécutent tous de façon concurrente.
Jonctionbarre pleine, un arc sortantAttend chaque chemin entrant, puis continue. C'est le point de synchronisation.
Fin d'activitéanneau autour d'un disqueTermine toute l'activité, tuant les jetons encore en vol.
Fin de fluxcercle barré d'une croixTermine ce seul chemin. Le reste de l'activité continue.

03Décision n'est pas bifurcation#

C'est la distinction pour laquelle la notation existe, et celle que l'on embrouille. Une décision est un choix : un jeton entre, un jeton sort, par la branche que la garde sélectionne. Une bifurcation est une division : un jeton entre, plusieurs jetons sortent, tous vivants à la fois.

Deux fragments mis en regard. À gauche, un losange de décision envoie le jeton dans exactement une des deux branches gardées. À droite, une barre de bifurcation envoie un jeton dans les deux branches à la fois, et une jonction attend les deux.
À gauche : un losange, et exactement une branche s'exécute. À droite : une barre, et les deux branches s'exécutent. Les intervertir change entièrement le sens du processus.

Leurs partenaires suivent la même règle. Une fusion (losange) n'attend pas : c'est seulement là où des chemins alternatifs se rejoignent. Une jonction (barre) attend, et les attend tous. Utiliser une fusion là où l'on voulait une jonction, c'est ainsi qu'un diagramme finit par affirmer qu'un processus continue avant que son travail parallèle soit terminé.

04Couloirs#

Une partition d'activité - presque toujours appelée couloir - découpe la page en bandes et place chaque action dans la bande de celui qui l'exécute. Les couloirs peuvent être verticaux ou horizontaux, et ils peuvent s'imbriquer.

Les couloirs sont l'ajout le plus précieux à un diagramme de processus métier, parce que les problèmes intéressants d'un processus sont d'ordinaire les passages de relais. Quand une flèche franchit une frontière de couloir, le travail a changé de mains, et c'est là que les choses se perdent, prennent du retard ou sont faites deux fois. Un diagramme avec quatre franchissements en six étapes vient de vous dire quelque chose d'important.

Ils ne coûtent rien en expressivité : une partition ne change aucune sémantique, elle dit seulement qui est responsable. Si l'exécutant n'a pas d'importance pour votre question, laissez-le de côté.

C'est aussi le point où la notation atteint sa limite. Une partition UML dit qui exécute une étape ; elle ne distingue pas un collègue de l'équipe voisine d'une autre entreprise avec son propre processus. BPMN sépare cela en couloirs et en piscines et donne à la frontière entre piscines une vraie sémantique : seuls les messages la traversent. Si les passages de relais qui vous intéressent sortent de l'organisation, cette distinction justifie la seconde notation, et BPMN est le point de départ.

05Quand en dessiner un#

À utiliser quand

  • Un processus métier avec de vraies branches sur lesquelles il faut se mettre d'accord
  • Tout ce qui comporte un vrai parallélisme - la notation bifurcation/jonction n'a pas de bon substitut
  • Documenter le flux principal et les alternatives derrière un cas d'utilisation
  • Montrer les passages de relais entre équipes ou systèmes, avec des couloirs

Préférer autre chose quand

  • Le processus est linéaire - une liste numérotée est plus courte et aussi claire
  • Vous décrivez le cycle de vie d'un objet - prenez un diagramme d'états
  • Il s'agit en fait de l'ordre des messages entre services - prenez un diagramme de séquence
  • Vous transcririez une fonction existante instruction par instruction

06Erreurs fréquentes#

  1. Une bifurcation à la place d'une décision. Une barre dit que les deux chemins s'exécutent. Si un seul doit le faire, c'est un losange.
  2. Une bifurcation sans jonction. Licite, mais généralement une erreur : cela dit que rien n'attend jamais la fin de ces chemins parallèles.
  3. Des gardes qui ne couvrent pas tout. Ajoutez [else].
  4. Des actions nommées comme des noms. Refund est ambigu ; Credit customer est une étape. Nommez les actions avec le verbe en premier.
  5. Une fin d'activité là où une fin de flux était voulue. L'anneau et le disque tuent l'activité entière, y compris les branches encore en cours. Si vous ne vouliez terminer qu'un chemin, utilisez le cercle barré.

En une ligne chacun

  1. 01Pensez en jetons : une action s'exécute quand un jeton arrive, et le transmet quand elle finit.
  2. 02Le losange choisit un chemin ; la barre pleine les exécute tous.
  3. 03La fusion n'attend pas. La jonction si. C'est la paire à ne pas confondre.
  4. 04Les gardes s'écrivent entre crochets et doivent être exhaustives - ajoutez toujours [else].
  5. 05Les couloirs montrent qui exécute chaque étape ; les processus échouent aux franchissements.
  6. 06La fin d'activité termine tout ; la fin de flux ne termine que son propre chemin.

07Questions fréquentes#

Quelle est la différence entre une bifurcation et une décision ?

Un noeud de décision, un losange, envoie le jeton sur exactement un arc sortant, choisi par les gardes. Une bifurcation, une barre pleine, envoie un jeton sur chaque arc sortant à la fois, si bien que les branches s'exécutent réellement en parallèle. Dessiner un losange là où l'on voulait une barre est la façon la plus courante pour un diagramme d'activité de dire autre chose que ce qu'on pensait.

Qu'est-ce qu'un noeud de fusion dans un diagramme d'activité UML ?

Un losange avec plusieurs arcs entrants et un seul sortant, où les chemins alternatifs se rejoignent. Il n'attend pas - le premier jeton qui le traverse poursuit sa route. C'est toute la différence avec la jointure, qui est une barre et attend chaque arc entrant. Employer une fusion là où l'on voulait une jointure, c'est ainsi qu'un diagramme finit par affirmer qu'un processus continue avant que son travail parallèle soit terminé.

Qu'est-ce qu'une jointure dans un diagramme d'activité UML ?

Le pendant de la bifurcation, tracé avec la même barre pleine. Elle attend un jeton sur chaque arc entrant avant d'en laisser passer un, ce qui permet de modéliser quand tout ceci sera terminé. Une fusion, un losange, est le pendant de la décision et n'attend rien.

À quoi servent les couloirs ?

Ce sont des partitions, selon le terme d'UML lui-même. Chaque couloir nomme qui ou quoi exécute les actions qu'il contient, de sorte que le diagramme montre les passages de relais entre rôles ou systèmes, et pas seulement la suite des étapes.

Un diagramme d'activité UML est-il un logigramme ?

C'est un logigramme dont l'ambiguïté a été retirée. Un logigramme n'a aucun moyen normalisé d'exprimer la concurrence, le flux d'objets ou l'exécutant d'une étape. Un diagramme d'activité a des bifurcations et des jointures, des noeuds d'objet et des partitions, et une sémantique de jetons définie qui dit exactement ce qui se passe à chaque noeud.

Dans cette série

À lire aussi

Tous les articles