Vous êtes sur la page 1sur 12

Spécialité : Développement web & mobile

Module : Méthode de conception des applications web


Chapitre 03 : le langage de modélisation unifié (UML)
Leçon 04 : Diagramme des séquences
Temps : 3h

Objectif :
A la fin de cette leçon le stagiaire doit être capable d’élaborer
correctement un diagramme des séquences.

Plan du cours :
1. Définition
2. Objectifs
3. Représentation
Définition :
 Un diagramme de séquence spécifie le comportement d’un cas d’utilisation ou
d’une partie de celui-ci, c’est une représentation temporelle des interactions
entre les différents objets au sein d’un système et décrit la chronologie de ces
échanges
 Il est possible d’utiliser des diagrammes de séquence pendant la phase
d’analyse pour décrire des scénarios d’utilisation du système.
 En phase de conception le diagramme de séquence est utilisé pour décrire le
fonctionnement interne du système qui est lié à la réalisation des cas
d’utilisation.
 Le diagramme de séquence décrit donc la réalisation des cas d’utilisation sur le
système représenté par le diagramme de classes. Pour le réaliser il faut donc
s’appuyer sur le diagramme de classes actuel du système et qui ne contient pas
d’opérations, c’est en réfléchissant aux opérations internes nécessaires à la
réalisation des cas d’utilisation que l’on va ajouter des opérations (méthodes)
aux diagrammes de classes.
 A moins que le système à modéliser soit extrêmement simple, nous ne pouvons
pas modéliser la dynamique globale du système dans un seul diagramme de
séquence. Nous ferons donc appel à un ensemble de diagrammes de séquences
chacun correspondant à une sous fonction du système, généralement d’ailleurs
pour illustrer un cas d’utilisation.
2. Objectifs :
Le diagramme de séquence permet de montrer :
- Les interactions entre acteurs c’est-à dire entre d’une part les utilisateurs du
système et le système, et d’une part le système lui-même représenté comme un
ensemble d’objets (instances de classe).
3. Eléments du diagramme de séquence :
- Acteurs (utilisateurs du système)
- Objets (instances)
- Messages (cas d’utilisation, appels d’opération)
4. Représentation du diagramme de séquence :
A. Délimitation du diagramme de séquence :
Le diagramme de séquence est placé dans un rectangle qui dispose d’une étiquette
sd en haut à gauche (qui signifie sequence diagramm) suivi du nom du
diagramme.
B. Objets :
Les objets sont les instances des classes du système. Dans un diagramme de
séquence, l’objet est représenté par un rectangle dans lequel figure le nom de la
classe.
Chaque objet a sa propre ligne de vie vertical dans le diagramme de séquence,
montrant la durée de vie de l’objet pendant l’interaction.
Ils sont représentés horizontalement sur le diagramme.

C. Acteurs :
Les acteurs sont les entités (utilisateurs, systèmes externes, etc.) qui interagissent
avec le système que vous modélisez. Ils sont généralement dessinés sur les bords du
diagramme de séquence et sont impliqués dans les interactions avec les objets du
système.
D. Lifelines (ligne de vie) :
Comme il représente la dynamique du système, le diagramme de séquence fait entrer
en action les instances de classes intervenant dans la réalisation d’un cas d’utilisation
particulier. • A chaque objet est associé une ligne de vie (un trait pointillés vertical)
qui peut être considéré comme un axe temporel (le temps s’écoule du haut vers le
bas). Dans ce genre de diagramme, la quantification du temps n’a pas d’importance.
• La ligne de vie indique les périodes d’activité de l’objet (généralement, les moments
ou l’objet exécute une de ces méthodes).
• Lorsque l’objet est détruit, la ligne de vie s’achève par une croix.

E. Les messages :
Les messages sont utilisés pour montrer les interactions entre les acteurs et les objets.
Il existe plusieurs types de massages, tels que les messages synchrone (indiqués par
une flèche pleine) et les messages asynchrone (indiquées par une flèche pointillée).
La réception d’un message est considérée par l’objet récepteur comme un événement
qu’il faut traiter (ou pas).
Les messages peuvent avoir des paramètres.
a. Les messages synchrones :
La réception d’un message synchrone doit provoquer chez le destinataire le
lancement d’une de ses méthodes (qui souvent porte le même nom que le message).
L’expéditeur du message reste bloqué pendant toute l’exécution de la méthode et
attend donc la fin de celle-ci avant de pouvoir lancer un nouveau message.
C’est le message le plus fréquemment utilisé.
Un message synchrone est représenté par une flèche dont la pointe est triangulaire
pleine

Exemple :

Dans cet exemple un guichet automatique bancaire demande à la banque de vérifier


le solde d’un compte et attend la réponse de la banque pour pouvoir continuer son
exécution, entre temps l’exécution du guichet est bloquée il ne peut rien calculer ni
recevoir ni envoyer.
Dans ce cas l’exécution globale du système est séquentielle, un seul objet est en cours
d’exécution à la fois.
Remarque :

Les méthodes correspondant aux messages synchrones doivent être définies dans un
diagramme de classes.

Les méthodes sont définies dans la classe du récepteur, et pas de l’émetteur du


message.

b. Les messages asynchrones :


