Académique Documents
Professionnel Documents
Culture Documents
Compilation de présentations de :
J li V h
Julie Vachon
Jeanine Leguy
Yannick Prié
1
Les diagrammes dynamiques
g y q
Diagrammes d’interactions
Séquences
Sé
Communication (uml1 == Collaboration)
Diagrammes d’états transitions
Di d’é ii
Diagrammes d’activités
2
Diagramme de séquence
g
Diagramme de communication
3
Diagrammes d’interactions
g
Les diagrammes d’interactions
Ce sont des diagrammes d’objets
Ce sont des diagrammes d objets
Ils communiquent par envoi de messages.
Ils mettent l’accent sur les flots de contrôle d’un objet à
un autre.
Diagramme de séquence
Met en exergue le déroulement séquentiel
Diagramme de communication
Met en exergue les échanges de messages
(
(communication) )
4
Diagrammes d’interactions
g
Permet de décrire (entre autres) les cas
d utilisation
d’utilisation
met en évidence les interactions entre les instances des
classes (objets) du logiciel
Un cas d’utilisation est réalisé par une
U d’ ili i é li é
collaboration
Collaboration = Ensemble d
= Ensemble d’objets qui s’échangent des
objets qui s échangent des
messages et travaillent ensemble pour accomplir une
tâche.
Interaction
I i = Échange d’un message entre deux objets
É h d’ d bj
du logiciel.
5
Diagrammes d’interactions
g
UML propose deux type de diagrammes d’interaction
Diagramme de séquence
interactions projetées sur une ligne de temps
Diagramme de communication
g
interactions projetées sur un diagramme d’objets
Pour décrire les scénarios des cas d’utilisation on
Pour décrire les scénarios des cas d utilisation on
privilégiera
Analyse : diagrammes de séquence (peu détaillé), d’activités, ou
d’états.
d états.
Conception : diagrammes de séquence ou de communication.
6
Utilisation des interactions
• Etudier/spécifier le comportement
/ p p
du système dans sa globalité au sein d'un cas d'utilisation
se concentrer sur les événements du système considéré comme boîte
noire
diagramme de séquence système (DSS vue plus tard)
de plusieurs objets au sein d'un cas d'utilisation
réalisations de CU comme des interactions dans une société d
réalisations de CU comme des interactions dans une société d'objets
objets
diagramme de séquence de fonctionnement
conseil : concevoir diagrammes de classes et d'interaction en
même temps
Illustrer/étudier un fonctionnement
diagramme qui traverse les couches : de l'IHM aux données
rétro‐ingénierie
é i é i i
7
8
Diagrammes de séquence
g q
Montre, sous la forme de séquences ordonnées dans le
temps, les interactions entre objets
temps les interactions entre objets
Permet de décrire un comportement
10
Les diagrammes de séquence
Les diagrammes de séquence
Utilisation
Utilisés dans différents contextes:
description des cas d’utilisation
modélisation d
modélisation d’une opération
une opération,
en particulier quand cette opération met en œuvre des
messages asynchrones et des instances de classes actives (pas
traité dans ce cours).
traité dans ce cours)
11
Les diagrammes de séquence
Messages dans les diagrammes de
Messages dans les diagrammes de
q
séquences
res = message(arguments)
E
Echange de messages
h d
flèches d'appel synchrone
bl
blocage de l'émetteur en attendant la réponse
d l'é d l é
flèche d'appel asynchrone
pas d'attente du retour, poursuite de la tâche
d' tt t d t it d l tâ h
Retour
Message de création
M d é ti
Message de destruction
M d d t ti
13
Caractéristiques
q
Diagramme de séquence
Montre la séquence dans le temps des interactions entre les
objets participant à un scénario.
Un diagramme de séquence a deux dimensions
Verticale : le temps
L'ordre d'envoi d'un message est déterminé par sa position sur l'axe
vertical du diagramme ; le temps s'écoule « de haut en bas »
Horizontale : les objets (et les acteurs)
L’ordre de disposition des objets sur l'axe horizontal est sans
importance
p
15
Caractéristiques
Éléments (graphiques) de base
Éléments (graphiques) de base
Les objets qui interagissent dans le scénario
Représentation graphique de la ligne de vie de chaque
R é t ti hi d l li d i d h
objet et de ses activations
Les différents types de messages envoyés
(simple, synchrone, asynchrone)
Les indications de contrôle
(branchement conditionnel et itération, création et destruction
d’objets, délais de transmission, contraintes temporelles)
16
Interactions, classes, associations,
Interactions classes associations
p
opérations
Liens
associations
Messages
M
Opérations
Dépendances
?
Exercice : dessiner le
diagramme de classes
correspondant
17
Interactions, classes, associations,
Interactions classes associations
p
opérations
Liens
associations
Messages
M
Opérations
Dépendances
?
Exercice : dessiner le
diagramme de classes
correspondant
18
Option et Alternatives
Boucle
19
Les cadres d’interactions
Permettent d’exprimer dans les diagrammes de
séquences:
des alternatives (opt[cond] et alt)
Des boucles
D b l (loop[min, max, cond]
(l [ i d]
20
L’alternative optionnelle
p
opt[condition]
Exécuté quand la condition est vraie
E é té d l diti t i
21
L’alternative
Alt
[condition 1]
[ ]
[condition 2]
[else]
[condition 1]
[condition 1]
[else]
22
La boucle
Loop[min, max, condition]
23
24
Co‐conception des classes
Co‐conception des classes
et des interactions
Les objets utilisés dans les interactions pour réaliser les scénarios proviennent
des classes déjà décrites dans le diagramme de classes, le glossaire métier
d l déjà dé it d l di d l l l i éti
des besoins nouveaux en objets pour l'interaction spécifique
A partir des diagrammes d'interaction, on complète le diagramme de classes
précisions (attribut, méthodes)
précisions (attribut méthodes)
nouvelles classes
etc.
On essaye de réaliser tous les scénarios en convergeant vers un diagramme de
y g g
classes stables
Diagramme
g Diagramme
g
d’interactions d’interactions
25
Les diagrammes de séquence
Les diagrammes de séquence
Utilisation
Les diagrammes de séquence permettent de
g q p
décrire des scénarios.
Ils sont axés sur les classes et leurs interactions
Ils permettent de découvrir de nouvelles classes
26
Trouver les objets du système
j y
Par de la description d’un scénario
Fait un diagramme de séquence avec
g q
Le/les acteurs
Le système
Ce diagramme s’appel le DSS (Diagram
C di ’ l l DSS (Di S
Sequence S t )
System)
Puis, on décompose chaque message
En appel de message sur d’autre objets
pp g j
introduction de nouveau objets et de nouvelle opération
1. Déclenchement
é l h à un moment défini.
défi i
2. Le système marque l’enchère « close » => aucune offre la
concernant ne peut plus être acceptée.
3. Le système récupère la dernière offre
4. le système soumet au service de crédit le paiement des charges
5. le système envoie un message à l’acheteur pour lui dire qu’il a
gagné l’enchère
6. le système envoie un message au vendeur pour lui dire que
l’enchère est close, à quel prix et que son compte va être débité.
7. Fin du scénario
28
Introduction des diagrammes de séquence à partir des scénario
p
Recherche de nouvelles classes et opérations
29
Exemple : CloreEnchere
p
1. Déclenchement à un moment défini.
2. Le système marque l’enchère « close » =>
aucune offre la concernant ne peut plus être
acceptée.
3. Le système récupère la dernière offre
4. le système soumet au service de crédit le
ppaiement des chargesg
5. le système envoie un message à l’acheteur pour
lui dire qu’il a gagné l’enchère
6. le système envoie un message au vendeur pour
lui dire qque l’enchère est close,, à qquel pprix et
que son compte va être débité.
7. Fin du scénario
31
Exemple : CloreEnchere
p
Diagramme de classes après
Exemple : CloreEnchere
p
Raffinement du message
● Raffinement du message « envoyerMail »
● scénario:
● cloreEnchereCTR crée un texte formaté à trous
● cloreEnchereCTR ajoute les infos spécifiques à l'enchère
● cloreEnchereCTR recherche l'adresse mail du destinataire
● cloreEnchereCTR envoie le texte au destinataire via le serveur de mail
39
Diagrammes de communication
ag a es de co u cat o
Diagramme illustrant les interactions entre les instances
d’un logiciel en mettant l’accent sur l’organisation
d un logiciel en mettant l accent sur l organisation
structurelle des objets participants (et non pas sur l’ordre
temporel des messages)
Diagramme généralement utilisé pour
Décrire en détail le déroulement d’un cas d’utilisation,
ii.e., décrire la conception d
e décrire la conception d’un scénario d’un cas d’utilisation
un scénario d un cas d utilisation
communication
Ensemble d’instances qui interagissent ensemble pour réaliser une
tâche commune
Ensemble de liens (pertinents) existant entre ces instances
40
Diagrammes de communication
Un diagrammes de communication est un
d
diagrammes d’objets communicants.
d’ b
Il est composé :
d’objets
d objets
de liens entre objets avec message <<stéréotypé>> et
typé
yp
de Notes, contraintes,…
Les messages peuvent être numérotés.
g p
Communication
Deux parties : statique et dynamique
Partie statique
Illustre les instance (des classes) et les liens
(instances d’associations) impliqués dans la
réalisation d’une communication donnée.
43
Communication
Partie dynamique
Illustre les interactions
Ill t l i t ti (l
(les messages envoyés par les
é l
instances) nécessaires pour réaliser la tâche décrite par
la communication
44
Communication
Partie statique du diagramme
q g
(i.e., sans interactions)
Éléments composant une communication
Objets : instance d’une classe
Rectangle avec étiquette de la forme nomObjet:nomClasse ou
:nomClasse
Cl
Uniquement les instances pertinentes, i.e., interagissant dans le cas
d’utilisation ou le scénario
Liens
Li : instances d’associations du diagramme de classes
i t d’ i ti d di d l
Uniquement les instances d’associations pertinentes pour la
communication
Acteurs
A : acteurs participant au cas d’utilisation ou scénario
i i d’ ili i é i
L’acteur initiant un cas d’utilisation est appelé initiateur
45
Communication
Partie dynamique du diagramme
Partie dynamique du diagramme
Ajout des messages sur les liens
Indique les messages à côté des liens appropriés sur le
diagramme de communication
La flèche est issue de l’émetteur et pointe vers le destinataire
L’association correspondante dans le diagramme de classes doit être
L’ i i d d l di d l d i ê
navigable dans la même direction
Le destinataire doit pouvoir comprendre le message (opération
appropriée ?))
46
Représentation des interactions
p
Numéro du message : en mode procédural, lorsqu’un objet
O reçoit un message, le numéro de ce message est utilisé
comme préfixe pour tous les messages envoyés par O par la
f l l
suite… jusqu’à ce que O réponde à ce message.
En général, les messages de retour n’apparaissent pas
En général, les messages de retour n apparaissent pas
explicitement dans les diagrammes de communication
Types de messages
Synchrone
S h
Asynchrone
Aussi : garde, itération, etc.
g
47
Représentation des interactions
Remarques
Comme le diagramme de séquence, le diagramme
de communication permet de découvrir de
nouvelles propriétés aux classes. Il peut aider à
compléter et développer le diagramme de classes
p pp g
Ajout d’opérations, d’associations, etc.
Le diagramme de classes doit être mis à jour pour
demeurer « correct » et « cohérent » avec les
diagrammes de séquence et de communication
g q
48
Création et destruction
Création et destruction
y q
dynamiques
Ajout d’une contrainte ({new} ou {destroyed} ) après
l étiquette dans le rectangle représentant l instance
l’étiquette dans le rectangle représentant l’instance
Si au cours des interactions représentées par le
diagramme de communication, une instance est créée
puis détruite, on utilise la contrainte {transient}
Utilisation des messages de création et de destruction
d’i t
d’instance : new,
d t
destroy
49
Création et destruction dynamiques
Exemple
50
Notation utilisée
On peut utiliser (comme pour les diagrammes de
séquence)
Messages avec garde (condition)
Ex. :
Ex :
[i=0] 1: a(), [i=1] 1: b()
Messages avec clause itérative
g
Ex. :
1: *[i:=1..n] a()
51
Notation utilisée
Exemple – Message avec garde
52
54
Diagrammes d’états transitions
Introduction
Permet de décrire le comportement d’une instance d’une classe (ou d’un
ensemble d’objets) en fonction des messages reçus
Peut également être utilisé pour décrire l’exécution d’une opération, d’un cas
P é l ê ili é dé i l’ é i d’ é i d’
d’utilisation, etc.
Diagramme d
Diagramme d’état d’un billet de spectacle à vendre sur Internet
état d un billet de spectacle à vendre sur Internet
55
Principaux concepts
p p
État
Transition
Marqueur d’état initial
56
Principaux concepts
Principaux concepts
État
Décrit un moment de la vie d’une instance
Une instance ne se trouve que dans un seul état à la fois
Un état est généralement décrit par un nom
g p
Toutes les instances d’une classe qui se trouvent dans un même état
réagissent de façon identique aux événements
Les instances qui se trouvent dans un état donné, à un moment donné
q
Ont des valeurs d’attributs similaires
Attendent un événement particulier
Exécutent une activité particulière
En UML, il existe différents types d’état : simple, concurrent,
57
Principaux concepts
Principaux concepts
Transition
Une transition (sortante) définit la réponse d’une instance, dans
un état donné, à un événement donné
Les transitions sont étiquetées par un événement et
(optionnellement) par une action
é é
événement
t / action
ti
Événement : tout ce qui survient et peut affecter une instance
(élément déclencheur de la transition)
Action : opération réalisée lorsqu’une transition est réalisée
Diagramme d’état pour la classe Exemplaire_de_livre
d’ l l l d l
58
Principaux concepts
p p
Types d’événements
Un événement peut être paramétré
U é é ê é é
Type Description Syntaxe
d’événement
d événement
Appel / Signal Réception d’un message synchrone (pour lequel op(p1:type,
l’émetteur attend une réponse), invocation d’une p2:type, …)
opération
é ti
Changement Changement de valeur d’une condition when(exp) when(exp)
booléenne,, satisfaction soudaine de cette
condition, condition fausse qui devient vraie
Temps Temps absolu atteint ou passage d’un certain after(time)
after(time) intervalle de temps
temps, peut signaler le
temps écoulé depuis l’entrée dans un état donné
59
Principaux concepts
p p
Types d’actions
Les actions peuvent prendre des arguments
Type d’action Description Syntaxe
D t ti
Destruction D t ti d’
Destruction d’une iinstance
t object.destroy()
bj t d t ()
60
Actions d’entrée et de sortie
Certaines actions peuvent être rattachées à un état au lieu d’une
t
transition
iti
Action d’entrée : exécutée chaque fois qu’on entre dans l’état
Notation : entry / action
Action de sortie : exécutée chaque fois qu’on sort de l’état
Notation : exit / action
Ordre d’exécution
des actions ?
61
Actions d’entrée et de sortie
62
Gardes
Une transition peut être conditionnelle à l’évaluation
d’une garde
d une garde
Si la garde est vraie, la transition est réalisée
Si la garde est fausse, la transition n’a pas lieu
Si la garde est fausse, la transition n a pas lieu
Notation : événement [garde]
Diagramme d’état d’un livre
63
Gardes
Garde
Expression conditionnelle
Évaluée uniquement quand l’événement est déclenché
Peut contenir des attributs de l’instance ou des paramètres de
l’l’événement associé
Lorsqu’un même événement est associé à plusieurs
transitions, une garde (condition) peut être ajoutée pour
transitions une garde (condition) peut être ajoutée pour
préciser le contexte et déterminer la transition à effectuer
Les gardes associées à un même événement sur les
transitions sortantes d’un état donné, doivent être
mutuellement exclusives
64
Types de transitions
yp
Transition externe : transition standard qui engendre un changement d’état et
toutes les actions correspondantes (actions d’entrée et de sortie, ainsi que
celles de la transition)
Transition interne : transition qui n’engendre pas de changement d’état et ne
déclenche que les actions associées à cette transition (pas les actions d’entrée
et de sortie, cf. figure ci‐dessous)
g
Transition de complétion : transition qui n’est pas activée par un événement;
est implicitement activée lorsque est atteint la fin d’un flux d’activités
65
État composite
p
État « spécialisé » composé de plusieurs sous‐états
Sous‐états séquentiels
S ét t é ti l
Sous‐états concurrents
S é
66
État composite séquentiel
p q
Description interne ?
67
État composite
p
Lorsqu’un état composite est activé, un de ses sous états est
nécessairement activé
Entrer et sortir d’un état composite
Une transition entrant dans un état composite est implicitement
conduite vers son état initial
Une transition vers l’état final d’un état composite active
implicitement une transition de complétion sortant de l’état
composite
Lorsqu’une transition entre/sort en traversant un ou
plusieurs états composites imbriqués, toutes les actions
d entrées/sortie sont exécutées
d’entrées/sortie sont exécutées
Actions de sortie de l’état le plus interne en premier
Actions d’entrées de l’état le plus externe en premier
68
État composite (concurrent)
p ( )
Diagramme d’état d’un cours
69
État composite concurrent
p
Autre notation possible
Di
Diagramme d’état d’un cours
d’ét t d’
70
Représentation des
Représentation des
p
comportements valides
Un diagramme d’états doit représenter tous et
seulement les états et les transitions valides des
instances d’une classe
Si un diagramme d’état, pour un état donné E, n’a pas de
Si di d’ét t ét t d é E ’ d
transition étiquetée par un événement X, cela signifie
que l’instance n’a pas à réagir à cet événement dans cet
état.
71
Diagrammes d’états transitions
Ils sont avant tout centrés sur les états pris par
un ensemble d’objets
un ensemble d objets.
On les utilise pour décrire le comportement
d un ensemble d objets c est à dire décrire
d’un ensemble d’objets c'est‐à‐dire décrire
l’enchaînement des états par lesquels ces objets
peuvent passer durant leur durée de vie en
réponse à des événements ou actions
é à d é é t ti
Associés à une classe, ils permettent de
Associés à une classe ils permettent de
visualiser les états possibles que peut prendre
une instance de cette classe.
Activité
Considérons un réveille‐matin simplifié :
on peut mettre l’alarme « on » ou « off » ;
t tt l’ l ff
quand l’heure courante devient égale à l’heure d’alarme,
le réveil sonne sans s arrêter ;
le réveil sonne sans s’arrêter ;
on peut interrompre la sonnerie.
http://fr.scribd.com/doc/25046623/Etudes‐de‐Cas‐Et‐
E
Exercices‐Corriges
i C i P8
P181
79
Réveille‐matin simplifié
p
on peut mettre l’alarme « on » ou « off »
deux etats ‘armé’ et ‘desarmé’
quand l’heure courante devient égale à l’heure d’alarme, le réveil
sonne sans s’arrêter ;
Etat sonnerie avec transition sur condition
on peut interrompre la sonnerie.
Evénement « arret sonnerie »
80
81
Diagrammes d
Diagrammes d’activités
activités
Introduction
Utilisé pour décrire les séquences d’activités
Un cas d’utilisation (phase d’analyse)
U d’ ili i ( h d’ l )
Un algorithme particulier (phase de conception)
Permet de décrire les activités d’un cas d’utilisation
en restant à un haut niveau d’abstraction
Permet d’exprimer des activités séquentielles et
concurrentes
82
Diagrammes d’activités Exemples
g p
Système de vente en ligne
Cas d’utilisation : commander ordinateur (à configurer)
( g )
83
Principaux éléments de notation
p
Activité
Transition
Marqueur d’état initial
Barre de synchronisation
B d h i i
Branchement
Condition
84
Diagrammes d’activités Exemples
g p
Cas d’utilisation: Traiter une commande de billet de théâtre
85
Diagrammes d’activités
g
Description
Il est composé de :
Etat d’entrée, de sortie
Etats d’activité, Etat d’action
Objets avec états
Transitions
Barres de synchronisation
Décisions
Gardes
Couloirs
On peut également y trouver des notes, des contraintes.
Utilisation
Pour décrire des processus (workflows)
Visualiser
Spécifier
Construire
Documenter
D
Pour décrire l’enchainement des CUs
Pour montrer l
Pour montrer l’évolution d’un ensemble d’objets
évolution d un ensemble d objets
(en terme d’états) à travers un processus (voir les
diagrammes d’états transitions)
Modéliser le flot de contrôle d’une opération (Pas
de couloirs)
Diagrammes d’activités
g
Couloirs (swimlane)
:Etudiant :Prof :Jury
travailler enseigne
:Etudiant
[inscrit]
corriger examen
passer examen
[p as OK] [OK]
refuser Valide
ObjectFlowState:Etudiant ObjectFlowState:Etudiant
[enEchec] [recu]
Diagrammes d
Diagrammes d’activités
activités
Desc. de processus (workflow)
p ( )
Un processus peut impliquer plusieurs personnes, il peut également se
dérouler sur une période de temps plus ou moins longue qui nécessite de
connaître des états intermédiaires des objets impliqués.
connaître des états intermédiaires des objets impliqués
En ingénierie du besoin on modélise des workflows encore appelés
processus métier qui correspond au savoir faire de la structure qu
qui correspond au savoir faire de la structure qu’on
on
modélise.
La modélisation des processus métier permet de trouver les cas
d’utilisation (métier) candidats à être des cas d’utilisation de l’application
logicielle.
logicielle
Les diagrammes d'activités vont permettre de
visualiser l'enchaînement des cas d'utilisation.
Un cas d'utilisation ne peut pas être "suspendu" puis repris.
Un diagramme d'activités peut "attendre" entre activités.
Diagrammes d
Diagrammes d’activités
activités
Exemple: suivi commande client
client: service commercial: service comp table: service livraison:
p asserCommande
rassembler p roduits
émettre facture
Effectuer Commande
envoy erFacture
receptionner
p Commande
payer commande
Activité
Faire le diagramme d’activité du processus « payer
ll’addition
addition »:
Demander l'addition puis si le prix demandé est
inférieur à la somme dont on dispose payer l addition,
inférieur à la somme dont on dispose payer l'addition
sinon faire la vaisselle.
http://anubis.polytech.unice.fr/iut/2010_2011/s2/omgl
/ d i/td/ ti iti
/mod‐si/td/activities
95
Ex: payer l’addition
p y
96
Activité
Faire le diagramme d’activité du processus « passer une
vitesse »:
Desserrer le frein à main puis en même temps appuyer
sur l embrayage et passer la première, ensuite en même
sur l'embrayage et passer la première ensuite en même
temps appuyer sur l'accélérateur et relâcher l'embrayage
http://anubis.polytech.unice.fr/iut/2010_2011/s2/omgl
/ d i/td/ ti iti
/mod‐si/td/activities
97
Ex: passer une vitesse
p
Desserrer le frein à main puis en même temps appuyer sur
l embrayage et passer la première, ensuite en même temps
l'embrayage et passer la première ensuite en même temps
appuyer sur l'accélérateur et relâcher l'embrayage
98