Chapter 5 Construction de diagrammes dynamiques


Onglets Détails de la feuille de propriétés d'un message

L'onglet Détails dans la feuille de propriétés du message inclut les propriétés suivantes :

Propriété Description
Action Spécifie le type d'action du message. Vous pouvez choisir parmi les valeurs suivantes :

  • Création – l'objet émetteur instancie et initialise l'objet récepteur. Un message avec une action Création est le premier message entre un émetteur et un récepteur.
  • Destruction – l'objet émetteur détruit l'objet récepteur. Un grand X est affiché sur la ligne de vie de l'objet récepteur. Un message avec une action Destruction est le dernier message entre un émetteur et un récepteur.
  • Auto-destruction – (disponible uniquement si la propriété Flux de contrôle est définie à "Retour") l'objet émetteur avertit l'objet récepteur qu'il se détruit. Un grand X est affiché sur la ligne de vie de l'objet émetteur. Un message avec une action Auto-destruction est le dernier message entre un émetteur et un récepteur.
Flux de contrôle Spécifie le mode d'envoi des messages. Vous pouvez choisir parmi les valeurs suivantes :

  • Asynchrone – l'objet émetteur n'attend pas un résultat et peut donc faire autre chose en parallèle. No-wait semantics
  • Appel de procédure – Appel d'une procédure. La séquence est terminée avant que la séquence suivante ne commence. L'émetteur doit attendre une réponse ou la fin de l'activation. Wait semantics
  • Retour – Généralement associé à un Appel de procédure. La flèche Retour peut être omise puisqu'elle est implicite à la fin d'une activation.
  • Non défini – Aucun flux de contrôle n'est défini.
Opération Lie le message à une opération d'une classe. Si le récepteur d'un message est un objet, et si cet objet a une classe, le message, en tant que flux dynamique d'information, appelle une opération. Vous pouvez donc lier un message à une opération existante d'une classe mais également aux opérations définies sur les classes parent, ou bien vous pouvez créer une nouvelle opération à partir de la liste Opération dans la feuille de propriétés du message.

Si une opération est liée à un message, vous pouvez remplacer le nom du message par le nom de la méthode qu'un objet demande à l'autre d'appeler. Cette façon de procéder peut s'avérer très utile lors de la phase de mise en oeuvre. Pour afficher le nom de l'opération au lieu du nom du message, sélectionnez l'option Remplacer par le nom de l'opération dans les préférences d'affichage de message.

Vous avez même la possibilité de lier un message Création à une opération Constructeur d'une classe si vous souhaitez détailler encore plus avant la relation entre un message et une opération. Vous n'êtes toutefois pas autorisé à lier un message avec un flux de contrôle Retour à une opération.

Si vous modifiez la généralisation qui existe entre les classes, l'opération qui est liée au message peut ne plus être disponible. Dans ce cas, l'opération est automatiquement détachée du message. Il en va de même si vous inversez le sens du message, à moins toutefois que le nouvel objet récepteur ait la même classe.

Pour plus d'informations sur la liaison d'un message à une opération, reportez-vous à la section "Liaison d'un message à une opération", dans le chapitre "Gestion des Modèles Orientés Objet".
Arguments Arguments de l'opération
Valeur de résultat Valeur de résultat de fonction stockée dans une variable et qui peut être utilisée par d'autres fonctions.
Liste des prédécesseurs Composé d'une liste de numéros d'ordre suivie de '/ ', la liste des prédécesseurs définit quels messages doivent être échangés avant que le message courant ne puisse être envoyé.
Exemple : numéros de séquence 1, 2, 4 avant 3 = '1,2,4/ 3'
Condition Condition associée au message. Peut être spécifiée en plaçant une expression booléenne entre crochets sur le diagramme.
Exemple : Condition pour le minutage : [durée de numérotation < 30 sec]
Heure de début Alias d'heure défini par l'utilisateur, utilisé pour définir des contraintes.
Exemple : Heure de début=t1, Heure de fin=t2, contrainte={t2 - t1 < 30 sec}
Heure de fin Alias d'heure défini par l'utilisateur, utilisé pour définir des contraintes.
Pris en charge du retard Spécifie que le message peut avoir une durée. Le symbole du message sera incliné, et toujours orienté vers le bas.

Vous avez désélectionné cette option, le message est instantané, ou rapide, et le symbole de message sera toujours horizontal dans le diagramme.

Vous pouvez sélectionner également l'option Prise en charge du retard comme option par défaut dans la boîte de dialogue Options du modèle.

L'option Prise en charge du retard n'est pas disponible avec un message récursif, cette option apparaît alors sélectionnée et grisée.

Flux de contrôle

Un message a par défaut un flux de contrôle Non défini.

Si vous souhaitez rendre un diagramme plus lisible, vous pouvez tracer une flèche Retour pour illustrer le moment exact auquel l'action est renvoyée à l'émetteur. Il s'agit d'un retour explicite qui se traduit par le renvoi d'une valeur à son point d'origine.

Dans l'exemple ci-dessous, le retour explicite provoque le renvoi des valeurs à leur activation d'origine.


Vous pouvez combiner des flux de contrôles de message et des actions de message en fonction du tableau ci-après :

Flux de contrôle Aucune action
Création

Destruction
Auto-destruction
Asynchrone      
Appel de procédure      
Retour    
Non défini      

= admis

— = non admis

Note   Accès aux valeurs Action et Flux de contrôle
Vous pouvez accéder aux valeurs Action et Flux de contrôle d'un message. Pour ce faire, pointez sur le symbole du message dans le diagramme et cliquez le bouton droit de la souris, puis sélectionnez Action/Flux de contrôle dans le menu contextuel.

 


Copyright (C) 2005. Sybase Inc. All rights reserved.