Vous êtes sur la page 1sur 38

DIAGRAMME D’ETAT-TRANSITION

37
Présentation

• Diagramme comportemental

• Utilisé pour les classes qui ont un comportement complexe

• Est associé à une instance d’une classe (objet) possédant


plusieurs états

• Décrit comment un objet réagit à des événements en


fonction de son état courant et comment il passe à un
nouvel état

38
Représentation

• Graphe orienté d’états et de transitions représentant un


automate à états finis

• Exemple : fonctionnement d’un bouton poussoir

– Suite à la pression sur le bouton poussoir la réaction de la machine dépend de son


état courant : si elle est en marche elle va s’arrêter et si elle est à l’arrêt elle se
mettra en marche
39
Concepts clés

• État

– Activité

• Transition

– Évènement

– Condition de garde

– Action

• État composite

40
ÉTAT

41
État

• Un objet passe par plusieurs états durant sa durée de vie

• Un état : ensemble des valeurs des propriétés d’un objet

• Un objet à un état donné:


– Attend un évènement

– Accomplit une activité

• Etat initial

• Etat final

• Exemple :

42
TRANSITION

43
Transition (1/5)

• Décrit la réaction d’un objet lorsqu’un événement se produit


• Permet le passage d’un état à un autre
• Une transition possède en général :
– Un événement déclencheur
– Une condition de garde
– Une action
• Opération associée à la transaction
• Est non-interruptible

– Un état cible

44
Transition (2/5)

Présentation :

Exemple simple :

45
Transition (2/5)

Exemple

Porte
Presser poignée
Tourner la clé
Fermer à gauche
ouvert Fermé

Tourner la clé
à droite

Fermé à clé
Exercice
• Un panneau de signalisation composé de trois
lampes de couleurs différentes : rouge-jaune-vert.
Selon la programmation de l’exécution du panneau
pendant le fonctionnement normal, les lampes
s’allument selon l’ordre : rouge  vert  jaune, où
le passage « rouge  vert » se fait après trois
minutes la même chose pour le passage « vert 
jaune », ainsi que le passage « jaune  rouge » se
fait après 20 secondes.
• Déterminer le diagramme d’état de transition.

47
Exercice

After(3min)
Rouge Vert

After(3min)

After(20sec)
Jaune

48
Transition
(3/5)

• Transition réflexive ou transition propre


– L’état de départ et l’état cible sont identiques

– L’objet quitte un état pour y revenir

• Transition interne
– Transition qui se déclenche dans un état courant

– La transition a un état source mais d’état cible

• L’objet ne quitte pas l’état courtant

49
Transition
(3/5)

50
Transition
(4/5)

• Illustration :

– Si on est dans l’état S et qu’il y a apparition d’une occurrence de


Event a alors x est activée
– Si on est dans l’état S et qu’il y a apparition d’une occurrence de
Event b alors y (on sort d’abord de S) puis z (déclenchée car
suffixant Event b) et enfin w (on re-rentre dans S) sont activées

51
Transition
(5/5)

• Exemple 1 : Diagramme d’états-transition de la cabine d’un


ascenseur

52
Transition
(5/5)

• Exemple 2 : Diagramme d’états-transition du monnayeur d’un


distributeur de boissons

53
ÉVÈNEMENT

54
Évènement
(1/2)

• Se produit à un instant donné et n’a pas de durée

• Déclenche une transition

• Types d’événements :
– Type appel de méthode (call)

– Type signal

• Exemple : clic de souris

– Type changement de valeur (vrai/faux) : évaluation d’une expression


booléenne : when (condition_booléenne)

55
Évènement
(2/2)

– Type temporel : événement lié à l’écoulement du temps

• Après une durée précise: after (durée)

• A une durée précise: when (date)

• Exemple :
– Après deux minutes d’inactivité, l’écran de veille sera activé

56
ACTIVITÉ

57
Activité
(1/3)
• Spécifie un comportement optionnel de l’objet lorsqu’il atteint

un nouvel état (après le déclenchement d’une transition)

• Types d’activités :

