diagramme de séquence UML

20
Diagramme de Séquence Conception Orientée Objet (UML) – Chapitre 4 Amir Souissi ©2017 1 Institut Supérieur des Etudes Technologiques (ISET-Tunisie) Niveau: 2 ème année Licence Appliquée Spécialité : DSI, RSI

Transcript of diagramme de séquence UML

Page 1: diagramme de séquence UML

Diagramme de Séquence

Conception Orientée Objet (UML) – Chapitre 4

Amir Souissi

©2017

1

Institut Supérieur des Etudes Technologiques (ISET-Tunisie)Niveau: 2ème année Licence Appliquée

Spécialité : DSI, RSI

Page 2: diagramme de séquence UML

Mr Amir Souissi© 2017

Plan

1. Système: boite noire vs boite blanche

Analyse vs Conception

2. Eléments de base

Objets, Ligne de vie, Message

Stéréotypes, MVC

3. Fragments composés

alt, opt, loop, par, ref

Fragments emboités

2

Ch

apitre 4

Diagram

me

de Séq

uen

ceP

lan

Page 3: diagramme de séquence UML

Mr Amir Souissi© 2017

1. Système : boite noire vs boite blanche

Le diagramme de séquence modélise l’aspect dynamique du système.

Il s’agit d’une séquence d’interaction d’un point de vue temporel entre lesystème et les acteurs.

Nous avons déjà vu le diagramme de séquence système. Son rôle était de décriregraphiquement un scénario d’un cas d’utilisation.

3

Ch

apitre

4D

iagramm

e d

e Séqu

ence

1. Systèm

e: b

oite n

oire

vs bo

ite blan

che

Cas d’Utilisation :est décrit (documenté) par

Diagramme de séquence système Diagramme de séquence

Le système est une boite noire On ne s’intéresse pas aux composants

du système Le système est modélisé comme étant

une seule entité

Le système est une boite blanche On s’intéresse à chaque composant du

système intervenant dans la réalisationdu CU

Le système est modélisé comme étantun ensemble d’entités

Analyse Conception

Page 4: diagramme de séquence UML

Mr Amir Souissi© 2017

Niveau de détail

4

Ch

apitre

4D

iagramm

e d

e Séqu

ence

1. Systèm

e: b

oite n

oire

vs bo

ite blan

cheSystème:

Message

Réponse au message

:ActeurObjet1:

:ActeurObjet2: Objet3:

Message

Réponse au message

Objets du système (Boite blanche)Boite noire

Diagramme de séquence

(Niveau Analyse)

Diagramme de séquence

(Niveau Conception)

Page 5: diagramme de séquence UML

Mr Amir Souissi© 2017

2. Eléments de base

Le diagramme de séquence permet de faire apparaitre:

Les intervenants dans l’interaction (objets du système ou acteurs)

La description de l’interaction (messages)

Les interactions entre les intervenants

5

Ch

apitre

4D

iagramm

e d

e Séqu

ence

2. Elém

ents d

e base

Système:

Message

Réponse au message

:ActeurObjet : une entité se

trouvant aux limites du système

Objet : une entité appartenant au

système

Ligne de vie : période de temps pendant

laquelle l’objet existe

Interaction : messageenvoyé entre deux

objets

Page 6: diagramme de séquence UML

Mr Amir Souissi© 2017

Objets

Les objets sont identifiés par l’intermédiaire des cas d’utilisation ou par le diagramme de classe.

Les objets sont représentés comme suit :

Le Nom de l’objet ou du Rôle est souligné pour indiquer qu’il s’agit d’une instance

Ils représentent :

Soit des acteurs

Soit des concepts abstraits

Soit des objets d’implantation pour les interactions informatique

L’utilisation des stéréotypes est un mécanisme d’extensibilité d’UML. Ils permettent decréer de nouveaux éléments dérivés de ceux existants mais qui sont adaptés à des usagesspécialisés dans des domaines particuliers.

6

Ch

apitre

4D

iagramm

e d

e Séqu

ence

2. Elé

men

ts de b

ase

:RôleNom:Classe:Système

Page 7: diagramme de séquence UML

Mr Amir Souissi© 2017

Objets : Stéréotypes

7

Ch

apitre

4D

iagramm

e d

e Séqu

ence

2. Elé

men

ts de b

ase

Dans le cas des applications informatiques, Il existe des stéréotypes d’objets qui permettent de séparer les préoccupations de l’IHM, l’application et les données.

Ces stéréotypes sont issues de l’architecture MVC (Model-View-Controller)

ContrôleurModèle

Vue

Demande

Données

Récupérer les informations dans une

source de données (e.g. SGBD) : traités

par le contrôleur

S’occupe de la présentation (affichage

des variables)

Contrôle l’exécution de l’application

