Exemples de diagrammes d'activité
Trois diagrammes d'activité de processus que vous connaissez - une chaîne d'intégration continue, un tri de tickets et un fragment qui termine deux jetons différemment - chacun avec la raison d'être de chaque nœud.
8 min de lectureUML 2.5.114 sur 35
La réponse courte
- Une chaîne d'intégration continue est l'exemple le plus clair : construire, puis trois vérifications en parallèle derrière une bifurcation, une jointure qui attend les trois, et un branchement selon le résultat.
- Les arêtes sortant d'une bifurcation ne portent jamais de garde, puisque toutes sont empruntées. Les gardes vont sur les arêtes d'une décision.
- Un final de flux arrête un jeton, un final d'activité arrête tout. Le disque cerclé sur une branche secondaire tue silencieusement le flux principal.
- Donnez à la dernière arête d'une décision la garde [else]. Sans elle un jeton peut arriver là où aucune garde ne tient, et l'activité se bloque.
01Exemple 1 : du travail parallèle derrière une bifurcation#
Un pipeline de build est le premier exemple le plus clair parce que la concurrence y est réelle et non théorique. Les tests unitaires, le linting et l'analyse de dépendances tournent vraiment en même temps, rien en aval ne peut démarrer avant que les trois soient finis, et tout le monde l'a déjà vu se produire.
Le travail est fait par les deux barres pleines. Celle du haut est une bifurcation : un jeton arrive et trois repartent, donc les trois branches s'exécutent. Celle du bas est une jonction : elle attend qu'un jeton soit arrivé sur chaque arête entrante avant d'en laisser un continuer. Remplacez l'une ou l'autre par un losange et le diagramme affirme désormais quelque chose de faux - un losange se déclenche au premier jeton et n'attend jamais.
Notez les deux noeuds finaux distincts. Un build en échec et un build déployé sont deux fins différentes, et les dessiner en deux disques cerclés est à la fois légal et plus clair que de les ramener tous deux vers un seul. UML ne limite pas le nombre de noeuds finaux d'activité qu'une activité possède.
02Exemple 2 : une bifurcation à trois voies aux gardes exhaustives#
La plupart des processus métier ne sont pas concurrents. Ce sont des décisions à plusieurs issues qui se rejoignent ensuite, et c'est la forme ci-dessous.
Trois choses de ce diagramme sont délibérées. Les gardes sont exhaustives : [sev 1], [sev 2 or 3] et [else] couvrent à elles trois tous les tickets, donc aucun jeton ne peut arriver au losange sans issue. Un jeton sans arête sortante activée est un processus bloqué, et c'est un défaut qui vaut la peine d'être attrapé sur le papier.
Le losange du bas est une fusion, pas une jonction, et la différence compte : un seul des trois chemins porte jamais un jeton, donc attendre les trois se bloquerait immédiatement. La règle est facile à retenir - un losange ferme ce qu'un losange a ouvert, et une barre ferme ce qu'une barre a ouvert.
Enfin, chaque action est une locution verbale à l'impératif : « Alerter l'astreinte », pas « Alerte de l'astreinte ». Les substantifs s'infiltrent quand quelqu'un décrit un système plutôt qu'un processus, et un diagramme de substantifs est un diagramme de classes qui a pris la mauvaise forme.
03Exemple 3 : les deux façons dont un flux peut finir#
La paire de noeuds de fin est le détail que la plupart des premiers diagrammes ratent, et l'erreur est invisible : le diagramme a toujours l'air juste.
Après la bifurcation, deux jetons circulent. La branche d'audit atteint une fin de flux - le cercle barré - qui consomme ce jeton et rien d'autre. La branche client atteint une fin d'activité, le disque cerclé, qui termine toute l'activité et abandonne tous les autres jetons.
Mettez le disque cerclé sur la branche d'audit à la place, et le diagramme dit maintenant que la commande est abandonnée dès que la ligne de journal est écrite. Rien n'y paraît faux, et c'est exactement pourquoi cette distinction vaut d'être apprise une fois : une fin de flux pour une branche latérale qui se termine simplement, et une fin d'activité seulement là où vous voulez dire « nous avons fini ».
04En faire les vôtres#
Ces trois-là couvrent les formes dont presque tout diagramme d'activité est fait. Ce qui change entre eux et le vôtre, ce sont les étiquettes ; ce qui ne devrait pas changer, c'est la discipline sur le périmètre.
À utiliser quand
- Un processus par diagramme, avec un nom que vous pourriez mettre en objet d'e-mail.
- Des actions en locutions verbales, pour que chaque boîte soit quelque chose que quelqu'un ou quelque chose fait.
- Des couloirs quand les passages de relais entre rôles sont le sujet : c'est aux franchissements que les processus échouent.
- Une garde [else] sur la dernière arête de chaque décision, pour que l'ensemble soit exhaustif.
Préférer autre chose quand
- Plus d'une quinzaine d'actions. Extrayez plutôt un sous-arbre comme activité à part.
- Une barre là où des alternatives se rejoignent, ou un losange là où du travail concurrent le fait.
- La gestion d'erreur à chaque étape. Dessinez le chemin nominal, puis un diagramme pour l'échec qui compte.
- Modéliser le cycle de vie d'un seul objet : c'est une machine à états, pas une activité.
Si le public est composé d'analystes métier plutôt que d'ingénieurs, le même processus gagne en général à être dessiné en BPMN, qui a une sémantique d'événements plus riche et qui est ce qu'un moteur de processus exécutera. Les deux notations répondent à la même question pour des salles différentes.
05Ce qu'il faut retenir#
En une ligne chacun
- 01Une barre bifurque et rejoint ; un losange branche et fusionne. Un losange n'attend jamais, une barre toujours.
- 02Les gardes vont sur les arêtes sortant d'une décision et jamais sur celles sortant d'une bifurcation.
- 03Rendez l'ensemble des gardes exhaustif - [else] sur la dernière arête - ou le processus peut se bloquer.
- 04Une fin de flux termine un jeton ; une fin d'activité termine tout. La mauvaise a l'air identique.
- 05Les actions sont des locutions verbales. Si les boîtes sont des noms, vous dessinez le mauvais diagramme.
06Questions fréquentes#
Quel est un bon exemple de diagramme d'activité ?
Une chaîne d'intégration continue est le plus clair : construire l'artefact, puis lancer en parallèle derrière une bifurcation les tests, les linters et l'analyse des dépendances, attendre les trois à la jointure, et brancher selon le résultat. Elle utilise tous les nœuds qui comptent en dix boîtes.
Comment dessiner des étapes parallèles dans un diagramme d'activité ?
Placez une barre pleine - la bifurcation - en travers du flux et tirez une arête vers chaque action concurrente. Fermez le groupe par une seconde barre, la jointure, qui attend un jeton sur chaque arête entrante. Les arêtes sortant d'une bifurcation ne portent jamais de garde, puisque toutes sont empruntées.
Quelle différence entre un final de flux et un final d'activité ?
Le final de flux, un cercle barré d'une croix, arrête le jeton qui l'atteint et laisse le reste de l'activité tourner. Le final d'activité, un disque cerclé, arrête toute l'activité et abandonne les autres jetons. Mettre le disque cerclé sur une branche secondaire tue silencieusement le flux principal.
Les gardes sortant d'une décision doivent-elles couvrir tous les cas ?
Oui. Si aucune garde ne tient, le jeton n'a nulle part où aller et l'activité se bloque : c'est un vrai défaut, pas une question de style. L'habitude sûre est de donner la garde [else] à la dernière arête, ce qui rend l'ensemble exhaustif par construction.
Combien d'actions dans un diagramme d'activité ?
Une quinzaine avant qu'il cesse d'être lisible. Au-delà, sortez un sous-arbre comme activité à part et référencez-le par une seule action d'appel. Un diagramme qu'il faut agrandir est un diagramme que personne ne confronte à la réalité.
Dans cette série
- 01Qu'est-ce que UML ?
- 02Symboles UML
- 03Choisir un diagramme
- 04Diagrammes de classes
- 05Exemples de diagrammes de classes
- 06Dessiner un diagramme de classes
- 07Symboles du diagramme de classes
- 08Diagrammes de séquence
- 09Exemples de diagrammes de séquence
- 10Dessiner un diagramme de séquence
- 11Diagrammes de cas d'utilisation
- 12Exemples de cas d'utilisation
- 13Diagrammes d'activité
- 14Exemples d'activité
- 15Diagrammes états-transitions
- 16Exemples d'états-transitions
- 17Diagrammes de composants
- 18Exemples de composants
- 19Dessiner un diagramme de composants
- 20Symboles de composants
- 21Diagrammes de déploiement
- 22Exemples de déploiement
- 23Diagrammes d'objets
- 24Diagrammes de paquetages
- 25Diagrammes de structure composite
- 26Diagrammes de communication
- 27Séquence vs communication
- 28Diagrammes de temps
- 29Diagrammes globaux d'interaction
- 30Diagrammes de profil
- 31UML avec l'IA
- 32Exemple e-commerce
- 33Exemple bancaire
- 34Exemple microservices
- 35Exemple AWS
À lire aussi
Diagrammes de comportement
Fondamentaux
Diagrammes de comportement
Pratique de la modélisation
Diagrammes de comportement
Pratique de la modélisation