30
Chapitre 2
Modélisation Dynamique
•diagrammes de séquences
• diagrammes de collaboration
•diagrammes d’états-transitions
• diagrammes d’activités
31 Learning OutComes
Qu’est-ce qu’un diagramme d ’états-Transitions?
Quels sont les composants d’un diagramme d ’états-Transitions?
Comment modéliser un diagramme d ’états-Transitions?
Ines ELOUEDI -
ENSIT
32 Diagramme d’états-transitions
Un diagramme d’états-transitions modélise le cycle de vie (comportement)
d’un objet ou d’un système pris dans son ensemble.
Il repose sur différents concepts :
les états
les transitions
les événements
les actions et les activités.
33 Les états
Un état correspond à la manière d’être d’un objet pendant
un intervalle de temps.
Un état se définit par :
un nom,
les actions d’E/S, les activités, les actions liées aux transitions
internes (elles n’occasionnent aucun changement d’état).
Un diagramme d’états a toujours un et un seul état initial pour
un niveau hiérarchique donné. Il peut n’avoir aucun état final
ou plusieurs.
Modélisation:
Un état
État initial intermédiaire. État Final
34 Les transitions
Une transition indique le passage d’un état (état source)
dans un autre (état cible). Elle est représentée par une
flèche orientée de l’état source vers l’état cible.
Les transitions ne relient pas nécessairement des états
distincts.
Le passage d’un état dans un autre est en général
instantané.
En Au
activité chômage
35 Les événements
Un évènement correspond à l’occurrence d’une
situation donnée dans le domaine étudié : c’est le
déclencheur d’une transition.
Un évènement est une information instantanée qui doit
être traitée dans l’instant où elle se produit.
les évènements déterminent quels chemins doivent être
suivis.
Il peut déclencher le passage d’un état dans un autre
36 Les événements
Différentes sortes d’événements :
Evénement signal: causé par la réception d’un signal.
Ex : insertion_de_pièce, clic_droit_souris (p:point)
Evénement appel: causé par la réception d’un appel d’opération.
Ex : événements de création ou de destruction d’objets
Evénement temporel: causé par l’expiration d’une temporisation.
Ex : after (3 secondes)
Evénement modification: émis dès qu’une expression passe de faux à vrai suite à un changement de
valeurs d’un ou plusieurs attributs ou à une modification de liens.
Ex : When (age > 60)
Plus de 60 ans
En activité
embauche Perte
A la retraite
d’emploi
Au chômage
Plus de 60 ans
37 Les événements
Il est possible d’exprimer des conditions booléennes dont dépend le déclenchement d’une transition
lors de l’occurrence d’un événement. Ces conditions sont appelées « gardes ». Les gardes sont notées
entre crochets.
A
Il fait trop chaud [été] Il fait trop chaud [hivers]
Climatisé Aéré
Les conditions peuvent porter sur l ’état courant de l’objet.
Ex : climatiseur dans l’état arrêt.
Les gardes ne sont évaluées qu’une seule fois lors de l’occurrence de l’événement. Si la condition n’est
pas réalisée, la transition n’est pas déclenchée et l’événement est perdu (différent d’un événement
modification).
38 Les actions
Une action est une opération instantanée et atomique, donc
interruptible.
Une action est associée à un événement. Elle a accès aux
paramètres de l’événement et aux attributs de l’objet.
Exemples d'actions : Evénement / action
Envoi d'un signal État 1 État 2
Appel d'une opération
Création ou destruction d'un objet
39 Les actions
En réalité toute action a une certaine durée d’exécution mais on dit
que l’action est instantanée, cela signifie que son temps
d’exécution est négligeable devant la dynamique du système.
Les états peuvent aussi contenir des actions exécutées à l’entrée ou
à la sortie de l’état ou lors de la survenance de l’événement.
Une action interne est utilisée lorsqu’un événement déclenche une
action sans changement d’état.
Une action en entrée est utile dans le cas où tous les événements
d’entrée provoquent cette action.
40 Les activités
Une activité représente une opération qui nécessite un certain temps
d’exécution.
Une activité est non atomique. Elle peut être interrompue à tout
moment par un événement générant une transition.
Une activité prend un temps non négligeable et est exécutée
pendant que l’objet est dans un état donné.
Une activité est associée à un état mais un état peut ne pas avoir
d’activité.
Une activité est illustrée avec le mot clef do
Une activité se distingue par rapport à une action par le fait que :
Une action est instantanée
Une activité dure dans le temps.
41 Représentation graphique d’un état
Nom état
Entry [cond. ent.] / act. ent.
Do / activité
event1 [cond1] / action1
event2 [cond2] / action2 ...
Exit [cond. sort.] / act. sort.
Les actions et les activités sont exprimés par des
verbes.
42 Représentation graphique d’une transition
Nom état Nom état
Evénement
Entry / action d’entrée 1 [garde] / action Entry / action d’entrée 2
Do / activité 1 Do / activité 2
event1 1/ action1 1 event2 1/ action2 1
------------- -------------
event1 n/ action1 n event2 n/ action2 n
Exit / action sortie1 Exit / action sortie2
Quand l’événement qui se trouve sur la transition survient, la condition est évaluée et si
elle est vraie, l’action est exécutée. L’objet quitte alors l’état 1 pour passer dans l’état 2.
Les transitions internes (ou événement …) n’obligent pas à changer d’état.
Une transition propre (état source = état cible) est une transition externe. L’objet quitte
son état pour le réintégrer ensuite.
43 Exemple: État « Four Allumé »
● Conditions vérifiées
● Actions réalisées
● Événements attendus
44 Exemple: Le chauffage à thermostat
45 Les états composites
Un état composite est un état décomposable en
sous états, les sous-états étant composites ou
élémentaires.
Les sous-états sont soit disjoints et mutuellement
exclusifs, soit concurrents.
Objectifs:
Hiérarchiser les états
Structurer les comportements complexes
Factoriser les actions
46 Les états composites: états disjoints
Les transitions de sortie d’un état composite s’appliquent à tous ses
sous-états quel que soit le niveau de décomposition
Les transitions d’entrée ne concernent pas tous les sous-états, mais
un seul état (l’état initial)
Super-état AB se décompose
en deux sous-états
Pour donner une vision de haut niveau, les détails d’un état
composite peuvent être masqués
47
marche
A l’arrêt Fonctionnement
arrêt
arrêt marche
régler
régler
Réglage
Fonctionnement
indication[heure=heure sonnerie]
stop
Départ Sonnerie
faire/sonner
Après(30s)
48 Les états composites: Les états concurrents
Il s’agit d’une décomposition disjonctive.
L ’objet doit être simultanément dans tous les sous-états.
Les différents sous-états concurrents sont appelés régions.
Les régions sont séparées entre elles par des lignes pointillées. Chaque
région peut posséder un état initial et plusieurs états finaux.
Le déclenchement d’une transition vers l’état composite entraîne
l’activation de tous les états initiaux des différentes régions.
La terminaison des activités de l’état composite intervient lorsque tous
les états finaux de toutes les régions sont atteints ou qu’une transition
sortant de l’état englobant est déclenchée.
49 Exemple: Les états concurrents
Boite à musique:
50 Les états à historique
Un état à historique permet à un état composite qui
contient des sous-états de se souvenir du dernier
sous-état avant la transition réalisée depuis l’état
composite.
4. Les états historiques : plats et profonds
Dans un état composite, il est possible de mémoriser le dernier
sous-états visité. L’indicateur H, dit indicateur d’état historique
plat, associé à un état composite offre ce mécanisme.
À chaque transition vers l’indicateur H, l’objet retourne à l’état
qu’il avait précédemment.
L’indicateur H* sert à mémoriser le dernier sous-état visité
quelque soit le niveau d’emboîtement.
In
A C
B
Out C2 B1 H*
X Y
C1 C
E
H C2 C1
Utilisation de la mémorisation du dernier
état actif à partir de l’état E. L’état par
défaut de l’historique est C1
Après(2mn)
Reprise H*
Attente Lavage
Après(4mn)
Arrêt urgent Séchage
Après(2mn)
Après(2mn)
Lustrage
52 Arrêt urgent
53 Processus de construction
1. Partir d’un pseudo état initial et construire les états suivants à
partir des événements qui peuvent provoquer des transitions.
2. Partir des scénarios pour construire les diagrammes d’états pour
les classes qui ont un comportement dynamique complexe:
considérer les scénarios où la classe intervient.
pour chaque scénario, organiser les événements comme une
séquence d’arcs étiquetés, en plaçant un état entre deux séquences
d’événements consécutives
insérer les exceptions
compléter les actions et les activités dans les états.
essayer de regrouper les états.
Structurer le diagramme en sous-états.
54 Exercice: distributeur automatique
A partir des diagrammes de séquence modélisant les différents scénarios d’un
distributeur automatique, réalisez un diagramme d’état transition sachant que
l’état initial du distributeur est inactif et que l’état final peut être atteint en
éteignant le distributeur.