Vous êtes sur la page 1sur 28

3 - Diagramme de Séquence

Pr. Abdelhay HAQIQ (ahaqiq@esi.ac.ma)


Introduction
o Diagramme de Séquence :
– Donne une description dynamique du système.
– Représente les interactions entre objets en précisant la chronologie des échanges de
messages.
– Permet d’établir un lien entre le diagramme de cas d’utilisation (vue fonctionnelle et
externe d’un système) et le diagramme de classes (vue statique et interne).
– Montre de façon séquentielle (c’est à dire temporelle) comment communiquent les objets
du système afin de réaliser une certaine fonctionnalité.

o Le diagramme de séquence fait ressortir :


– Les acteurs
– Les objets
– Les messages

Pr. Abdelhay HAQIQ UML 2


Diagramme de séquence
o Diagramme de séquences, appelé aussi diagramme de séquences système, décrit de manière
graphique tous les scénarios du cas d’utilisation, en modélisant les échanges entre l’acteur et
le système, et en tenant compte du facteur temporel
o Quel que soit le nombre de ses scénarios, un cas d’utilisation ne peut avoir qu’un seul
diagramme de séquence
o Dans un diagramme de séquence système, les seuls intervenants sont l’acteur et le système,
représenté comme une boite noire, sans détailler ce qui se passe à l’intérieur du système
o Le formalisme graphique du diagramme de séquence est principalement basé sur les
éléments suivants :
– Les lignes de vie
– les messages
– les fragments

Pr. Abdelhay HAQIQ UML 3


Diagramme de séquence
Lignes de vie
Use case « Authentification »
o Scénario principal :
1. L’acteur tape son login et son mot de passe Message
Fragment
2. Le système analyse le login et le mot de passe
3. Le système affiche un message d’accueil
o Scénario alternatif :
2.a Login ou mot de passe invalide
2.b Le système affiche un message d’erreur
Période
d’activité

Pr. Abdelhay HAQIQ UML 4


Diagramme de séquence

Insérer carte

Pr. Abdelhay HAQIQ UML 5


Ligne de vie
Ligne de vie :
o Une ligne de vie représente la ligne chronologique sur-laquelle se déroule l’ensemble
des actions effectuées par l’acteur ou le système
o Les lignes de vie sont représentées graphiquement par une ligne verticale discontinue

Ligne de vie
Ligne de vie du système
de l’acteur

Pr. Abdelhay HAQIQ UML 6


Période d’activité
Période d’activité :
o Correspond au temps pendant lequel un objet fait une action
o Représentée par une bande rectangulaire superposée à la ligne de vie de l’objet

Période Période
d’activité d’activité

Pr. Abdelhay HAQIQ UML 7


Messages

Pr. Abdelhay HAQIQ UML 8


Messages
Messages :
o Traduisent les interactions (échange d’informations) entre objets.
o Un message reçu par un objet déclenche l’exécution d’une opération.
o Un message envoyé par objet correspond à :
– Demander un service d’un autre objet Message
– Renvoyer le résultat d’une opération
o Il existe plusieurs types de messages :
– Message synchrone / asynchrone
– Message de retour
– Message réflexif
– Message conditionné
– Message constructif / destructif

Pr. Abdelhay HAQIQ UML 9


Messages
Message synchrone
o Bloque l’expéditeur jusqu’à la prise en compte du message par le
récepteur.
o Ce genre de message parfois appelé aussi call ou appel correspond
à une demande de la part est souvent associé à l’appel de
méthodes entre des objets de classes différentes
o Un message synchrone se représente par une flèche à l’extrémité
pleine qui pointe sur le destinataire du message.

Message asynchrone
o L'expéditeur n’attend pas la réponse du destinataire pour pouvoir
envoyer d’autres messages.
o L’expéditeur peut émettre d’autres messages sans attendre la
réponse du récepteur.
o Ce genre de message est parfois appelé aussi signal
o Un message asynchrone se représente par une flèche à l’extrémité
ouverte

Pr. Abdelhay HAQIQ UML 10


Messages
Message de retour
o C’est un message qui est immédiatement envoyé
en réponse au message précédent.
o Ce type de message est modélisé par une flèche
discontinue

Message Réflexif
o Message envoyé d’un objet vers lui-même

Pr. Abdelhay HAQIQ UML 11


Messages
Message conditionné
o Message qui n’est envoyé que si une condition est réalisée. Cette condition est appelée
condition de garde.
o La condition de garde est toujours exprimée entre deux crochés qui doivent précéder le nom
du message

Pr. Abdelhay HAQIQ UML 12


Messages
Message constructif
o C’est un message qui créé un objet
Message destructif
o C’est un message qui mis fin à l’objet
o Il est représenté par un X à la fin du
ligne de vie

Pr. Abdelhay HAQIQ UML 13


Représentation des Messages en PHP
Class A {
A B C
public function methodeA()
{
methodeA() methodeB() methodeC()
$b = new B();

echo "Appel à la méthode B: ".$b->methodeB();


}
} :a :b

Class B {
methodeB()
public function methodeB()
{
:c
$c = new C();

echo "Appel à la méthode C: ".$c->methodeC(); methodeC()


}
}

