Accueil
 Sommaire
 1  Objectifs de ce cours de modélisation orientée objet
 2  Généralités sur la modélisation orienté objet et sur UML
 3  Analyse, vues cas d'utilisation et processus
 4  Analyse et conception, aspects statiques de la vue logique
 5  Analyse et conception, aspects dynamiques de la vue logique
 5.1  Rappel: diagrammes communs à l'analyse et à la conception
 5.2  Modélisation des aspects dynamiques
 5.3  Diagramme de séquence
 5.3.1  Modéliser l'ordre des interactions
 5.3.2  Participant, temps et message
 5.3.3  Exemple de diagramme de séquence « Ouvrir un scrutin »
 5.3.4  Syntaxe et types de messages
 5.3.5  Création et suppression d'objets
 5.3.6  Fragments de séquence « ref » et « opt »
 5.3.7  Fragment de séquence « loop »
 QCM
 5.4  Diagramme de communications
 slidetitletoc
 5.5  Diagramme de machine à états
 QCM
 6  Conception, aspects langage et technique
 7  Conception, vues développement et physique
 8  Conclusion
 9  Bibliographie

 Contacts

W3C validator

Département INF  
 Conception et programmation orientées objet


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

Figures/types_messages

    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