« Entity »« Boundary » « Control »

Page 8: diagramme de séquence UML

Mr Amir Souissi© 2017

Exemple 1.0

8

Ch

apitre

4D

iagramm

e d

e Séqu

ence

2. Elé

men

ts de b

ase

Séquence nominale d’actions pour réaliser l’authentification dans un site Web

Certaines interactions ne sont pas représentés ou mal représentés :

Saisie non valide du login et mot de passe au niveau de l’interface graphique de connexion.

Login et mot de passe valides mais introuvables dans la table des clients.

La page de connexion est remplacée par la page d’accueil.

:client :Connexion :Clients:Gestion Auth

1. Saisir login et mdp

3. Lire (login, mdp) 4. Rechercher (login, mdp)

2. Vérifierla saisie

5. Réponse (accès)6. Message d’accueil

7. Charger page d’accueil

Page 9: diagramme de séquence UML

Mr Amir Souissi© 2017

Ligne de vie

La ligne de vie est représentée par une ligne verticale pointillée en dessous de l’objet.

La dimension verticale représente l’écoulement du temps.

La période d’activité d’un objet est représentée par une bande rectangulaire superposée à la ligne de vie de l’objet.

Un objet peut être actif plusieurs

fois au cours de son existence.

Lors de la création d’un nouvel objet, un message <<créer>> pointe sur le symbole de l’objet.

Lors de la destruction d’un objet, sa ligne de vie doit se terminer par une croix (X).

9

Ch

apitre

4D

iagramm

e d

e Séqu

ence

2. Elé

men

ts de b

ase

Écou

lemen

t du

temp

s

Nom:ClasseLigne de vie

Période d’activationde l’objet

OBJ1:

OBJ2:<<create>>

Objet créé dynamiquement

OBJ1: OBJ2:

<<destroy>>Mort de l’objet

Page 10: diagramme de séquence UML

Mr Amir Souissi© 2017

Messages

Les messages sont représentés sous forme de flèches.

Ils sont étiquetés par le nom de l’opération ou du signal invoqué.

L’ordre d’envoi d’un message est déterminé par sa position sur la ligne de vie; le temps s’écoule « de haut en bas ».

10

Ch

apitre

4D

iagramm

e d

e Séqu

ence

2. Elé

men

ts de b

ase

OBJ1: OBJ2: OBJ3:

1. Un message

2. Un autre message

4. Un dernier message

OBJ4:

5. <<destroy>>

3. <<create>>

Message de création

Message de destruction

Objet destinataire du message 1 et expéditeur

du message 2

Objet expéditeur du

message 1

Page 11: diagramme de séquence UML

Mr Amir Souissi© 2017

Messages : types

« Destroy » et « Create » sont deux stéréotypes de messages.

Il existe différents types de messages :

Message synchrone

Représenté par une flèche pleine ou complète et signifie que l’objet expéditeur envoie le message et reste bloqué tant que le destinataire n’a pas fin de traiter le message reçu.

Message asynchrone

Représenté par une flèche vide ou incomplète et signifie que l’objet expéditeur envoie le message et ne reste pas bloqué pendant le traitement du message par le destinataire.

Message réflexif

L’objet s’envoie un message à lui-même. L’expéditeur est lui-même le destinataire.

Message de retour

Représenté en pointillés.

Le récepteur d’un message synchrone rend la main à l’émetteur du message en lui envoyant un message de retour

11

Ch

apitre

4D

iagramm

e d

e Séqu

ence

2. Elé

men

ts de b

ase

Page 12: diagramme de séquence UML

Mr Amir Souissi© 2017

Exemple 1.1

Version améliorée de l’exemple 1.0

12

Ch

apitre

4D

iagramm

e d

e Séqu

ence

2. Elé

men

ts de b

ase

:client :Connexion :Clients:Gestion Auth

1. Saisir login et mdp

3. Lire (login, mdp) 4. Rechercher (login, mdp)

2. Vérifier la saisie

5. Réponse (accès)

8. Message d’accueil

7. « create »

6. « destroy »

:AccueilMessage synchrone :

l’expéditeur est bloqué jusqu’à ce qu’il obtient une

réponseRéponse à un

message synchrone

Messages asynchrones

Page 13: diagramme de séquence UML

Mr Amir Souissi© 2017

3. Fragments composés

Les fragments composés représentent les expressions spécifiques dans la séquence.

Les fragments composés doivent couvrir au moins une ligne de vie à tout moment, afin d'avoir une signification.

Il est représenté par un rectangle dont le coin supérieur gauche contient un pentagone.

Dans le pentagone figure le type du fragment : appelé opérateur d’interaction.

La signification du fragment composé dépend fortement de l'opérateur d'interaction utilisé.

13

Ch

apitre

4D

iagramm

e d

e Séqu

