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équence 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 la barre d’activation, 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 dans cet exemple, cela 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.
Cf. le glossaire pour la définition des termes « message
synchrone » et « message asynchrone ».
D. Conan, C. Taconet, C. Bac,
Télécom SudParis, CSC 4002, Octobre 2015
|