Vous êtes sur la page 1sur 37

State Machine Diagramme

1
Content
§ Introduction

§ States

§ Transitions

§ Types d’events

§ Types de states

§ Points d’entrées et de sorties

2
Introduction
§ Chaque objet prend un nombre fini d'états différents au cours
de sa vie

§ Le diagramme de la machine à états est utilisé comme suit :


§ Modéliser les états possibles d'un système ou d'un objet
§ Pour montrer comment les transitions d'état se produisent à la suite
d'événements
§ Pour montrer quel comportement le système ou l'objet présente
dans chaque état

§ Exemple : description de haut niveau du comportement d'un


amphithéâtre (Lecture Hall)
Transition State

3
Exemple : Lecture Hall

class LectureHall {
private boolean free;

public void occupy() {


free=false;
}
public void release() {
free=true;
}
}

4
Exemple : Digital Clock

5
Etat (State)
§ States = noeuds de la machine d’états

§ Lorsqu'un état est actif


§ L'objet est dans cet état
§ Toutes les activités internes spécifiées dans cet état peuvent être
exécutées
§ Une activité peut consister en plusieurs actions

§ entry / Activity(...)
§ Exécuté lorsque l'objet entre dans l'état

§ exit / Activity(...)
§ Exécuté lorsque l'objet sort de l'état

§ do / Activity(...)
§ Exécuté tant que l'objet reste dans cet état

6
Transition
§ Passer d'un état à un autre

Event Guard Séquence d‘actions (effets)

Etat Source Transition Etat Cible (Target)

7
Transition – Syntaxe

§ Événement (trigger)
§ Peut déclencher une transition d'état

§ Guard (Condition)
§ Expression booléenne
§ Si l'événement se produit, Guard est vérifié
§ Si Guard est vrai
§ Toutes les activités dans l'état actuel sont terminées
§ Toute activité de sortie(exit) est exécutée
§ La transition a lieu
§ Si Guard est faux
§ Aucune transition d'état n'a lieu, l'événement est rejeté

§ Activité (effet)
§ Séquence d'actions exécutées pendant la transition d'état

8
Transition – Types (1/2)
Transition interne Transition externe

§ If event1 se produit § If event1 se produit


§ L’objet reste dans state1 § L’objet quitte state1 et
§ Activity3 est exécutée Activity2 est exécutée
§ Activity3 est exécutée
§ L’objet entre state1 et
Activity1 est exécutée

9
Transition – Types (2/2)
§ Quand ont lieu les transitions suivantes ?
Si e1 se produit, A1 est annulé et l'objet
passe à S2
Si e1 se produit et que g1 est évalué à vrai,
A1 est annulé et l'objet passe à S2

Dès que l'exécution de A1 est terminée, un


événement d'achèvement est généré qui
initie la transition vers S2
Dès que l'exécution de A1 est terminée, un
événement d'achèvement est généré ; si g1
est évalué à vrai, la transition a lieu ; Sinon,
cette transition ne peut jamais se produire

10
Transition – Séquence d’exécution
d’activités
§ Supposons que S1 soit actif… quelle est la valeur de x après que
e se soit produit ?

S1 devient actif, x set à la valeur 4

e se produit, Guard est vérifié et évalué à vrai

Exit de S1, x set à 5

La transition prend place, x set à 10


S2 entrée, x set à 11

11
Exemple : Registration Status d’un Exam

12
Event – Types (1/2)
§ Evénément de signal
Réception d’un signal
§ E.g., rightmousedown, sendSMS(message)

§ Evénément d’appel

Appel d’une opération


§ E.g., occupy(user,lectureHall), register(exam)

§ Evénément de temps
Transition d'état basée sur le temps
§ Relatif : basé sur le temps de survenance de l'événement
§ E.g., after(5 seconds)
§ Absolu
§ E.g., when(time==16:00), when(date==20150101)

13
Event – Types (2/2)
§ Tout autre evénément (all)

Se produit lorsqu'un événement se produit qui ne


déclenche pas une autre transition depuis l'état actif
§ Keyword all

§ Evénément d'achèvement

Généré automatiquement lorsque toute l’activité


dans l'état actuel est terminée

§ Evénément de changement

Vérifier en permanence si une condition devient vraie

E.g., when(x > y), after(90min)

14
Change Event vs. Guard
Vérifiée de façon
permanente

Vérifiée quand un
événement se produit

15
Initial State
§ “Start” d’un state machine diagram

§ Pseudostate
§ Transitoire, c'est-à-dire que le système ne peut pas rester dans cet état
§ Plutôt une structure de contrôle qu'un état réel

§ Pas d’arêtes entrantes

§ Si >1 arêtes sortantes


§ Les gardes doivent être mutuellement exclusifs et couvrir tous les cas
possibles pour s'assurer qu'exactement un état cible est atteint

§ Si l'état initial devient actif, l'objet passe immédiatement à l'état


suivant
§ Aucun événement autorisé sur les arêtes sortantes (exception: new())

16
État final et nœud de terminaison
Etat Final

§ État réel

§ Marque la fin de la séquence d'états

§ L'objet peut rester dans un état final pour toujours

Noeud de terminaison

§ Pseudo-état

§ Termine la machine d'état

§ L'objet modélisé cesse d'exister (= deleted)

17
Nœud de décision
§ Pseudo état

§ Utilisé pour modéliser des transitions alternatives

equivalent?

equivalent?

18
Exemple : Nœud de décision