– Activité d’entrée (entry) : actions effectuées au moment de

l’entrée dans un état

– Activité durable (do) : indique un travail effectué tant que

l’objet est dans l’état

– Activité de sortie (exit) : actions effectuées au moment de la

sortie d’un état 58


Activité
(2/3)

• Exemple 1 : Diagramme d’états-transition de la cabine d’un


ascenseur

59
Transition
(3/3)

• Exemple 2 : Diagramme d’états-transition du monnayeur d’un


distributeur de boissons

60
Exercice
(1/2)

– Dans un jeu vidéo (free fire), lorsque le personnage voit un


adversaire vulnérable, alors il va tout d’abord sortir son arme,
attaquer l’adversaire, esquiver lors de réception de coups et
ranger son arme à la fin de l’attaque. Lors de la réception des
coups et les points de vie deviennent zéro, alors il va prier et
mourir. Lorsqu’il voit un adversaire invincible, alors il va esquiver
.

61
Exercice
(2/2)

• Simulation d’un personnage de jeu vidéo :

62
ÉTAT COMPOSITE

63
État composite
(1/10)

• Certains états, dits « composites », peuvent contenir


un ensemble d’états.
• Objectifs :
– Hiérarchiser les états
– Structurer les comportements complexes

64
État composite
(2/10)

• Exemple : 2 représentations possibles pour factoriser l’état


combiné décroché
Pour tous ces états le
combiné est décroché

65
Source : UML2 par la pratique
État composite
(3/10)

66
État composite
(4/10)

Ou

67
État composite
Exercice (5/10)

• Un panneau de signalisation composé de trois


lampes de couleurs : vert-jaune-rouge. Selon la
programmation de l’exécution du panneau pendant le
fonctionnement normal, les lampes s’allument selon
l’ordre : rouge  vert  jaune, où le passage « rouge
 vert » se fait après trois minutes la même chose
pour le passage « vert  jaune », ainsi que le passage
« jaune  rouge » se fait après 20 secondes. Lors d’un
problème d’exécution, la lampe jaune s’allume en mode
clignote jusqu’à la réparation du panneau.
• Déterminer le diagramme d’états-transitions.
68
Exercice État composite
(5/10)

Fonctionnement normal
when(DR>3min) panne
Rouge Vert

when(DV>3min)

when(DJ>20sec)
Jaune panne
panne

Panne réparé
Jaune
panne clignote
69
État composite
(6/10)

État historique
• Un état d'historique est utilisé pour rappeler l'état
précédent d'une machine à états lorsqu'elle a été
interrompue et que nous désignons par H ou H*:
– H : est une référence à l'état le plus récemment
visitée au même niveau de hiérarchie dans l'état
composite.
– H* : est une référence à l'état simple le plus
récemment visité dans l'état composite quelque
soit son niveau de hiérarchie dans l'état
composite (historique profond).
70
État composite
(7/10)

• État qui contient plusieurs états


• Forme 1 : décomposition cachée

• Forme 2 : décomposition explicite

71
État composite
(8/10)

Surcharge
• Il est possible d’utiliser le symbole ( o-o ) à
l’intérieur de l’état composite et de spécifier ensuite
son contenu ailleurs dans une autre page, afin de
réduire le surcharge le diagramme d’état-transition.

72
État composite
(9/10)
État orthogonal
• Un état orthogonal est un état qui possède
plusieurs régions (séparées par des pointillés
horizontaux) qui évoluent simultanément
(concurrence/parallélisme).
• Chaque région peut contenir les deux états
principaux d’un diagramme d'états-transitions, qui
sont : l’état initial et l’état final.
État 2

État 20a État 21a


État 1 État 3

État 20b État 21b


73
État composite
(10/10)
État orthogonal
• Aussi, les flots d’exécutions parallèles peuvent être
présentés en utilisant les transitions concurrentes
(barres épaisses)
État 2

État 10a État 10a


État 1 État 3
État 10b État 10b

État 2

État 10a État 10a


État 1 État 3
État 10b État 10b
74

Vous aimerez peut-être aussi