Pr. Abdelhay HAQIQ UML 14


Fragments

Pr. Abdelhay HAQIQ UML 15


Fragments d’interaction
o Un fragment d’interaction est une partie du diagramme de séquence associé à une étiquette
(appelé aussi cadre d’interaction).
o Les fragments servent principalement à exprimer :
– une relation d’inclusion entre deux use-cases
– une structure alternative (if, if/else, switch, …)
– une structure itérative (for, while, loop, …)
o Il est représenté dans un rectangle dont le coin supérieur gauche contient un pentagone. Dans
le pentagone figure le type du fragment, appelé opérateur d’interaction

Pr. Abdelhay HAQIQ UML 16


Fragments d’interaction
Type d’opérateurs :
o alt : fragment alternatif, conditions dans les gardes (équivalent en Java : ? : , if/else, switch)
o opt : fragment optionnel exécuté si la garde est vraie (équivalent en Java : if)
o loop : fragment à répéter tant que la condition de garde est vrai
o break : fragment qui permet de quitter l’instruction si une condition est satisfaite
o ref : passage à un autre diagramme de séquence
o par : fragments qui s’exécutent en parallèle
o strict : fragments qui s’exécutent selon leur ordre d’apparition au sein du fragment combiné.
Utile surtout lorsque deux parties d’un diagramme n’ont pas de ligne de vie en commun.
o Il existe encore d’autres opérateurs peu utilisés: neg, consider, ignore, assert, …

Pr. Abdelhay HAQIQ UML 17


Fragment ALT (if / else)
Traduction en PHP

if ($a > 0)
echo "Message 1";
else
echo "Message 2";

OU

echo ($a > 0) ? "Message 1" : "Message 2";

Pr. Abdelhay HAQIQ UML 18


Fragment ALT (switch)
Traduction en PHP
switch ($a) {
case 1:
echo "Message 1";
break;
case 2:
echo "Message 2";
break;
case 3:
Traitement();
echo "Message 3";
break;
default:
echo "Erreur !";
}

Pr. Abdelhay HAQIQ UML 19


Fragment OPT (if)
Traduction en PHP

if ($a == 1)
echo "Message 1";
echo "Message 2";

Pr. Abdelhay HAQIQ UML 20


Fragment LOOP
Traduction en PHP

while($a >= 1)
{
echo "Message 1";
Traitement();
}
echo "Message 2";

Pr. Abdelhay HAQIQ UML 21


Fragment LOOP & Break
o Une structure LOOP est interrompue dans 2 cas :
– La condition d’itération n’est plus TRUE
– Utilisation du fragment BREAK
Traduction en PHP
while($X < 10)
{
Traitement();
echo "Message 1";

if($S == 1000)
{
echo "Message 2";
break;
}
}

Pr. Abdelhay HAQIQ UML 22


Fragment Ref
o Le fragment REF (Référence) sert à modéliser au niveau du diagramme de séquences une
relation d’inclusion ou d’extension entre deux cas d’utilisation A et B au niveau du
Diagramme de UC
o Ce fragment évite aux concepteurs de réintroduire les messages de B dans le diagramme de
séquence de A

Pr. Abdelhay HAQIQ UML 23


Fragment Ref

Pr. Abdelhay HAQIQ UML 24


Exercices

Pr. Abdelhay HAQIQ UML 25


Exercice 1
On souhaite gérer les différents objets qui concourent à l’activité d’un magasin de vente de fleurs.
o Le client demande au vendeur des renseignements sur les compositions florales
o Le vendeur lui fournit toutes les informations nécessaires
o Le client commande alors la composition de son choix et le vendeur crée le bon de fabrication
qui est transmet à l’ouvrier fleuriste
o Le vendeur édite ensuite la facture correspondante
o L’ouvrier fleuriste crée la composition puis archive le bon de fabrication
o Il remet alors la composition au vendeur
o La facture est remise au client pour règlement une fois le bouquet réalisé
o Une fois la facture réglée, le client récupère sa composition et quitte le magasin
Etablir le diagramme de séquence

Pr. Abdelhay HAQIQ UML 26


Solution

Pr. Abdelhay HAQIQ UML 27


Exercice 2
Le déroulement normal d’utilisation d’une caisse de supermarché est le suivant :
o un client arrive à la caisse avec ses articles à payer
o le caissier enregistre le numéro d’identification de chaque article, ainsi que la quantité si elle est
supérieure à 1
o la caisse affiche le prix de chaque article et son libellé
o le caissier peut annuler un article
o lorsque tous les achats sont enregistrés, le caissier signale la fin de la vente
o la caisse affiche le total des achats
o le caissier annonce au client le montant total à payer
o le client choisit son mode de paiement
– liquide : le caissier encaisse l’argent, la caisse indique le montant à rendre au client
– chèque : le caissier note le numéro de pièce d’identité du client
– carte de crédit : la demande d’autorisation est envoyée avant la saisie
o la caisse enregistre la vente et l’imprime
o le caissier donne le ticket de caisse au client
Etablir le diagramme de séquence en ne prenant en compte que le cas du « paiement en liquide »

Pr. Abdelhay HAQIQ UML 28

Vous aimerez peut-être aussi