Diagramme de communication

Cette conférence porte sur le diagramme de communication, un type de diagramme d'interaction en UML utilisé pour modéliser le comportement des systèmes informatiques. Elle situe ce diagramme dans le contexte plus large des diagrammes d'interaction, en particulier par rapport au diagramme de séquence, et détaille ses concepts, sa syntaxe, ainsi que ses avantages et limites dans la modélisation.

D'après le document Diagramme de communication

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source

Diagramme de communication

UML (Unified Modeling Language) and Software Engineering · PPTX · 29 pages

Consulter le document original →

Cette conférence porte sur le diagramme de communication, un type de diagramme d'interaction en UML utilisé pour modéliser le comportement des systèmes informatiques. Elle situe ce diagramme dans le contexte plus large des diagrammes d'interaction, en particulier par rapport au diagramme de séquence, et détaille ses concepts, sa syntaxe, ainsi que ses avantages et limites dans la modélisation.

Positionnement du diagramme de communication

Le diagramme de communication, anciennement appelé diagramme de collaboration dans UML 1.X, est renommé ainsi dans UML 2.X. Il fait partie des diagrammes d'interaction, qui représentent le comportement dynamique d'un système en illustrant les échanges entre objets.

Il existe deux principaux types de diagrammes d'interaction : le diagramme de séquence et le diagramme de communication. Tous deux modélisent les mêmes interactions, mais sous des formes différentes. Le diagramme de séquence met l'accent sur l'ordre temporel des messages échangés, tandis que le diagramme de communication privilégie une représentation spatiale des objets et de leurs liens.

Concepts fondamentaux du diagramme de communication

Le diagramme de communication repose sur trois concepts clés :

  • Les objets : les entités participant à l'interaction.
  • Les liens d’interactions : connexions entre objets qui permettent la navigation et la visibilité mutuelle, facilitant l'envoi de messages.
  • Les messages : échanges d'informations entre objets, représentés par des flèches indiquant la direction et numérotés pour marquer leur ordre dans la séquence.

Notion de lien

Un lien est une connexion entre deux objets qui indique qu'ils peuvent communiquer. Plusieurs messages peuvent transiter sur un même lien, dans les deux sens. Il n'y a pas un lien par message, mais un lien partagé pour tous les messages échangés entre deux objets.

Messages et leur représentation

Chaque message est représenté par une flèche orientée, accompagnée d'un numéro indiquant sa place dans la séquence d'échanges. Le diagramme peut aussi représenter des messages réflexifs, c'est-à-dire des messages qu'un objet s'envoie à lui-même.

UML permet de spécifier précisément l'ordre et les conditions d'envoi des messages. Pour chaque message, on peut indiquer :

  • Les clauses conditionnant son envoi (garde).
  • Son rang dans la séquence (numérotation hiérarchique).
  • Sa récurrence (nombre d'envois, séquentiels ou parallèles).
  • Ses arguments et sa valeur de retour.

Numérotation des messages

Les messages sont numérotés de manière hiérarchique, à la façon de chapitres dans un document, avec des chiffres séparés par des points. Cette numérotation permet de représenter le niveau d'emboîtement des messages et leur ordre d'exécution. Par exemple, le message 1.3.5 suit immédiatement le message 1.3.4 et appartient à la famille de messages 1.3.

Messages simultanés

Pour représenter l'envoi simultané de plusieurs messages, on utilise des indices alphabétiques. Par exemple, les messages 1.3.a et 1.3.b sont envoyés en parallèle.

Syntaxe détaillée d'un message

La syntaxe d'un message dans un diagramme de communication peut être formalisée ainsi :

pre/ [cond] seq *||[iter] r:= msg(par)
  • pre/ : liste des prédécesseurs, c’est-à-dire les messages qui doivent avoir été envoyés avant celui-ci.
  • [cond] : garde, une expression booléenne conditionnant l’envoi du message.
  • seq : numéro de séquence du message.
  • *||[iter] : récurrence, indiquant si le message est envoyé plusieurs fois, séquentiellement ou en parallèle.
  • r:= : valeur de retour affectée par le message.
  • msg(par) : nom du message et ses paramètres.

Exemples de messages

  • 3 : bonjour() — message numéro 3.
  • [heure = midi] 1 : manger() — message envoyé uniquement si la condition "heure = midi" est vraie.
  • 1.3.6 * : ouvrir() — message envoyé plusieurs fois de manière séquentielle.
  • 3 / *||[i := 1..5] : fermer() — envoi en parallèle de 5 messages "fermer" après le message 3.
  • 1.3,2.1 / [t < 10s] 2.5 : age := demanderAge(nom,prenom) — message 2.5 envoyé après les messages 1.3 et 2.1 et si la condition "t < 10s" est remplie.
  • 1.3 / [disk full] 1.7.a * : deleteTempFiles() et 1.3 / [disk full] 1.7.b : reduceSwapFile(20%) — messages envoyés simultanément après 1.3 si le disque est plein, avec possibilité d’envoi multiple du message 1.7.a.

Relation entre diagramme de communication et diagramme de séquence

Les deux diagrammes représentent les mêmes interactions, mais chacun a ses avantages :

  • Le diagramme de séquence met en avant la chronologie des messages, facilitant la lecture du flot d'appels de haut en bas.
  • Le diagramme de communication présente une vue spatiale, plus économique en espace, permettant d'ajouter des objets dans les deux dimensions.

Les outils UML privilégient souvent le diagramme de séquence en raison de sa richesse notationnelle et de la meilleure prise en charge par les logiciels.

Avantages et limites des diagrammes

Diagramme de séquence

  • Forces : Indique clairement la séquence et l’ordonnancement des messages. Offre une grande richesse de notation.
  • Faiblesses : L’ajout de nouveaux objets doit se faire obligatoirement vers la droite, ce qui consomme beaucoup d’espace horizontal.

Diagramme de communication

  • Forces : Économique en termes d’espace, il permet d’ajouter des objets dans les deux dimensions (horizontalement et verticalement), ce qui est particulièrement utile en mode esquisse lors de la conception.
  • Faiblesses : La lecture de la séquence des messages est plus difficile, car elle dépend de la numérotation. La notation est moins riche et les outils moins nombreux.

Utilisation en mode esquisse

Le diagramme de communication est particulièrement adapté au travail en mode esquisse, par exemple lors de modélisations au tableau. Il permet de modifier facilement la disposition des objets dans l’espace, contrairement au diagramme de séquence où les objets doivent être ajoutés à droite, limitant ainsi la flexibilité.

Points clés

  • Le diagramme de communication représente les interactions entre objets sous un angle spatial, tandis que le diagramme de séquence les présente sous un angle temporel.
  • Les liens dans un diagramme de communication permettent la circulation de plusieurs messages dans les deux sens entre objets.
  • Les messages sont numérotés hiérarchiquement pour indiquer leur ordre et leur imbrication.
  • La syntaxe des messages permet de spécifier conditions, prédécesseurs, récurrences, valeurs de retour et paramètres.
  • Les diagrammes de séquence sont plus riches en notation et plus faciles à lire pour le flot d’appels, mais moins flexibles en termes d’ajout d’objets.
  • Les diagrammes de communication sont plus compacts et flexibles spatialement, adaptés au travail exploratoire et à la modélisation rapide.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions