🖨️ 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 montrer comment les objets collaborent entre eux pour réaliser une opération, en mettant l’accent sur les liens plutôt que sur la chronologie (contrairement au diagramme de Séquence).
Le diagramme de communication (anciennement “collaboration”) est une vue structurelle des interactions. Personnellement, j’ai gardé l’ancienne appellation.
Scénario : Lecture d’un fichier
À partir des informations ci-dessous :
Scénario : Impression d’un document
Questions :
Dans un diagramme de Collaboration/Communication, chaque message a une numérotation hiérarchique qui reflète la logique interne. Le diagramme met l’accent sur les connexions (liens entre les objets). Il n’y a pas d’axe temporel vertical comme dans le diagramme de Séquence. Il est pratique pour identifier les dépendances entre objets avant le passage au code.
@startuml ' ============================================================ ' Méta-modèle UML — Diagramme de Communication (FR) ' ============================================================ hide empty methods hide empty fields skinparam classAttributeIconSize 0 skinparam wrapWidth 240 skinparam maxMessageSize 120 title Méta-modèle UML — Diagramme de communication (FR) class Interaction { + nom : Chaîne } class Participant { + nom : Chaîne + rôle : Chaîne } class LienCommunication { + identifiant : Chaîne } class Message { + nom : Chaîne + ordre : Entier + direction : "→" } class SpécificationExécution { + durée : Temps [0..1] } class FragmentCombiné { + opérateur : TypeFragment } enum TypeFragment { alt loop opt par } Interaction "1" *-- "1..*" Participant : contient > Participant "0..*" o-- "0..*" LienCommunication : connecte > LienCommunication "1" *-- "0..*" Message : transporte > Message "0..1" --> "0..1" SpécificationExécution : déclenche > note top of Interaction Vue structurelle des échanges entre objets. Montre les liens de communication et la numérotation des messages. end note note bottom of Message Message numéroté : 1, 1.1, 1.2 … selon la séquence logique. end note note right of LienCommunication Représente une association entre deux participants permettant l'envoi d'un message. end note @enduml
@startuml title Corrigé — Impression d'un document object Utilisateur object Application object GestionnaireImpression object SystèmeDeFichiers object PiloteImprimante Utilisateur -> Application : 1: imprimer() Application -> GestionnaireImpression : 1.1: lancerImpression() GestionnaireImpression -> SystèmeDeFichiers : 1.1.1: obtenirFichier() GestionnaireImpression -> PiloteImprimante : 1.2: envoyerFlux() PiloteImprimante -> Application : 1.3: retourSuccès() @enduml