L’UML retient trois symboles qui spécifient le destinataire du message comme expression de paramètre. Le destinataire est la cible d’assignation du message. Le message de réponse lui affecte la valeur de retour du paramètre de sortie de l'émetteur. Ce sont les symboles normalisés :
- Inconnu
- Paramètres d'interaction
- Particularités
Inconnu est un paramètre vide et représente le caractère de remplacement. Le paramètre d’interaction est un paramètre propre de l’interaction à laquelle il appartient. Cela signifie que l’interaction a le paramètre. Celui-ci a un nom. Les paramètres d’opération et les paramètres d’interaction sont du même type. Les attributs peuvent être nommés sans restriction. Ils représentent le nom d’un comportement de contexte. Ce comportement détermine soit la ligne de vie vers laquelle le message retourne, soit l’interaction environnante. Si l’interaction ne définit aucun comportement, elle agit comme un contexte.
Les portes sont simplement des points à la fin d’un message. Ils appartiennent au type MessageEnd. Il marque l’expéditeur et le destinataire d’un message. Les portes illustrent le flux d’informations et montrent comment les messages se déplacent entre deux fragments d’interaction. Pour être plus précis, ils représentent des points de connexion pour les messages entre les avantages de l’interaction et les interactions, ainsi qu’entre les opérandes d’interactionà l’intérieur et à l’extérieur d’un fragment combiné. Ils sont placés sur le cadre du diagramme.
Le diagramme de séquence UML connaît quatre types de portes (ou portail). Elles diffèrent par les fragments d’interaction auxquels elles sont associés :
- Le point de départ factuel : les avantages de l’interaction se réfèrent d’un diagramme à l’autre. La porte factuelle ouvre la connexion au bord extérieur de l’utilitaire d’interaction pour les messages de l’interaction à laquelle l’utilitaire d’interaction se réfère. La porte a donc une association avec l’utilisation de l’interaction et accepte les messages entrants et sortants. (Anglais : Actual Gate)
- La porte formelle : pour qu’une interaction puisse échanger des messages avec un avantage d’interaction, elle a besoin d’une porte formelle. Le portail est situé à l'intérieur du cadre. (Anglais : Formal Gate)
- La porte intérieure pour les fragments combinés : dans un fragment combiné, une porte (Gate) repose sur le cadre. Les messages avec des terminaisons de message à partir du fragment combiné qu’il échange avec les messages dont les terminaisons de message sont en dehors du fragment combiné. (Anglais : Inner CombinedFragment Gate)
- La porte extérieure pour les fragments combinés : cette porte se trouve sur le bord extérieur d’un fragment combiné. Il forme le pôle opposé à la porte intérieure. (Anglais : Outer CombinedFragment Gate)
Les portes ont des noms explicites ou implicites qui doivent correspondre par paires. Les portes factuelles et formelles doivent correspondre, tout comme les portes intérieures et extérieures pour les fragments combinés. De plus, les messages doivent aller dans la même direction et avoir les mêmes valeurs de propriété et MessageSort indubitables.
Les messages jouent un rôle particulier dans les diagrammes de communication. Ce type de diagramme est une forme simple du diagramme de séquence. Les diagrammes de communication modélisent comment les lignes de vie interagissent. Contrairement aux diagrammes de séquence, ils se concentrent sur l’architecture du système et la façon dont elle détermine le flux des messages. Bien que vous puissiez montrer une architecture détaillée, les fragments d’interaction tels que les fragments combinés ne l’utilisent pas. Par conséquent, il manque un élément de force. Au lieu de cela, numérotez les messages. Parfois, les nouvelles peuvent prendre le pas sur les autres. L’ordre des messages sortants diffère alors de l’ordre des messages entrants. Cependant, le standard UML déconseille de tels messages non séquentiels dans le diagramme de communication.
La notation UML pour les diagrammes de communication prescrit un cadre de diagramme de séquence simple : un rectangle avec une étiquette pentagonale dans la tête. Dans l’étiquette, la désignation « sd » indique ce type de diagramme. Notez le nom de l’interaction à côté. Les messages ont ici une forme différente : ils relient les lignes de vie rectangulaires (UML : nœuds objets) en lignes droites simples (UML : bords).
Au-dessus, notez l’expression de séquence ainsi qu’une flèche pointant dans la direction du récepteur. La désignation de séquence a la forme suivante : [Nom entier][Répéter]. L’entier spécifie la hiérarchie des éléments imbriqués. Si l’un des nombres entiers s’écarte de deux messages (par exemple 1.2.2 et 1.2.3), le système les envoie l’un après l’autre. Le nom, d’autre part, représente des émissions simultanées. Deux messages avec la désignation de séquence 1.2.3a et 1.2.3b sont envoyés simultanément par le système en raison du nombre entier identique. La répétition comprend soit une restriction qui détermine quand le message sera envoyé, soit une valeur qui détermine à quelle fréquence le message sera répété.
Gardes
En UML, la Garde surveille le comportement d’un élément. L'élément doit être l'un ou l'autre :
- remplir une certaine condition,
- ne pas dépasser ou descendre en dessous d'une certaine valeur ou
- corroborer une affirmation.
Une garde est donc une restriction. Ce n'est que si la restriction est respectée que l'élément influencé peut exercer un certain comportement. Il y a beaucoup d'éléments différents qui peuvent avoir une telle garde : actions, attributs, comportements et autres. UML ne prescrit pas un langage strict, mais offre OCL, le langage de contrainte objet, comme option native. Les variables booléennes sont aussi souvent utilisées.
Une restriction d’interaction est constituée d’une telle expression booléenne. La restriction sert de garde pour l’opérande dans un fragment combiné. Ce n’est que si la valeur de la contrainte est vraie que le fragment d’interaction qui l’entoure commence son comportement. Notez la restriction entre crochets sur la ligne de vie au-dessus d’une spécification d’exécution. La standardisation permet de combiner des fragments sans restriction d’interaction. Dans ce cas, le système suppose que les messages entrants sont vrais.