Dans le cas d’un message asynchrone, l’expéditeur n’attend pas la fin de l’activation
de la méthode invoquée chez le destinataire.
En représente un message asynchrone par une flèche dont la pointe est ouverte.
Dans le cas d’une communication asynchrone, l’exécution du système est distribuée
entre les objets.
Exemple :

Dans cet exemple l’ascenseur demande aux voyant de s’allumer mais elle n’attend
pas de savoir s’il s’est réellement allumé pour continuer son exécution.
Le voyant ne va pas informer forcément l’ascenseur qu’il s’est allumé si ce n’est
pas une information nécessaire pour l’ascenseur.
Donc l’exécution de l’ascenseur et du voyant se font en parallèle.
L’envoi du message allumé n’est pas bloquant pour l’ascenseur.
c. Message de retour (reply) :
Le message de retour est utilisé pour montrer la réponse d’un objet B à un
message précédemment envoyé par un autre objet A.

d. Message de construction et destruction d’objets :


La création d’un objet ce message est utilisé pour montrer la création d’un
nouvel objet il est généralement accompagné du stéréotype « create » qui pointe
vers le rectangle en tête de la ligne de vie.
La destruction d’un objet ce message indique la destruction ou la suppression
d’un objet dans le système il est généralement accompagné du stéréotype
« destroy » précédant une croix sur la ligne de vie.
Exemple :

Dans cet exemple aucune session n’existe avant que la page web appel le
constructeur de la classe session, on voit que l’instance nouvSession qui est
créer apparait au bout de la flèche portante de l’appel du constructeur.
Puisque cette instance s’est créée par cet appel un constructeur renvoie
nécessairement l’instance qui vient d’être créée d’où le retour de l’objet
nouvSession.
La destruction d’un objet lorsqu’on a besoin de la rendre explicite se note par une
croix mettant fin à la ligne de vie de l’objet.
e. Message réflexif :
C’est un message envoyé par un objet à lui-même, représentant une action ou une
opération qu’il effectue sur lui-même (une opération interne à une classe).
L’utilisation du message réflexif est courante pour modéliser des opérations
récursives où un objet traite ses propres données ou état de manière répétitive.
Il est représenté par une flèche qui pointe vers l’instance elle-même en décalant
légèrement les rectangles d’exécution pour que ce soit lisible.
f. Message alternatif – Fragments alt :
Dans le diagramme de séquence il arrive de rencontrer des scénarios alternatifs
c’est-à-dire qu’ils utilisés pour représenter un cas d’utilisation qui contient
plusieurs chemins différents et que le flux est interrompu par des conditions.
Le fragment alternatives (alt) est un fragment conditionnel possédant plusieurs
opérandes séparés par des pointillés. C’est l’équivalent d’une exécution à choix
multiples. Chaque opérande détient une condition de garde. Seul le sous-fragment
dont la condition est vraie est exécuté. La condition else est exécutée que si
aucune autre condition n’est valide.
Exemple :

Dans cet exemple on a besoin de décrire ce que fait l’ascenseur dans le cas où l’étage
demandé et l’étage courant et dans le cas inverse.
On peut visiblement préfixer un message d’une condition entre crochets pour préciser
le contexte dans le quel le message est envoyé donc ici si l’étage demandé est l’étage
courant on demande aux portes de s’ouvrir sinon on demande à la cabine de se
déplacer jusqu’à l’étage demandé.
On besoin donc de deux diagrammes pour représenter ces deux cas si on ne s’autorise
que des scénarii linéaires.
Dans ce cas il est possible d’utiliser le fragments alt (alternatif)

Donc On fait un seul diagramme qui contiendra les deux alternatives en les mettant
dans un bloc alt et en les séparant par un long trait en pointillés.
Les conditions sont reportées sur le côté du bloc et le diagramme est un plus lisible
que les deux précédents.
Remarque :
Les fragments permettent de représenter des scénarios complexe de choix, des
répétitions ou des actions simultanées tels que des alternatives (conditions), des
boucles ou des séquences parallèles.
g. Boucle – fragments loop:
Dans un diagramme de séquence une boucle est utilisée pour représenter une
répétition d’actions ou de messages.
L’opérateur de boucle (loop) exécute une itérative dont la séquence qu’elle contient
est exécutée, tant que la garde qui lui est associée est vraie.

On peut représenter les boucles grâce à une note :


Exemple :

Ou un bloc de boucle loop pour encadrer les messages qui doivent être répétés en
précisant les objets qu’il faut parcourir, dans cet exemple pour tous le livres du
catalogue on appelle l’opération premierAuteur().
h. Référence à un autre diagramme :
Les fragments alt et loop sont très pratique mais lorsque les fragments commencent
à s’imbriquer le diagramme devient très lourds et on en perd l’intérêt.
L’un des fragments qui allège les diagrammes est celui des blocs de référence (ref).
Pour ne pas surcharger un diagramme ou pour ne pas répéter un morceau de
diagramme on peut insérer un bloc appelé ref faisant référence à un diagramme qui
sera décrit par ailleurs on voit qu’on peut montrer quels objets sont concernés par les
messages du bloc en l’étendant.

Vous aimerez peut-être aussi