Contrairement à un diagramme de séquence, un diagramme de communication2 rend compte de l’organisation spatiale des participants à l’interaction, il est souvent utilisé pour illustrer un cas d’utilisation ou pour décrire une opération. Le diagramme de communication aide à valider les associations du diagramme de classe en les utilisant comme support de transmission des messages.
Les lignes de vie sont représentées par des rectangles contenant une étiquette dont la syntaxe est :
[<nom_du_rôle>] : [<Nom_du_type>]
Au moins un des deux noms doit être spécifié dans l’étiquette, les deux points (:) sont, quand à eux, obligatoire.
Les relations entre les lignes de vie sont appelées connecteurs et se représentent par un trait plein reliant deux lignes de vies et dont les extrémités peuvent être ornées de multiplicités.
Dans un diagramme de communication, les messages sont généralement ordonnés selon un numéro de séquence croissant.
Un message est, habituellement, spécifié sous la forme suivante:
[ '['<cond>']' [<séq>] [ *[||] ['['<iter>']'] ] :] [<var> :=] <msg>([<par>])
Cette syntaxe un peu complexe permet de préciser parfaitement l’ordonnancement et la synchronisation des messages entre les objets du diagramme de communication (cf. figure 7.6). La direction d’un message est spécifiée par une flèche pointant vers l’un ou l’autre des objets de l’interaction, reliés par ailleurs avec un trait continu (connecteur).