5.3.4 Syntaxe et types de messages
- Syntaxe complète
-
attribut = nomMessage(arguments) : type_retour
- attribut peut être un
attribut de l’objet appelant ou une variable locale
- nom_message est une
opération de l’objet appelé
- Synchrone : l’expéditeur est bloqué pendant le
traitement
- Le retour d’appel est optionnel (implicite)
- Asynchrone : l’expéditeur continue son exécution
pendant le traitement du message
précédent suivant
L’interaction la plus petite est l’événement. Un
événement est une interaction pendant laquelle
« quelque chose » arrive. Les événements sont les constituants de
base des messages, aussi appelés « signaux » en automatique. Un
message est constitué d’un événement
d’émission chez l’appelant et d’un événement de réception
chez l’appelé, et possède une signature : « attribut = nom_message(arguments) :
type_retour ». attribut peut être
un attribut de l’objet appelant ou une variable locale. L’opération
nom_message est une opération de l’objet
appelé qui retourne un objet de type type_retour
qui est affecté à l’attribut de
l’objet appelant ou la variable locale. La signature du message respecte
la signature de l’opération appelée. La notation UML des diagrammes de
séquence n’oblige pas à renseigner tous les éléments des prototypes des
messages. Ainsi, les premiers diagrammes de séquences de l’analyse
indiquent par exemple uniquement les noms des opérations. Ensuite, les mêmes
diagrammes sont raffinés pour y ajouter les arguments et les types de retour,
puis les attributs des classes appelantes ou variables locales recevant les
valeurs de retour.
Un message synchrone est une
invocation d’opération bloquant l’appelant jusqu’à ce que
l’appelé effectue le traitement et retourne l’appel, que ce dernier
contienne ou non une valeur de retour.
Un retour d’appel est
un message que vous pouvez représenter à la fin de la barre d’activation
de l’appelé pour indiquer que le traitement est terminé et que la valeur
de retour est passée à l’appelant qui peut reprendre son traitement après
la fin de l’appel synchrone. Comme pour la représentation de la barre
d’activation de l’appelé, la représentation de l’appel de
retour est optionnelle.
Un message asynchrone est
initié par l’appelant qui continue son exécution car il n’attend
pas le retour de l’appel. L’appelant peut par exemple émettre à
destination d’un même objet appelé une salve de messages asynchrones
avant un message synchrone demandant le résultat de tous les traitements
précédents. Cela lui permet d’effectuer aussi des traitements en
parallèle et diminue d’autant le nombre de messages échangés (car il
n’y a qu’un seul retour d’appel). Il est important de noter
qu’un message asynchrone ne possède pas de valeur de retour.
D. Conan, C. Taconet, C. Bac,
Télécom SudParis, CSC 4002, Octobre 2014
|