Pré. | Proc. |
Lignes de vie, messages et activations
Dans un diagramme Séquence , les blocs qui participent à l'interaction ont une durée de vie représentée par une ligne en pointillés, partant de la base de l'élément et se poursuivant verticalement pendant toute la durée de vie de l'élément. Les éléments peuvent être créés ou détruits à tout moment pendant la période représentée par le diagramme Séquence , et la ligne de vie représente donc leur existence. Les éléments présents en haut du diagramme sont créés au début de l'interaction. Un échange de messages entre un expéditeur et un destinataire débutera par une ligne de vie (l'expéditeur) et se terminera par une autre (le destinataire).
L'expéditeur appelle ou active effectivement un comportement fourni par la ligne de vie réceptrice. Enterprise Architect fournit des mécanismes utiles pour utiliser les comportements déjà définis sous forme d'opérations. Cette illustration montre les propriétés d'un message existant, que le modélisateur peut sélectionner dans une liste déroulante d'opérations précédemment définies. Le modélisateur peut également définir une nouvelle opération en sélectionnant le bouton Opérations.
Formellement, lorsqu'un message cible une ligne de vie, une exécution se produit, ce qui signifie qu'un comportement est initié ou augmenté. Cette exécution est représentée visuellement par une activation, qui est dessinée sur le diagramme sous la forme d'une fine superposition rectangulaire sur la ligne de vie, dont la longueur représente la durée relative du comportement. L'étendue de l'activation du rectangle prend fin lorsqu'un message de réponse est renvoyé à l'appelant.
Un Bloc (Instance) peut être à la fois l'expéditeur et le destinataire d'un message, qui peut être qualifié de message réflexif car il commence et se termine sur la même ligne de vie. Dans ce cas, un deuxième rectangle d'activation plus court est superposé sur le premier mais décalé vers la droite.
Messages qui créent et détruisent des blocs
Un nombre quelconque d'instances Bloc peut faire partie d'une interaction, et souvent un ensemble de ces instances sera présent pendant la durée représentée par le diagramme Séquence . Ces blocs seront positionnés sur une ligne en haut du diagramme . Il est cependant possible que des blocs soient créés et détruits pendant la séquence du diagramme . Par exemple, un Bloc particulier peut n'être nécessaire que pendant une courte période et peut donc être instancié, exécuter sa fonction puis être détruit. Enterprise Architect permet à un ingénieur de spécifier qu'un message est un message de création , ce qui signifie que le Bloc récepteur sera instancié à ce moment dans la séquence temporelle du diagramme . Pour cela, définissez l'action du message Cycle de vie sur « Nouveau » comme indiqué dans cette illustration.
La définition de cette propriété a pour effet de déplacer le Bloc ciblé vers une position plus basse dans le diagramme , ce qui signifie que l'instance Bloc ne sera pas créée avant ce point dans la séquence temporelle globale du diagramme . Le style de la ligne de message est également modifié en une ligne en pointillés avec une pointe de flèche ouverte pour indiquer qu'il s'agit d'un message de création . Les autres aspects de la sémantique et de l'effet de ce message restent inchangés.
De la même manière, la durée de vie d'une instance peut être terminée en envoyant un message Destroy . En pratique, cela signifie que l'instance a rempli son rôle et n'est plus nécessaire. Cela peut être réalisé facilement en définissant à nouveau une propriété de message, mais cette fois-ci, nous définissons l'action du message Life Cycle sur « Delete ».
La définition de cette propriété a pour effet de mettre fin immédiatement à la durée de vie de l'instance ; ceci est représenté visuellement par la ligne de vie en pointillés arrêtée par une petite croix sur la ligne de vie au moment où le message arrive.
Lorsqu'un diagramme Séquence représente un système logiciel qui dispose d'une mémoire limitée disponible, la destruction de l'instance ciblée entraînera le retour de la mémoire alloué au pool de mémoire. En ingénierie système, la gestion de la durée de vie des objets électromécaniques peut présenter de nombreux autres avantages, tels que la consommation d'énergie, la surchauffe, la disponibilité ou même des risques tels que la sécurité.
Messages synchrones et asynchrones
Les messages représentent essentiellement l'envoi d'un type de requête d'un expéditeur à un destinataire. L'expéditeur d'un message peut interagir avec le destinataire de deux manières fondamentales. Le premier type de message est appelé message synchrone car les messages se produisent à peu près au même moment. Avec ce type de message, l'expéditeur attend que le destinataire réponde avant d'envoyer des messages supplémentaires. Le deuxième type de message est appelé asynchrone car l'expéditeur n'attend pas la réponse du destinataire avant de poursuivre l'exécution, y compris l'envoi de messages supplémentaires à ce destinataire ou à d'autres.
Par défaut, Enterprise Architect crée des messages synchrones, mais le type de message peut être modifié en définissant la propriété « Type de synchronisation » dans la dialogue « Propriétés ». Lorsque le type de message est défini sur Synchrone (par défaut), le style de ligne est défini sur solide avec une pointe de flèche fermée pointant vers l'instance du destinataire. La ligne peut être annotée avec le nom et les paramètres du message.
Les messages asynchrones représentent des appels à des opérations ou des signaux envoyés aux destinataires. Dans les deux cas, l'expéditeur n'attend pas de réponse et ne suspend pas son exécution en attendant une réponse. Dans le cas de l'appel à une opération, l'opération elle-même serait définie comme asynchrone et le système ou la machine représentés par le diagramme saurait qu'il ne faut pas attendre un retour de message (réponse). Enterprise Architect permet de définir ce type de message via la propriété « Synch » comme expliqué précédemment. Lorsque le type de message est défini sur Asynchrone, cela définit le style de ligne en pointillé avec une pointe de flèche ouverte pointant vers l'instance du destinataire. La ligne peut être annotée avec le nom et les paramètres du message.
Il existe un troisième type de message qui peut éventuellement être utilisé avec un message synchrone, il s'agit du message de réponse . Ce message signifie qu'une opération a été invoquée lorsque le destinataire a renvoyé un accusé de réception indiquant que le comportement a été exécuté et est terminé. L'inclusion de messages de réponse dans un diagramme est une décision stylistique. Certains ingénieurs et modélisateurs préfèrent les omettre diagrammes pour réduire l'encombrement visuel. Si un type de retour et valeur ont été définis, ils seront renvoyés dans le cadre du message de réponse.
Les blocs peuvent avoir à la fois des opérations et des réceptions spécifiées dans le cadre de leur définition ; ce paradigme décrit la relation des opérations et des réceptions avec les messages et les signaux.
- Appel synchrone d'opération - Message synchrone
- Appel asynchrone d'opération - Message asynchrone
- Réception Réception du signal - Message asynchrone