ence

3. Fragm

ents co

mp

osé

s

Fragment composé

Opérandes

OpérateurOBJ:

Page 14: diagramme de séquence UML

Mr Amir Souissi© 2017

Le fragment « alt »

14

Ch

apitre

4D

iagramm

e d

e Séqu

ence

3. Fragm

ents co

mp

osé

s

L’opérateur alt désigne un choix ou une alternative: équivalent à SI … ALORS … SINON …

L’utilisation de l’opérateur else permet d’indiquer que la branche est exécutée si la condition du alt est fausse.

Une seule des deux branches sera réalisée dans un scénario donné.

OBJ1:

alt

OBJ2:

[else]

[solde < 0]condition

Condition inversée

(solde >=0)

Accepter ( )

Refuser ( )

Page 15: diagramme de séquence UML

Mr Amir Souissi© 2017

Le fragment « opt »

15

Ch

apitre

4D

iagramm

e d

e Séqu

ence

3. Fragm

ents co

mp

osé

s

L’opérateur opt désigne un choix de comportement où:

Soit l’opérande seule s’exécute

Soit rien ne s’exécute

Il est équivalent à SI … ALORS … il est équivalent à un « alt » sans [else]

OBJ1:

opt

OBJ2:

[erreur]condition Afficher commentaire( )

Page 16: diagramme de séquence UML

Mr Amir Souissi© 2017

Le fragment « loop »

16

Ch

apitre

4D

iagramm

e d

e Séqu

ence

3. Fragm

ents co

mp

osé

s

L’opérateur loop est utilisé pour décrire un ensemble d’interaction qui s’exécute en boucle.

La condition spécifiée entre crochets indique la condition pour rester dans la boucle. Si la condition n’est plus satisfaite, alors la boucle est quittée.

On peut spécifier le nombre de répétition exacte ou l’intervalle de répétition de l’exécution de la boucle entre parenthèses.

Condition d’exécution

OBJ1:

loop

OBJ2:

Lire (fichier)[taille <60]

OBJ1:

loop(10)

OBJ2:

Lire (fichier)

OBJ1:

Loop (2 , 5)

OBJ2:

Lire (fichier)

La boucle s’exécute min 2 fois et max 5 fois

Page 17: diagramme de séquence UML

Mr Amir Souissi© 2017

Le fragment « par »

17

Ch

apitre

4D

iagramm

e d

e Séqu

ence

3. Fragm

ents co

mp

osé

s

L’opérateur par est utilisé pour représenter des interactions qui se réalisent en parallèle.

Un fragments combiné de type parallel, ou par, possède au moins deux sous-fragmentsexécutés simultanément. La concurrence est logique et n’est pas nécessairementphysique : les exécutions concurrentes peuvent s’entrelacer sur un même chemind’exécution dans la pratique.

OBJ1:

par

OBJ2:

Calcul montant ()

Update (qté)

Montant de la commande calculé

et mise à jour

Qté commandée mise à jour

Page 18: diagramme de séquence UML

Mr Amir Souissi© 2017

Le fragment « ref »

18

Ch

apitre

4D

iagramm

e d

e Séqu

ence

3. Fragm

ents co

mp

osé

s

L’opérateur ref est utilisé pour indiquer une référence vers un autre diagramme de séquence existant. Il peut être considéré comme un pointeur ou un raccourci vers un autre diagramme de séquence.

Son rôle est de factoriser des parties de comportement utilisés dans plusieurs scénarios.

OBJ1: OBJ2:

S’authentifierref

Lire (fichier)

Page 19: diagramme de séquence UML

Mr Amir Souissi© 2017

Fragments emboités

19

Ch

apitre

4D

iagramm

e d

e Séqu

ence

3. Fragm

ents co

mp

osé

s

Site E-book:

loop Chercher dans catalogue

:client

Résultat de la recherche

opt

opt

Consulter description du livre

Ajouter au panier

S’authentifierref

Tant que le client est sur la page de consultation du

catalogue

Il peut choisir de consulter la

description d’un livre

S’il choisit d’ajouter le livre au panier, alors il doit commencer

par s’authentifier pour se connecter

à son compte

Page 20: diagramme de séquence UML

Mr Amir Souissi© 2017

Exemple 1.2

20

Ch

apitre

4D

iagramm

e d

e Séqu

ence

3. Fragm

ents co

mp

osé

s

:client :Connexion :Clients:Gestion Auth

1. Saisir login et mdp

4. Lire (login, mdp)5. Rechercher (login, mdp)

2. Vérifier la saisie

6. Réponse (accès)

10. Message d’accueil

9. « create »

8. « destroy »

:Accueil

alt

loop

3. Message d’ erreur de saisie[Non valide]

[accès = refusé]

[ Else]

7. Message d’erreur