02UML DiagSequence
02UML DiagSequence
02UML DiagSequence
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
●
4
Diagrammes d'interaction
Exemple : À partir d'un diagramme de classes et d'un cas d'utilisation
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
6
Diagrammes de séquence
Éléments du diagramme de séquence
●
Acteurs
●
Objets (instances)
●
Messages (cas d'utilisation, appels d’opération)
●
Échanges de messages représentés horizontalement
7
Utilisation en phase de conception
Utiliser Classe1 Classe2
Acteur Système
8
Utilisation en phase de conception
Utiliser Classe1 Classe2
Acteur Système
9
Utilisation en phase de conception
Utiliser Classe1 Classe2
Acteur Système
utiliser()
opération(args) Classe2()
objet2 : Classe2
objet2
retour
détruire()
affichage
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
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
trier()
listeLivresAuteurTriée
14
Alternative
Principe : Condition à l'envoi d'un message
Notation :
●
condition
a : Ascenseur p : Portes c : Cabine
sinon
[portes fermées] déplacer(étage)
15
Alternative
Principe : Condition à l'envoi d'un message
Notation :
● Deux diagrammes
alt fermer()
[portes ouvertes]
déplacer(étage)
[portes fermées]
16
Boucle
Principe : Répéter un enchaînement de messages
Notation :
● Note
17
Boucle
Principe : Répéter un enchaînement de messages
Notation :
● Note
auteur
18
Référence à un autre diagramme
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é
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
effectuerVirementP(id,noC1,noC2,mnt)
21
Exemple - Conception
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