Un message spécifie l'expéditeur et le destinataire, ainsi que le type de communication ayant lieu entre les lignes de vie. Par exemple, une communication peut appeler une opération à l'aide d'un message d'appel synchrone ou d'un message d'appel asynchrone, lancer un signal à l'aide d'un signal asynchrone et créer ou détruire un participant.
Vous pouvez utiliser les cinq types de messages répertoriés dans le tableau ci-dessous pour afficher la communication entre les lignes de vie au cours d'une interaction.
Message | Description |
---|---|
Message de création | Un message de création représente la création d'une instance au cours d'une interaction. Il est représenté par le mot clé «create». La ligne de vie cible commence au niveau du message de création. Dans un scénario de banque, par exemple, le responsable peut commencer la vérification du crédit d'un client en envoyant un message de création au serveur. |
Message de destruction | Un message de destruction représente la destruction d'une instance au cours d'une interaction. Il est représenté par le mot clé «destroy». La ligne de vie cible se termine au niveau du message de destruction. Elle est marquée par un X. Après avoir commencé un contrôle de crédit, le responsable de la banque peut par exemple fermer ou détruire l'application du programme de crédit d'un client. |
Message d'appel synchrone | Les appels synchrones, qui sont associés à une opération, comportent un message d'envoi et un message de réception. Un message est envoyé de la ligne de vie source vers la message cible. La ligne de vie source est bloquée jusqu'à ce qu'elle reçoive une réponse de la ligne de vie cible. Dans un scénario de banque, le guichetier peut par exemple envoyer une demande d'approbation de crédit au responsable. Il doit alors attendre la réponse avant de pouvoir servir le client. |
Message d'appel asynchrone | Les appels asynchrones, qui sont associés à une opération, ne comportent en général qu'un message d'envoi mais ils peuvent aussi comporter un message de réception. Contrairement à la situation avec un message synchrone, la ligne de vie source n'est pas bloquée et peut donc recevoir et envoyer d'autres messages. Vous pouvez aussi déplacer individuellement les points d'envoi et de réception afin de retarder le délai entre des événements d'envoi et des événements de réception. Vous pouvez opter pour cette solution si une réponse ne dépend pas du temps ou d'un ordre donné. Par exemple, un client peut faire une demande de crédit et il peut recevoir des informations bancaires par téléphone ou retirer de l'argent à un GAB, tout en attendant toujours une réponse à sa demande de crédit. |
Message de signal asynchrone | Messages de signaux asynchrones associés à un signal. La différence entre un signal et un message repose au niveau des opérations, aucune opération n'étant associée à un signal. Un signal peut représenter une interruption ou un cas d'erreur. Pour définir un signal, vous devez créer un appel asynchrone et en modifier le type dans la vue des propriétés de messages. Par exemple, l'agence de crédit peut envoyer un message de signal d'erreur au responsable de la banque pour indiquer un problème de connexion au bureau des crédits. |
Un message auto-dirigé est un message envoyé depuis la ligne de vie source à elle-même. Il peut s'agir d'un appel récursif, d'un appel à une autre opération ou d'un signal appartenant au même objet.
Représentation d'un messageLe message envoyé par la ligne de vie source à la ligne de vie cible représente l'opération ou le signal que la ligne de vie cible met en oeuvre. Vous pouvez nommer et classer les messages. L'apparence de la ligne ou de la pointe de la flèche reflète les propriétés du message. Le tableau suivant décrit les graphiques correspondant aux différentes types de messages dans les diagrammes de séquence.
Type | Graphique | Description | Représentation |
---|---|---|---|
Asynchrone | ![]() |
Une flèche dont la pointe est ouverte | Ce graphique représente un signal asynchrone ou un appel asynchrone, pour lequel l'objet source envoie le message et passe directement à l'étape suivante. |
Synchrone | ![]() |
Une flèche avec une pointe pleine dirigée vers la ligne de vie destinataire | Ce graphique représente une opération d'appel asynchrone pour laquelle la source envoie un message et attend un message avec accusé de réception de la cible avant de pouvoir poursuivre. |
Renvoi synchrone | ![]() |
Une flèche avec un trait tireté et une pointe pleine se dirigeant vers la ligne de vie d'origine | Ce graphique représente un message avec accusé de réception, d'un appel vers une procédure. Lorsque vous créez un message synchrone, un message avec accusé de réception est créé par défaut. Vous pouvez changer ce paramétrage par défaut dans la fenêtre Préférences. |
Un message représente soit un appel d'opération, soit l'envoi ou la réception d'un signal. Lorsque le message représente une opération, le nom de cette dernière identifie le message. Les arguments du message sont transmis à la cible. Le message avec accusé de réception contient les arguments de l'appel d'opération résultant. Lorsqu'un message représente un signal, ce signal représente lui-même les arguments du message. Si le message est un appel synchrone, un message avec accusé de réception est envoyé de la ligne de vie appelée vers la ligne de vie qui appelle avant que cette dernière puisse poursuivre.
Identification d'un messageVous pouvez identifier les messages à l'aide d'un nom ou d'une signature d'opération. Un nom identifie seulement le nom du message qui n'est pas associé à une opération. Lorsqu'une opération est associée à un message, le nom de l'opération remplace ce nom. La signature de l'opération s'affiche pour permettre d'identifier le nom de l'opération. Vous pouvez utiliser les signatures dans les diagrammes lors de la phase de conception car elles donnent les informations nécessaires aux développeurs pour le codage de la conception.
Comme le montre la figure suivante, les messages s'affichent sous la forme d'une flèche pointant dans la direction où ils sont envoyés, soit de l'extrémité du message d'envoi vers l'extrémité du message de réception. L'exemple suivant montre l'affichage des messages dans un diagramme de séquence représentant un scénario d'une banque dans laquelle un client fait une demande de prêt. Le client dépose les papiers du prêt auprès du guichetier. Ce dernier envoie les papiers au responsable pour qu'il les traite et attend qu'il ait terminé. Le responsable démarre alors le programme de contrôle des crédits, entre les données et attend la réponse de l'agence de crédit. Lorsqu'il reçoit la réponse, il envoie un message au guichetier qui fait état de la décision. Le guichetier envoie en effet un message au client pour lui indiquer si la demande de prêt à été acceptée. Le responsable referme le programme de l'agence de crédit et le client complète sa transaction.