🖨️ Version PDF
Si vous maitrisez le diagramme de classes, vous allez mieux comprendre comment est construit un diagramme de Séquences avec les éléments qui le composent et les relations entre eux. Ce type de diagramme permet de représenter l’ordre chronologique des échanges de messages entre les acteurs et les objets d’un système pour accomplir un scénario donné (souvent dérivé d’un cas d’utilisation).
Scénario : Authentification d’un utilisateur sur une application web
Interaction : Connexion
À partir des informations ci-dessous :
Scénario : Achat en ligne
Questions :
Le diagramme de séquence est la chronologie d’un scénario. Il montre qui parle à qui, quand et comment. Il aide à passer du besoin fonctionnel au code (liens directs vers les méthodes d’objets). Les fragments combinés rendent visibles les décisions, boucles et parallélismes.
@startuml ' ============================================================ ' Méta-modèle UML — Diagramme de Séquence (version française) ' ============================================================ hide empty methods hide empty fields skinparam classAttributeIconSize 0 skinparam wrapWidth 240 skinparam maxMessageSize 120 title Méta-modèle UML — Diagramme de séquence (FR) ' ====================== ' Éléments principaux ' ====================== class Interaction { + nom : Chaîne } class Participant { + nom : Chaîne + rôle : Chaîne } class LigneDeVie { + identifiant : Chaîne } class Message { + nom : Chaîne + type : TypeMessage } enum TypeMessage { appel retour asynchrone création destruction } class SpécificationExécution { + durée : Temps [0..1] } class FragmentCombiné { + opérateur : TypeFragment + condition : ExpressionBooléenne [0..1] } enum TypeFragment { alt opt loop par break ref } class InteractionRéférencée { + nomRéférence : Chaîne } ' ====================== ' Relations ' ====================== Interaction "1" *-- "1..*" Participant : contient > Participant "1" *-- "1" LigneDeVie : possède > LigneDeVie "0..*" o-- "0..*" Message : envoie/reçoit > Message "0..1" --> "0..1" SpécificationExécution : déclenche > Interaction "0..*" o-- "0..*" FragmentCombiné : structure > FragmentCombiné "0..*" --> "0..*" Message : messagesInclus > ' ====================== ' Notes pédagogiques ' ====================== note top of Interaction Représente un scénario d’échanges entre objets. Composé de participants et de messages ordonnés dans le temps. end note note right of FragmentCombiné Structure de contrôle : - alt : alternatives (if/else) - opt : optionnel - loop : répétition - par : parallèle end note note bottom of Message Représente un appel, un retour ou un signal entre participants. end note @enduml
@startuml title Corrigé — Achat en ligne actor Client participant Application participant Serveur database Stock participant Paiement Client -> Application : commanderProduit() Application -> Serveur : transmettreCommande() Serveur -> Stock : vérifierStock() Stock --> Serveur : disponibilité() alt Produit disponible Serveur -> Paiement : déclencherPaiement() Paiement --> Serveur : paiementOK() Serveur -> Application : confirmerCommande() Application --> Client : afficherConfirmation() else Stock insuffisant Serveur -> Application : afficherMessage("Produit indisponible") Application --> Client : message("Stock épuisé") end @enduml