📘 Diagramme d'activité
Un diagramme d'activité modélise le flux de travail ou le déroulement d'un processus métier, en montrant les étapes, les décisions et les bifurcations possibles.
| Caractéristique | Diagramme d'activité | Diagramme de séquence |
|---|---|---|
| Objectif principal | Diagramme d'activité Modéliser le déroulement d'un processus ou d'un algorithme. | Diagramme de séquence Représenter l'ordre temporel des interactions entre objets ou acteurs. |
| Éléments graphiques clés | Diagramme d'activité Nœuds d'action, nœuds de décision, flux de contrôle, nages (swimlanes). | Diagramme de séquence Lignes de vie (objets/acteurs), messages (flèches), activateurs, fragments combinés. |
| Question à laquelle il répond | Diagramme d'activité "Comment le travail est-il effectué ?" ou "Quelles sont les étapes de ce processus ?" | Diagramme de séquence "Qui parle à qui, et dans quel ordre ?" ou "Comment cette fonctionnalité est-elle implémentée ?" |
| Perspective dominante | Diagramme d'activité Flux de travail / Flux de contrôle. | Diagramme de séquence Interaction / Temps. |
Un diagramme d'activité modélise le flux de travail ou le déroulement d'un processus métier, en montrant les étapes, les décisions et les bifurcations possibles.
Un diagramme de séquence représente l'ordre temporel des interactions (messages) entre les objets ou acteurs d'un système pour réaliser une fonctionnalité spécifique.
Pour le diagramme d'Activité, pense à une recette de cuisine : il décrit le flux des étapes et les décisions à prendre pour réaliser le plat. Pour le diagramme de Séquence, imagine une conversation téléphonique : il montre qui appelle qui et dans quel ordre, pour quel message.
Le UML (Unified Modeling Language) est apparu à la fin des années 90 pour unifier les différentes méthodes de modélisation logicielle de l'époque (Booch, Rumbaugh, Jacobson). Cette standardisation était une excellente idée, mais elle a aussi créé des zones de confusion, notamment entre des diagrammes qui, de prime abord, semblent décrire des choses similaires. La confusion entre "Diagramme d'activité" et "Diagramme de séquence" vient souvent du fait que tous deux décrivent le comportement d'un système. Cependant, l'un se concentre sur le flux de travail et les étapes d'un processus (les activités, comme un organigramme amélioré), tandis que l'autre se focalise sur les interactions et l'échange de messages entre des objets ou des composants, en respectant la chronologie. Leur place au sein du même arsenal UML peut prêter à croire qu'ils sont interchangeables, alors qu'ils répondent à des questions très différentes sur le "comment" un système fonctionne.
Imagine que tu décris le processus générique d'une commande de pizza en ligne. Tu commencerais par "Sélectionner des pizzas", puis "Ajouter au panier". Ensuite, une décision : "Es-tu connecté ?" Si non, tu devras "Créer un compte ou te connecter". Si oui (ou après connexion), tu "Valides le panier". Ensuite, tu "Choisis l'adresse de livraison", puis le "Mode de paiement", et enfin, tu "Paies la commande". Ce Diagramme d'activité te montre le flux des actions, les points de décision et les chemins possibles dans un processus métier, sans te soucier de qui fait quoi techniquement derrière.
Maintenant, regarde ce qui se passe techniquement quand tu cliques sur "Payer" pour ta pizza. Ton navigateur web ("Client") envoie un message "requêtePaiement(montant, articles)" au "Serveur e-commerce". Le serveur vérifie la commande, puis envoie un message "demandeAutorisation(carte)" au "Service de Paiement" (ex: Stripe/PayPal). Le service de paiement interagit avec la "Banque" pour obtenir l'autorisation, puis renvoie "transactionValidée" au serveur, qui confirme "paiementRéussi" à ton navigateur. Ce Diagramme de séquence met en évidence l'ordre chronologique précis des échanges de messages entre ces différents composants logiciels et leurs "lignes de vie".