19
Nœud de parallélisation et de
synchronisation
Parallelisation node

§ Pseudo-état

§ Divise le flux de contrôle en plusieurs flux concurrents

§ 1 arête entrante

§ >1 arêtes sortantes

Synchronisation node

§ Pseudo-état

§ Fusionne plusieurs flux concurrents

§ >1 arêtes entrantes

§ 1 arête sortante

20
Etat Composite
§ Synonymes : état complexe, état imbriqué

§ Contient d'autres états – « sous-états »


§ Un seul de ses sous-état est actif à un instant donné

§ Profondeur d'imbrication arbitraire des sous-états

Etat Composite

Sous-état
21
Entrée dans un état Composite(1/2)
§ Transition vers la frontière Event Etat Activités
Exécutées
§ Le nœud initial de l'état
composite est activé ‘’Beginning“ S3

e2 S1/S1.1 a0-a2-a3-a4

22
Entrée dans un état Composite(2/2)
§ Transition à sous-état Event State Activités
Exécutées
§ Sous-état est activé
‘‘Beginning“ S3

e1 S1/S1.2 a0-a1-a3-a7

23
23
Sortie d‘un état Composite (1/3)
§ Transition d'un sous-état Event Etat Activités
Exécutées
‘‘Beginning“ S1/S1.1 a3-a4

e3 S2 a6-a5-a2-a1

24
Sortie d‘un état Composite(2/3)
§ Transition d‘un état composite Event State Activités
Exécutées
Quel que soit le sous-état „Beginning“ S1/S1.1 a3-a4
actif de S1, dès que e5 se
produit, le système passe e5 S2 a6-a5-a3-a1
à S2

25
Sortie d‘un état Composite(3/3)
§ Transition d‘achèvement Event State Activités
d‘un état composite Exécutées
‘‘Beginning“ S1/S1.1 a3-a4

e4 S1/S1.2 a6-a7

e4 S2 a8-a5-a1

26
Etat Orthogonal
§ L'état composite est divisé en deux ou plusieurs régions séparées
par une ligne pointillée

§ Un état de chaque région est toujours actif à tout moment, c'est-


à-dire des sous-états concurrents

§ Entrée : la transition à la frontière de l'état orthogonal active les


états initiaux de toutes les régions

§ Sortie : l'état final doit être atteint dans toutes les régions pour
déclencher l'événement d'achèvement

Utilisation du nœud de
parallélisation et de
synchronisation pour
entrer dans différents
sous-états

27
Submachine State (SMS)
§ Pour réutiliser des parties de diagrammes de machine d'état
dans d'autres diagrammes de machine d'état
§ Notation : state:submachineState
§ Dès que l'état de la sous-machine est activé, le comportement
de la sous-machine est exécuté
§ Correspond à l'appel d'un sous-programme dans les langages de
programmation

Symbole de raffinement
(optionel)

28
Etat d’Historique
§ Se souvient quel sous-état d'un état composite était le dernier actif

§ Active le sous-état « old » et toutes les activités d'entrée sont


menées de manière séquentielle de l'extérieur vers l'intérieur de
l'état composite

§ Exactement une arête sortante de l'état de l'historique pointe vers


un sous-état qui est utilisé si
§ l'état composite n'a jamais été actif auparavant
§ l'état composite a été quitté via l'état final

§ L'état d'historique peu profond restaure l'état qui est au même


niveau que l'état composite

§ L'état de l'historique profond restaure le dernier sous-état actif sur


toute la profondeur d'imbrication

29
Exemple : Etat d’Historique (1/4)

Event Etat

‘‘Beginning“ S5

e1 S4/S1/S1.1

e2 S1.2

e10 S5

e9 (H→) S1/S1.1

30
Exemple : Etat d’Historique (2/4)

Event Etat

‘‘Beginning“ S5

e1 S4/S1/S1.1

e2 S1.2

e10 S5

e8 (H*→) S1.2

31
Exemple : Etat d’Historique (3/4)

Event Etat

‘‘Beginning“ S5

e9 (H→) S1/S1.1

32
Exemple : Etat d’Historique (4/4)

Event Etat

‘‘Beginning“ S5

e8 (H*→) S3/S3.1

33
Points d‘entrée et sorties
§ Mécanisme d'encapsulation
§ Un état composite doit être entré ou sorti via un état autre que les
états initial et final
§ La transition externe ne doit pas (/n’a pas besoin de) connaître la
structure de l'état composite

External view

34
Exemple : Points d‘entrée et sorties

35
Notation Elements (1/2)
Name Notation Description
Description d'un « intervalle de
temps » spécifique dans lequel se
trouve un objet au cours de son
State
« cycle de vie ». Dans un état, les
activités peuvent être exécutées
par l'objet.
Transition d'état e d'un état source
Transition
S à un état cible T

Début d'un diagramme de


Initial state
machine d'état
Fin d'un diagramme de machine
Final state
d'état

Terminaison du diagramme de la
Terminate node
machine à états d'un objet

36
Notation Elements (2/2)
Name Syntax Beschreibung
Nœud à partir duquel plusieurs
Decision node transitions alternatives peuvent
provenir

Fractionnement d'une transition en


Parallelisation node
plusieurs transitions parallèles

Synchronisation Fusion de plusieurs transitions


node parallèles en une seule transition

« Adresse de retour » vers un sous-


Shallow / deep
état ou un sous-état imbriqué d'un
history state
état composite

37

Vous aimerez peut-être aussi