Vous êtes sur la page 1sur 24

Polytech Paris-Sud

Formation initiale 3e année


Spécialité Informatique

UML

Diagrammes de séquence

Delphine Longuet
delphine.longuet@lri.fr
Processus de développement logiciel

Analyse
Tests d'acceptation
des besoins

Spécification Tests système

Conception
Tests d'intégration
architecturale

Conception
Tests unitaires
détaillée

Développement

D. Longuet - UML 2
Diagrammes d'interaction
Objectif : Représenter les communications avec le logiciel et au sein
du logiciel

Diagramme de communication

Représentation spatiale des objets et de leurs interactions

Diagramme d'objet dont les associations sont étiquetées par les
messages envoyés

Diagramme de séquence

Représentation temporelle des interactions entre les objets

Chronologie des messages échangés entre les objets et avec les
acteurs

D. Longuet - UML 3
Diagrammes d'interaction
Objectif : Représenter les communications avec le logiciel et au sein
du logiciel

Diagramme de communication

Représentation spatiale des objets et de leurs interactions

Diagramme de séquence

Représentation temporelle des interactions entre les objets

Diagrammes équivalents en phase de conception : Description du lien


entre cas d'utilisation et diagramme de classes

D. Longuet - UML 4
Diagrammes d'interaction
Exemple : À partir d'un diagramme de classes et d'un cas d'utilisation

PiloteAuto Voiture Moteur


démarrer() allumer()

Diagramme de communication
1 : démarrer() 1.1 : allumer()
p : PiloteAuto v : Voiture m : Moteur

Diagramme de séquence
p : PiloteAuto v : Voiture m : Moteur
démarrer()
allumer()

D. Longuet - UML 5
Diagrammes d'interaction
Objectif : Décrire la réalisation des cas d'utilisation sur le système
décrit par le diagramme de classes

Point de vue interne sur le fonctionnement du système

Description au niveau de l'instance (état du système à un
instant)

Description de scénarios particuliers

Représentation des échanges de messages

Entre les acteurs et le système, entre les objets du système

De façon chronologique

D. Longuet - UML 6
Diagrammes de séquence
Éléments du diagramme de séquence

Acteurs

Objets (instances)

