Un message est une communication entre objets. La réception d'un message produit généralement un résultat.
Un message peut être créé dans les diagrammes suivants :
Les objets peuvent coopérer à l'aide de différents types de requêtes (envoi d'un signal, appel d'une opération, création d'un objet, suppression d'un objet existant, etc.). L'envoi d'un signal permet de déclencher une réaction de la part du récepteur de façon asynchrone et sans qu'une réponse ne soit nécessaire. L'appel d'une opération va appliquer une opération à un objet de façon synchrone ou asynchrone, et peut requérir une réponse de la part de son récepteur. Toutes ces requêtes constituent des messages. Ces messages correspondent aux stimulus dans le langage UML.
Un message a un émetteur, un récepteur et une action. L'émetteur est l'objet ou l'acteur qui envoie le message. Le récepteur est l'objet ou l'acteur qui reçoit le message. L'action est exécutée sur le récepteur. Vous pouvez également créer des messages récursifs, c'est-à-dire des messages dont l'émetteur est en même temps le récepteur.
Le symbole d'un message est une flèche qui montre son sens, et qui peut également afficher les informations suivantes :
Un numéro d'ordre qui indique l'ordre dans lequel les messages sont échangés (voir Numéros d'ordre).
Le nom du message (ou nom de l'opération associée).
La condition.
La valeur de résultat.
L'argument.
Le même message peut être utilisé à la fois dans un diagramme de séquence et de communication ou dans plusieurs autres diagrammes de l'un ou l'autre de ces types de diagramme. Lorsque vous faites glisser un message d'un diagramme vers un autre, vous récupérez en même temps ses deux extrémités si elles n'existent pas (dans un diagramme de communication), et ce message est attaché à un lien entre objets par défaut.
Le numéro d'ordre attaché à un message est identique dans tous les diagrammes si le message est réutilisé.
Lorsque vous copiez un message, son nom ne change pas. Vous pouvez conserver son nom ou bien le modifier à l'issue de la copie.
Toute modification apportée à la valeur Action ou Flux de contrôle d'un message sera répercutée dans tous les diagrammes. Cependant, si le changement que vous souhaitez apporter n'est pas valide, il ne sera pas effectué. Par exemple, vous n'êtes pas autorisé à déplacer un message Création si un message Création existe déjà entre l'émetteur et le récepteur.
Dans un diagramme de communication, chaque message est associé à un lien entre objets. Un lien entre objets peut avoir plusieurs messages associés, mais chacun de ces messages ne peut être associés qu'à un seul lien entre objets. La destruction d'un lien entre objets détruit tous les messages qui lui sont associés.
Un message est affiché sous la forme d'une flèche horizontale pleine partant de la ligne de vie d'un objet ou d'un acteur pour aller à la ligne de vie d'un autre objet ou acteur. La flèche est légendée par le nom du message. Vous pouvez également définir un type de flux de contrôle qui représente à la fois la relation entre une action et les actions qui le précèdent et le suivent, ainsi que la sémantique d'attente entre eux.
Dans un diagramme de séquence, vous pouvez choisir parmi les types de message suivants :
Vous pouvez créer des activations sur la ligne de vie d'un objet pour représenter la période pendant laquelle il effectue une action.
Un message peut être tracé depuis un acteur vers un objet, ou inversement. Il est également possible de créer un message entre deux acteurs, mais il sera détecté et provoquera un avertissement lors du processus de vérification de modèle.
Si vous devez décrire un peu plus un message ou lui adjoindre un libellé, vous pouvez rédiger une note à l'aide de l'outil Note, puis la placer à proximité du message.