هر آنچه که باید در مورد نمودارهای توالی بدانید
Les diagrammes de séquence UML sont des diagrammes d’interaction qui détaillent la façon dont les opérations sont effectuées. Ils capturent l’interaction entre les objets dans le cadre d’une collaboration. Les diagrammes de séquence sont centrés sur le temps et ils montrent visuellement l’ordre de l’interaction en utilisant l’axe vertical du diagramme pour représenter le temps, quels messages sont envoyés et quand.
Qu’est-ce qu’un diagramme de séquence ?
Un diagramme de séquence, également appelé diagramme de séquence, diagramme séquentiel ou diagramme séquentiel, est un diagramme d’interaction UML. Il montre la collaboration dynamique entre plusieurs objets en décrivant l’ordre temporel dans lequel les messages sont envoyés entre eux.
Dans l’UML, un objet dans un diagramme de séquence est dessiné comme un rectangle contenant le nom de l’objet, souligné. Un objet peut être nommé de l’une des trois manières suivantes : le nom de l’objet, le nom de l’objet et sa classe, ou simplement le nom de la classe (objet anonyme). Les trois façons de nommer un objet sont illustrées dans la figure ci-dessous.
MODIFIER CE DIAGRAMME DE SÉQUENCE
Les objets du diagramme de séquence
- Afficher l’ordre des interactions entre les objets. Modélisez le comportement d’interaction en tant que transmission de messages et montrez l’interaction entre les objets de manière dynamique en décrivant comment les messages sont envoyés et reçus entre eux.
- Comparé à d’autres diagrammes UML, un diagramme de séquence temporelle met davantage l’accent sur l’ordre chronologique du comportement d’interaction.
- Il peut décrire visuellement le processus de concurrence.
Les éléments du diagramme de séquence
1. Acteur – Acteurs du système, qui peuvent être des personnes, des machines, d’autres systèmes, des sous-systèmes ; utilisé pour représenter dans le diagramme de séquence temporelle.
2. Objet – Il existe trois manières de nommer les objets :
- Inclut le nom de l’objet et le nom de la classe, par exemple : classe en direct : classe, dans le diagramme de série chronologique, avec « objet : classe ».
- Affiche uniquement le nom de la classe, c’est-à-dire qu’il s’agit d’un objet anonyme, par exemple : :course; dans le chronogramme, avec “:class”.
- Affiche uniquement le nom de l’objet mais pas le nom de la classe, par exemple : conférencier ; dans le chronogramme, il est représenté par « objet ».
Les trois méthodes de dénomination sont disponibles, ce qui est la plus facile à comprendre pour les personnes qui lisent le tableau chronologique, choisissez laquelle.
3. L’ordre des objets
- L’ordre gauche et droite des objets n’est pas important, mais pour faire un schéma clair et net, il faut suivre les deux principes suivants : rapprocher le plus possible les objets avec des interactions fréquentes ;
- Placez l’objet qui initialise toute l’activité d’interaction à l’extrémité la plus à gauche.
Corde de sécurité
Une ligne pointillée s’étendant vers le bas à partir de l’icône de l’objet dans le chronogramme, indiquant depuis combien de temps l’objet existe.
- Focus of Control (également connu sous le nom de période d’activation) est le symbole de la période de temps pendant laquelle l’objet effectuera l’opération correspondante. Il peut être interprété comme une paire de crochets { } en sémantique C ; représenté par un petit rectangle. Il représente la période pendant laquelle un élément effectue une opération. Le haut et le bas du rectangle sont alignés respectivement avec l’heure de début et l’heure d’achèvement.
- Les messages sont généralement classés comme message synchrone, message asynchrone et message de retour.
Notez que
- L’expéditeur d’un message passe le contrôle au destinataire du message, puis arrête l’activité et attend que le destinataire du message abandonne ou rende le contrôle qui est utilisé pour indiquer la synchronisation.
- L’expéditeur d’un message transmet le signal au destinataire du message via le message, puis poursuit son activité sans attendre que le destinataire renvoie le message ou le contrôle. Le récepteur et l’expéditeur d’un message asynchrone travaillent simultanément.
- Le message de retour indique un retour d’un appel de procédure.
Messages de création et de destruction
Les participants ne vivent pas nécessairement pendant toute la durée de l’interaction d’un diagramme de séquence. Les participants peuvent être créés et détruits en fonction des messages transmis.
Un message constructeur crée son récepteur. L’expéditeur qui existe déjà au début de l’interaction est placé en haut du diagramme. Les cibles créées lors de l’interaction par un appel de constructeur sont automatiquement placées plus bas dans le diagramme.
Un message destructeur détruit son récepteur. Il existe d’autres moyens d’indiquer qu’une cible est détruite lors d’une interaction. Ce n’est que lorsque la destruction d’une cible est définie sur “après destructeur” que vous devez utiliser un destructeur.
Message non instantané
Les messages sont souvent considérés comme instantanés, ainsi, le temps qu’il faut pour arriver au récepteur est négligeable. Les messages sont dessinés sous forme de flèche horizontale. Pour indiquer qu’il faut un certain temps avant que le destinataire ne reçoive réellement un message, une flèche oblique est utilisée .
Fragments de combinaison
Un fragment de séquence est représenté par une boîte appelée fragment combiné, qui renferme une partie de l’interaction dans le graphe de séquence. L’opérateur de fragment (dans le coin supérieur gauche) indique le type du fragment. Les fragments interactifs vous permettent de regrouper des messages associés dans un diagramme de séquence. Divers types de fragments prédéfinis sont disponibles, vous permettant de spécifier des résultats alternatifs, des messages parallèles ou des boucles.
Les fragments du diagramme de séquence sont des cadres rectangulaires dessinés sur une partie du diagramme. Ils représentent la structure conditionnelle qui affecte le flux des messages. Ces cadres sont appelés fragments combinés dans la spécification UML et les conteneurs sont appelés opérandes d’interaction. Les cadres sont étiquetés dans le coin supérieur gauche. Cette étiquette est appelée opérateur d’interaction dans UML.
Exemple – scénario de passation de commande
Un membre du navire qui souhaite passer une commande en ligne. Les articles commandés seront envoyés au membre par coursier ou par courrier ordinaire, selon son statut de membre (VIP, membre régulier). Si le membre sélectionne l’option de notification dans la commande, le magasin enverra une notification de confirmation au membre.
MODIFIER CE DIAGRAMME DE SÉQUENCE
Un autre exemple : Passer une commande
Un diagramme de séquence est un diagramme à deux dimensions avec l’axe horizontal représentant les objets et l’axe vertical représentant le temps, où les messages sont transmis horizontalement entre les objets et disposés verticalement dans l’ordre chronologique. L’exemple montre un diagramme de séquence avec trois objets participants : client, commande et stock. Sans même connaître formellement la notation, vous pouvez probablement avoir une assez bonne idée de ce qui se passe.
- Étape 1 et 2 : Le client crée une commande.
- Étape 3 : Le client ajoute des articles à la commande.
- Étape 4, 5 : La disponibilité de chaque article est vérifiée dans l’inventaire.
- Etape 6, 7, 8 : Si le produit est disponible, il est ajouté à la commande.
- Étape 9 retour
- Étape 10, 11 : enregistrer et détruire la commande
MODIFIER CE DIAGRAMME DE SÉQUENCE
Fragments de combinaison couramment utilisés
Les types de fragments incluent ref, assert, loop, break, alt, opt et neg, ref, sd.
Opérateur | Sens |
autre | Fragments multiples alternatifs : seul celui dont la condition est vraie s’exécutera. |
opter | Facultatif : le fragment s’exécute uniquement si la condition fournie est vraie. Équivalent à un alt seulement avec une trace. |
par | Parallèle : chaque fragment est exécuté en parallèle. |
boucle | Boucle : le fragment peut s’exécuter plusieurs fois, et la garde indique la base de l’itération. |
critique | Région critique : le fragment ne peut avoir qu’un seul thread l’exécutant à la fois. |
négatif | Négatif : le fragment montre une interaction non valide. |
réf | Référence : fait référence à une interaction définie sur un autre diagramme. Le cadre est dessiné pour couvrir les lignes de vie impliquées dans l’interaction. Vous pouvez définir des paramètres et une valeur de retour. |
Dakota du Sud | Diagramme de séquence : utilisé pour entourer tout un diagramme de séquence. |
Notez que:
- Il est possible de combiner des trames afin de capturer, par exemple, des boucles ou des branches.
- Mots-clés fragmentés combinés : alt, opt, break, par, seq, strict, neg, critical, ignore, consider, assert et loop.
- Les contraintes sont généralement utilisées pour afficher les contraintes de temps sur les messages. Ils peuvent s’appliquer à la synchronisation d’un message ou aux intervalles entre les messages.
Exemples de fragments combinés
(1) Choix (Alt) – Un fragment alternatif fournit plusieurs fragments alternatifs gardés (séparés par des opérandes d’interaction), c’est-à-dire utilisés pour spécifier des choix mutuellement exclusifs entre deux ou plusieurs séquences de messages, équivalent au classique if..else… :
MODIFIER CE DIAGRAMME DE SÉQUENCE
(2) Option (Opt) – Contient une séquence d’occurrences ou de non-occurrences possibles, ce qui signifie qu’un fragment facultatif n’est exécuté que si une condition de garde est vraie :
MODIFIER CE DIAGRAMME DE SÉQUENCE
(3) Boucle (Loop) – Une boucle permet de répéter un fragment jusqu’à ce qu’une condition de garde devienne fausse :
MODIFIER CE DIAGRAMME DE SÉQUENCE
Casser
Une pause permet à une boucle englobante d’être échappée lorsqu’une certaine garde devient vraie :
MODIFIER CE DIAGRAMME DE SÉQUENCE
Les pauses sont le plus souvent utilisées pour modéliser la gestion des exceptions. Cet exemple de diagramme de séquence utilise un fragment de combinaison de rupture car il traite la condition solde < montant comme une exception plutôt que comme un flux alternatif. Pour lire cet exemple, nous commençons par le coin supérieur gauche de la séquence et lisons vers le bas. Lorsque la séquence atteint la valeur de retour « solde », elle vérifie si le solde est inférieur au montant. Si le solde n’est pas inférieur au montant, le prochain message envoyé est le message addDebitTransaction et la séquence continue normalement.
Parallèle
Un fragment parallèle permet à plusieurs interactions de s’exécuter en parallèle :
MODIFIER CE DIAGRAMME DE SÉQUENCE
Cadres
Une trame permet d’encapsuler un diagramme de séquence.
MODIFIER CE DIAGRAMME DE SÉQUENCE
Référence (Réf)
Une trame peut être référencée dans un autre diagramme de séquence :
MODIFIER CE DIAGRAMME DE SÉQUENCE
Protocoles
MODIFIER CE DIAGRAMME DE SÉQUENCE
Collaborations
MODIFIER CE DIAGRAMME DE SÉQUENCE
Scénarios
MODIFIER CE DIAGRAMME DE SÉQUENCE
Signaux et réceptions
Un commissaire-priseur diffuse une proposition de prix pour un article à une salle bondée d’enchérisseurs anxieux. Lorsqu’un soumissionnaire entend la proposition, il décide d’accepter ou non le prix.
Dans une enchère automatisée, comment le commissaire-priseur diffusera-t-il la proposition ? Un objet peut avoir des opérations désignées qui doivent être automatiquement appelées si certains types de signaux de diffusion sont reçus. Ces méthodes sont appelées réceptions. Les signaux sont un type particulier de classe. Le nom de la réception correspond généralement au nom du signal. Les réceptions sont présentées dans un compartiment séparé :
MODIFIER CE DIAGRAMME DE SÉQUENCE
Dans un diagramme de séquence, nous pouvons représenter un signal comme un signal asynchrone, et la réception comme une invocation de réception :
MODIFIER CE DIAGRAMME DE SÉQUENCE
Critique
MODIFIER CE DIAGRAMME DE SÉQUENCE
Autres types de fragments
- Stricte
- Affirmer
- Envisager
- Ignorer
- Région
- Nég
Résumé de la notation du diagramme de séquence
Notation Description | Représentation visuelle |
---|---|
Acteur de cinéma
Notez que:
|
|
Corde de sécurité
|
|
Activations
|
|
Message d’appel
|
|
Message de retour
|
|
Message personnel
|
|
Message récursif
|
|
Créer un message
|
|
Détruire le message
|
|
Message de durée
|
|
NoterUne note (commentaire) donne la possibilité d’attacher diverses remarques aux éléments. Un commentaire n’a aucune force sémantique, mais peut contenir des informations utiles à un modélisateur. |