Messages (cas d'utilisation, appels d’opération)

Principes de base : Représentation graphique de la chronologie des


échanges de messages avec le système ou au sein du système

« Vie » de chaque entité représentée verticalement

Échanges de messages représentés horizontalement

D. Longuet - UML 7
Utilisation en phase de conception
Utiliser Classe1 Classe2

Acteur Système

Diagramme de cas d'utilisation Diagramme de classes du système

Objectif : Description de la réalisation d'un cas d'utilisation sur le


système décrit par le diagramme de classes

Problème : Communication entre les acteurs et le système vu comme


un ensemble d'objets

D. Longuet - UML 8
Utilisation en phase de conception
Utiliser Classe1 Classe2

Acteur Système

Diagramme de cas d'utilisation Diagramme de classes du système

Acteur InterfaceSystème Classe1 Classe2

Communication entre acteurs et système via une interface (texte, web,


physique...)
Solution : Création d'une classe d'interface qui :

gère les interactions avec les acteurs

encapsule le résultat des opérations

D. Longuet - UML 9
Utilisation en phase de conception
Utiliser Classe1 Classe2

Acteur Système

Diagramme de cas d'utilisation Diagramme de classes

: Acteur : InterfaceSystème objet1 : Classe1

utiliser()
opération(args) Classe2()
objet2 : Classe2
objet2
retour

détruire()
affichage

Diagramme de séquence du cas d'utilisation Utiliser


D. Longuet - UML 10
Éléments de base

instance d'une classe


acteur
du diagramme de classes

Jean : Acteur objet1 : Classe1 objet2 : Classe2

opération1()
appel d'une opération2(args)
opération

retour2

ligne de vie retour1 exécution

valeur renvoyée

D. Longuet - UML 11
Types de messages
Message synchrone : Émetteur bloqué en attente du retour

: GAB : Banque
exécution flèche pleine
vérifierSolde(compte)
bloquée

soldeOK

Message asynchrone : Émetteur non bloqué, continue son exécution

: Ascenseur : Voyant
flèche ouverte
allumer()

processus évoluant
pas nécessairement
en parallèle
de retour
D. Longuet - UML 12
Création et destruction d'objet

appel du constructeur
: PageWeb de la classe

Session()
nouvSession : Session
retour obligatoire
de l'instance créée exécution du
nouvSession
constructeur

destroy()

destruction de l'objet
(pas nécessairement
à la suite d'un message)

D. Longuet - UML 13
Message réflexif

: Catalogue livres : Ensemble appel d'une


opération interne
chercher(auteur)

trier()

listeLivresAuteurTriée

D. Longuet - UML 14
Alternative
Principe : Condition à l'envoi d'un message
Notation :

Deux diagrammes

condition

a : Ascenseur p : Portes c : Cabine

[portes ouvertes] fermer() si la condition


est vérifiée

sinon
[portes fermées] déplacer(étage)

D. Longuet - UML 15
Alternative
Principe : Condition à l'envoi d'un message
Notation :

Deux diagrammes

Bloc d'alternative alt

a : Ascenseur p : Portes c : Cabine

alt fermer()
[portes ouvertes]

déplacer(étage)
[portes fermées]

D. Longuet - UML 16
Boucle
Principe : Répéter un enchaînement de messages
Notation :

Note

cat : Catalogue livre : Livre


Pour chaque
livre du catalogue opération répétée
premierAuteur()
pour tous les objets
auteur mentionnés

D. Longuet - UML 17
Boucle
Principe : Répéter un enchaînement de messages
Notation :

Note

Bloc de boucle loop

cat : Catalogue livre : Livre

loop(livre in cat) premierAuteur()

auteur

objets sur lesquels


répéter la boucle

D. Longuet - UML 18
Référence à un autre diagramme

b : Banque c : Compte cl : Client

ref
vérification du solde

ref
prélèvement agios notifié au client

référence à un
diagramme décrit ailleurs

D. Longuet - UML 19
Exemple – Analyse

Effectuer un
virement personnel
Employé

Système de gestion bancaire

Employé SGB

effectuerVirementP(id,noC1,noC2,mnt)

OK

D. Longuet - UML 20
Exemple - Conception
Banque 1
nom : string 1..*
Effectuer un 1..* Compte
virement personnel numéro : int Virement
1 0..*
Employé devise : Devise montant : float
1 0..* date : Date
1..* solde : float
Système de gestion bancaire Client
1..*
nom : string
1
naissance : Date

: Employé : SGB Client

effectuerVirementP(id,noC1,noC2,mnt)
ref chercher client c : Client
ref chercher comptes

ref créer virement v : Virement


ref effectuer virement
OK

D. Longuet - UML 21
Exemple - Conception

: Employé : SGB Client

effectuerVirementP(id,noC1,noC2,mnt)
chercher(id)
client

client : Client
compte(noC1)
c1
compte(noC2)
c2

Virement(c1,c2,mnt)
virement : Virement
virement
effectuer() c1 : Compte
retirer(mnt)
OK

c2 : Compte
déposer(mnt)

OK OK
OK

D. Longuet - UML 22
Exemple - Conception
Diagramme de classes complété avec les opérations nécessaires

Banque 1
nom : string 1..*
1..* Compte
numéro : int Virement
1 0..*
devise : Devise montant : float
1..* solde : float date : Date
1 0..*
Client effectuer() : bool
déposer(mnt : float) : bool
nom : string retirer(mnt : float) : bool
naissance : Date
1..*
chercher(id : int) : Client
compte(no : int) : Compte 1

D. Longuet - UML 23
Quelques règles
Messages entre acteurs et interface

« Fausses » opérations liées au cas d'utilisation (même nom)

Arguments (saisis) et valeurs de retour (affichées) simples :
texte, nombre

Messages au sein du système



Opérations du diagramme de classes

Si message de objA : ClasseA vers objB : ClasseB, alors

ClasseA et ClasseB liées par une association

Opération du message dans ClasseB

D. Longuet - UML 24

Vous aimerez peut-être aussi