UML
Diagrammes de séquence
Processus de développement logiciel
Analyse
des besoins Tests d'acceptation
Spécification
Tests système
Conception
architecturale Tests d'intégration
Conception
détaillée Tests unitaires
Développement
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
●
●
Chronologie des messages échangés entre les objets et avec les
acteurs
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
●
Diagrammes équivalents en phase de conception : Description du lien
entre cas d'utilisation et diagramme de classes
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()
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
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
●
●
Échanges de messages représentés horizontalement
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
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
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
10
Éléments de base
acteur instance d'une classe
du diagramme de classes
Jean : Acteur objet1 : Classe1 objet2 : Classe2
opération1()
appel d'une opération2(args)
opération
retour2
retour1 exécution
ligne de vie
valeur renvoyée
11
Types de messages
Message synchrone : Émetteur bloqué en attente du retour
: GAB : Banque
flèche pleine
exécution 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
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)
13
Message réflexif
: Catalogue livres : Ensemble appel d'une
opération interne
chercher(auteur)
trier()
listeLivresAuteurTriée
14
Alternative
Principe : Condition à l'envoi d'un message
Notation :
●
condition
a : Ascenseur p : Portes c : Cabine
[portes ouvertes] fermer() si la condition
est vérifiée
sinon
[portes fermées] déplacer(étage)
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]
16
Boucle
Principe : Répéter un enchaînement de messages
Notation :
● Note
● Bloc de boucle loop
cat : Catalogue livre : Livre
Pour chaque
livre du catalogue opération répétée
premierAuteur()
pour tous les objets
auteur
mentionnés
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
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
19
Exemple – Analyse
Effectuer un
virement personnel
Employé
Système de gestion bancaire
Employé SGB
effectuerVirementP(id,noC1,noC2,mnt)
OK
20
Exemple - Conception
Banque 1
nom : string 1..*
Effectuer un 1..* Compte
virement personnel numéro : int 0..* Virement
1
Employé devise : Devise montant : float
1
1..* solde : float 0..* date : Date
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
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
22