Vous êtes sur la page 1sur 38

Chapitre IV

Diagramme d’Etats Transitions

Cours

Mohammed BEKKALI
mohammed.bekkali@um5.ac.ma
ENSAM-Rabat
Université Mohamed V
Diagramme d’Etat Transition
Sommaire
◦ Présentation du diagramme
◦ Les états
◦ Les transitions / événements
◦ Les actions / activités
◦ Les points de décision
◦ Les états composite
◦ Exemples de synthèse

LE LANGAGE UML – [ M. BEKKALI ] 2


Diagramme d’Etat Transition
Principe
Description
◦ Les diagrammes d'états-transitions d'UML décrivent le comportement interne d'un objet à l'aide d'un
automate à états finis.
◦ Ils présentent les séquences possibles d'états et d'actions qu'une instance de classe peut traiter au
cours de son cycle de vie en réaction à des événements discrets (de type signaux, invocations de
méthode).
◦ Ils offrent une vision complète et non ambiguë de l’ensemble des comportements d’une instance d’une
classe.
◦ Ils utilisent des automates déterministes à états-finis :
◦ un graphe oriente
◦ déterministe : il y a toujours un chemin d’un état initial vers un état final
◦ états-finis : le nombre d’états est fini

LE LANGAGE UML – [ M. BEKKALI ] 3


Diagramme d’Etat Transition
Principe
Description
◦ Les concepts de base d’un diagramme d’état transition sont:
◦ Les états
◦ Les transitions
◦ Les événements
◦ Les activités et les actions
◦ ….
◦ Seules les classes ayant un cycle de vie significatif nécessitent le recours au diagramme états-transitions, par
exemple:
◦ Livre (emprunte, disponible, réservé ...) et Emprunteur (autorisé, bloque, sanctionné ...) dans un système de gestion de bibliothèque
◦ Article (disponible, vendu, livré...) dans un système de vente et achat en ligne

LE LANGAGE UML – [ M. BEKKALI ] 4


Diagramme d’Etat Transition
Exemple
Premier Exemple
◦ Un exemple simple d'automate à deux états finis d’un objet de la classe Lampe (Allumé et Éteint) , et deux
transitions correspondant au même événement : la pression sur un bouton d'éclairage domestique.
◦ Lorsque l'on appuie sur un bouton d'éclairage, la réaction de l'éclairage associé dépendra de son état
courant (de son historique) :
◦ si la lumière est allumée, elle s'éteindra,
◦ si elle est éteinte, elle s'allumera.

Allumé

pression pression

Éteint

LE LANGAGE UML – [ M. BEKKALI ] 5


Diagramme d’Etat Transition
Remarques
◦ Un diagramme d’états-transitions n’offre pas une vision globale car il ne s’intéresse qu’à un seul élément du
système modélisé.

◦ Si les diagrammes de séquences regroupent tous les objets impliqués dans un unique cas d’utilisation, les
diagrammes d’états indiquent tous les changements d’états d’un seul objet à travers l’ensemble des cas
d’utilisation dans lequel il est impliqué.

◦ Les diagrammes d’états identifient pour une classe donnée le comportement d’un objet tout au long de son
cycle de vie (de la naissance ou état initial, à la mort ou état final).

LE LANGAGE UML – [ M. BEKKALI ] 6


Diagramme d’Etat Transition
Les états
 Définition
◦ L’état d'un objet est lié aux valeurs de ses variables d'instances et de ses interactions avec les autres objets.
◦ C’est-à-dire que un état, est toujours la conjonction instantanée des valeurs contenues par les attributs de
l’objet, et la présence ou non des liens, de l’objet considéré vers d’autres objets
◦ Un objet passe dans un état donné par un événement qui modifie ses variables, et quitte cet état par un
autre événement qui les modifie à nouveau. Ce sont des transitions d'états.
◦ Graphiquement,
◦ Un état est représenté par des rectangles aux coins arrondis
◦ Une transition est représentée par un arc orienté liant un états avec un autre.

LE LANGAGE UML – [ M. BEKKALI ] 7


Diagramme d’Etat Transition
Les états
 Exemple
◦ Le diagramme de classe suivants représente des personnes qui travaillent pour des sociétés

Societe 0..1 1..* Personne


- age : boolean
◦ Les trois états possible d’une personne sont :

En activité En chômage A la retraite

◦ Pour connaitre l’état d’une personne à un moment bien déterminé, il faut étudier la conjonction suivante:
◦ L’âge de la personne
◦ La présence d’un lien vers société

LE LANGAGE UML – [ M. BEKKALI ] 8


Diagramme d’Etat Transition
Les états
 Exemple (suite)
◦ Dans le diagramme d’objet suivant :
:Pers1
Age : 30 ans
:Pers2
:Société-X
Age : 40 ans
:Pers3
Age : 75 ans

◦ Il y a pas de lien entre Pers1, âgé de 30 ans, et une société : Pers1 est donc en chômage.
◦ Pers2, quant à lui, possède un lien vers une société et est âgé de 40 ans : Pers2 est donc en activité.
◦ Pers3, enfin, ne possède pas de lien vers une société et est âgé de 75 ans : Pers3 est donc à la retraite.

LE LANGAGE UML – [ M. BEKKALI ] 9


Diagramme d’Etat Transition
Les type d’états
 On distingue :
◦ L'état initial, qui indique l'état de départ du diagramme d'états-transitions. Lorsqu'un objet est créé, il entre
dans l'état initial.
◦ L’état courant, qui indique les étapes intermédiaires durant le cycle de vie de l'objet.
◦ L'état final, qui indique que le diagramme d'états-transitions est terminé. Lorsqu’un objet est détruit

 Représentation graphique

État Courant

État initial État final

LE LANGAGE UML – [ M. BEKKALI ] 10


Diagramme d’Etat Transition
Les Transitions / Événements
 Transition
◦ Une transition est le passage d’un état à un autre
◦ Un événement est un fait qui déclenche le changement d’état
◦ La provenance de l’événement peut être aussi bien interne, qu’externe au système
◦ Les transitions ne relient pas nécessairement des cas distincts. Un cas particulier des transitions, c’est lorsque la
transition est d’un état vers lui-même (Transition Réflexive ou Auto-Transition)
◦ La syntaxe générale d’un événement est : nomEvenement (para1 : Type, para2 : Type, … )

 Représentation graphique

Événement
Événement 2
État 1 État 2
1

LE LANGAGE UML – [ M. BEKKALI ] 11


Diagramme d’Etat Transition
Les Transitions / Événements
 Exemple 1
◦ Dans un système de gestion de bibliothèque, voici les états d’un objet de la classe Livre (libre, réservé, et prêté)
avec les transitions possibles:

poubelle
Livre libre

libération livre rendu


réservation emprunt

emprunt
Livre réservé Livre prêté

LE LANGAGE UML – [ M. BEKKALI ] 12


Diagramme d’Etat Transition
Les Transitions / Événements
 Exemple 2
◦ Dans un système de gestion d’activité professionnelle, voici les états possibles d’un objet de la classe Personne
(chômage, activité, formation, et retraite) avec les transitions possibles :

Au chômage

embauche perte
d’emploi
manque de
compétence > 60
En formation En activité En retraite
validation de
compétence

LE LANGAGE UML – [ M. BEKKALI ] 13


Diagramme d’Etat Transition
Les Transitions / Événements
 Remarques :
◦ Contrairement aux états qui durent, un événement est par nature une information instantanée qui doit être
traitée sans plus attendre.

◦ Un événement sert de déclencheur pour passer d’un état à un autre. Les transitions indiquent le chemin dans le
graphe des états. Les événements déterminent quels chemins doivent être suivis.

◦ Les événements, les transitions et les états sont indissociables dans la description du comportement dynamique.
Un objet, placé dans un état donné, attend l’occurrence d’un événement pour passer dans un autre état.

LE LANGAGE UML – [ M. BEKKALI ] 14


Diagramme d’Etat Transition
Les Types d'événements
 On distingue :
◦ Événement signal : réception d'un message asynchrone
◦ Événement d’appel : appel d'une opération (synchrone), liée aux cas d'utilisation, opération du diagramme de
classes...
◦ Événement de changement : Satisfaction d'une condition booléenne sur des valeurs d’attributs, when(cond),
évaluée continuellement jusqu'à ce qu'elle soit vraie (et non pas une seule fois comme une garde pour
déclencher la transition ou non)
◦ Événement temporel : sont générés par le passage du temps. Par défaut, le temps commence à s'écouler dès
l'entrée dans l'état courant.
◦ Date absolue : when(date = date)
◦ Date relative : after(durée)

LE LANGAGE UML – [ M. BEKKALI ] 15


Diagramme d’Etat Transition
Les Gardes
 Définition
◦ Une garde est une condition booléenne qui valide ou non le déclenchement d’une transition lors de l’occurrence
d’un événement.
◦ Graphiquement, une garde est en dessus de la flèche représentant la transition, sous forme d’une comparaison

Événement [Garde]
État 1 État 2

 Exemples
◦ L’événement anniversaire fait passer la personne de l’état Mineur à l’état Majeur, si l’âge est 18 ans,
Anniversaire [age = 18]
Mineur Majeur

◦ La commande n'est expédiée que si la commande comporte au moins 3 produits.


Expédition [nbProduitsCommandes > 2]
En préparation En attente
LE LANGAGE UML – [ M. BEKKALI ] 16
Diagramme d’Etat Transition
Les Actions / Activités
 Action
◦ Une action sur une transition est un traitement exécuté lorsque la transition est déclenchée.
◦ L’action à accès aux paramètres de l ’événement, ainsi qu’aux attributs de la l’objet.
◦ Une action (ponctuelle) est attachée à une transition. Elle se caractérise par un traitement bref et atomique, elle n’a
pas de durée.
◦ Une action ne peut pas être interrompue par un événement et s’accomplit.

 Représentation Graphique

État 1 Événement / Action État 2


 Exemple
◦ Affectation, Envoi d'un signal, Création ou Destruction d'un objet

LE LANGAGE UML – [ M. BEKKALI ] 17


Diagramme d’Etat Transition
Les Actions / Activités
 Activité
◦ Contrairement à une action, une activité est une opération qui prend du temps d’exécution, et peut être
interrompue par l’arrivée d’un événement.
◦ Trois activités particulières sont introduits : entry/, do/, et exit/, permettant de définir une Transition Interne.
◦ « entry » définit une activité à effectuer à chaque fois que l'on rentre dans l'état considéré.
◦ « exit » définit une activité à effectuer quand on quitte l'état.
◦ « do » définit une activité continue qui est réalisée tant que l'on se trouve dans l'état, ou jusqu'à ce que le calcul associé soit terminé.

 Exemple

SaisieMotPasse
entry / set echo invisible
do / afficher aide
exit / set echo normal

LE LANGAGE UML – [ M. BEKKALI ] 18


Diagramme d’Etat Transition
Les Actions / Activités
 Remarque
◦ Une activité interne (do) n’entraine pas l’exécution des activité d’entrée et de sortie, contrairement au
déclenchement d’une transition réflexive.

 Exemple
◦ Les deux états A et B ne sont pas équivalents

m1 / activité

A B
entry / activité d’entrée entry / activité d’entrée
m1 / activité exit / activité de sortie
exit / activité de sortie

LE LANGAGE UML – [ M. BEKKALI ] 19


Diagramme d’Etat Transition
Les Points de Décision
 Point de décision
◦ On peut représenter des alternatives pour le franchissement d'une transition.

◦ Les points de jonction (petit cercle plein) permettent de partager des segments de transition.
 Ils ne sont que des raccourcis d'écriture.
 Ils permettent des représentations plus compactes.

◦ Les points de choix (losange) sont plus que des raccourcis d'écriture.

LE LANGAGE UML – [ M. BEKKALI ] 20


Diagramme d’Etat Transition
Les Points de Décision
 Point de jonction
◦ Un point de jonction permet de factoriser des segments de transition.
◦ Objectif : aboutir à une notation plus compacte ou plus lisible des chemins alternatifs.

 Exemple : Les deux diagrammes suivants sont équivalents

e1 [a >0 and b < 0] [b > 0]


État 1 État 3 État 1 e1 [a >0] État 3

[b = 0]
État 4 État 4

[b < 0]
État 2 État 5 État 2 e2 [a >0] État 5
e2 [a >0 and b > 0]

LE LANGAGE UML – [ M. BEKKALI ] 21


Diagramme d’Etat Transition
Les Points de Décision
 Point de choix
◦ Un point de choix possède une entrée et au moins deux sorties.
◦ Les gardes situées après le point de décision sont évaluées au moment où il est atteint.
◦ Une fois le point de choix atteint au moins un chemin doit être franchissable.
◦ Contrairement aux points de jonction, les points de choix ne sont pas de simples raccourcis d'écriture.

 Exemple

[Voice] Création d’un


message Vocal
Sélectionner le [SMS] Création d’un
type de message message SMS
[Fax] Création d’un
message FAX

LE LANGAGE UML – [ M. BEKKALI ] 22


Diagramme d’Etat Transition
Les Etats Composites
 État Composite
◦ Un état composite, par opposition à un état dit « simple », est décomposé en deux ou plusieurs sous-états.
◦ Tout état ou sous-état peut ainsi être décomposé en sous-états imbriqués sans limite a priori de profondeur.
◦ Un état composite est représenté par les deux compartiments de nom et d'actions internes habituelles, et par un compartiment contenant le sous-
diagramme.
◦ L’utilisation des états composite facilite la représentation et permet d’occulter les détails

 Représentation Graphique

E1 E1
A B A B
E2 E2 E2
C C

LE LANGAGE UML – [ M. BEKKALI ] 23


Diagramme d’Etat Transition
Les Etats Composites
 Exemple Diagramme d’état d’un vidéoprojecteur
◦ Les états possibles sont : Branché, Débranché, étain, Connecté, et Allumé)

Branché

Brancher
Débranché Éteint Power

Power Power
Allumé
Déconnecter
Débrancher
Connecté Connecter

LE LANGAGE UML – [ M. BEKKALI ] 24


Diagramme d’Etat Transition
États Composites & États Initiaux / Finaux
 Remarques

◦ Les transitions peuvent avoir pour cible la frontière d'un état composite. Elle sont alors équivalentes à une transition
ayant pour cible l'état initial de l'état composite.

◦ Une transition ayant pour source la frontière d'un état composite est équivalente à une transition qui s'applique à
tout sous-état de l'état composite source.

◦ Cette relation est transitive et peut traverser plusieurs niveaux d'imbrication.

LE LANGAGE UML – [ M. BEKKALI ] 25


Diagramme d’Etat Transition
États Composites & États Initiaux / Finaux
 Exemple : Diagramme d’état d’un individu majeur qui peut se marier

Vivant

Majeur

[Age >= 18] Se marier Décès conjoint


Mineur Célibataire Marié
Power Veuf
Se marier

Divorcer Se marier

Divorcé

Décéder
Décédé

LE LANGAGE UML – [ M. BEKKALI ] 26


Diagramme d’Etat Transition
États Composites et Transitions Internes
 États Composites et Transitions Internes (Ordre d’exécution)
◦ Dans l’exemple suivant, depuis Etat11, quand event1 survient
◦ On produit la séquence d'activités quitterE11, quitterE1, action1, entrerE2, entrer21, initialiser, entrer22
◦ L'objet se trouve alors dans Etat22.

Etat 2
Etat 1
Etat 21
Etat 11
event1 / action1 initialiser() Etat 22
exit / quitterE11
entry / entreeE22

exit / quitterE1 entry / entreeE21


entry / entreeE2

LE LANGAGE UML – [ M. BEKKALI ] 27


Diagramme d’Etat Transition
État Historique
 État Historique
◦ Une transition ayant pour cible le état historique est équivalente à une transition qui a pour cible le dernier état
visité dans la région contenant le H.

◦ Un état historique est noté par un H cerclé. H

◦ H* désigne un historique profond, c’est à dire un historique valable pour tous les niveaux d'imbrication. H*

LE LANGAGE UML – [ M. BEKKALI ] 28


Diagramme d’Etat Transition
État Historique
 Exemple : Diagramme d’état d’une machine à laver
◦ Les états possible sont : Lavage, Rinçage, Filage, et Éteinte

En marche

Lavage Rinçage Filage

rétablir le coupure de
courant courant
Éteint

LE LANGAGE UML – [ M. BEKKALI ] 29


Diagramme d’Etat Transition
État Concurrent
 État Concurrent
◦ Un objet peut alors être simultanément dans plusieurs états concurrents.
◦ Avec un séparateur en pointillés, on peu représenter plusieurs automates s'exécutant indépendamment.
◦ Chaque région peut posséder un état initial et final.
◦ Une transition qui atteint la bordure d’un état composite orthogonal est équivalente à une transition qui atteint les
états initiaux de toutes ses régions concurrentes
◦ Toutes les régions concurrentes d’un état composite orthogonal doivent atteindre leur état final pour que l’état
composite soit considéré comme terminé.

LE LANGAGE UML – [ M. BEKKALI ] 30


Diagramme d’Etat Transition
État Concurrent
 Exemple : Diagramme d’état d’un distributeur automatique de boissons
◦ Les états possible sont : Préparer Boisson, Terminer Préparation, et Rendre Monnaie

BoissonSelectionnee

PreparerBoisson TerminerPréparation
entry / placerGoblet () do / ajouterSucre ()
do / servirLiquide () exit / signalSonore()

RendreMonnaie
entry / monnaie = credit – boisson.prix()
do / monnayeur.rendre(monnaie)

LE LANGAGE UML – [ M. BEKKALI ] 31


Diagramme d’Etat Transition
Transition Concurrente
 Transition Concurrente
◦ Une transition fork correspond à la création de deux états concurrentes.
◦ Une transition join correspond à une barrière de synchronisation qui supprime la concurrence.
◦ Pour pouvoir continuer leur exécution, toutes les tâches concurrentes doivent préalablement être prêtes à
franchir la transition.

 Exemple

PreparerBoisson TerminerPréparation
entry / placerGobelet () do / ajouterSucre ()
do / servirLiquide () exit / signalSonore() GobeletBloque
Nominal do / afficher («Retirer Boisson»)
RendreMonnaie
entry / monnaie = credit – boisson.prix()
do / monnayeur.rendre(monnaie)

[Gobelet Retiré]

LE LANGAGE UML – [ M. BEKKALI ] 32


Exercice 1
 Diagramme d’état transition d’une serrure
◦ Une porte munie d’une serrure offre les opérations ouvrir, fermer, verrouiller, déverrouiller.
◦ La serrure peut être fermée à simple ou à double tour.
◦ Modéliser les états et transitions de la serrure. Mettez en avant les états où la serrure est verrouillée par rapport
aux états où elle ne l’est pas.

 Corrigé
Verrouillée

fermer verrouiller
Déverrouillée Simple Tour Double Tour
ouvrir déverrouiller

LE LANGAGE UML – [ M. BEKKALI ] 33


Exercice 2
 Diagramme d’état transition d’une fenêtre

◦ Une fenêtre peut être dans trois états : réduite, normale, agrandie.

◦ Lorsqu’elle est réduite, elle est représentée par une icône dans la barre des tâches.

◦ À l’état normal, elle peut être déplacée et redimensionnée.

◦ Lorsqu’elle est agrandie, elle occupe toute la surface disponible de l’écran et ne peut être déplacée ou
redimensionnée.

◦ Représentez à l’aide d’un digramme d’état transition le comportement d’une fenêtre.

LE LANGAGE UML – [ M. BEKKALI ] 34


Exercice 2

 Corrigé

Créé

Ouverte
maximiser()
Normale Agrandie
minimiser(
)
dimensionner
positionner()
() H

minimiser() afficher()
Réduite

LE LANGAGE UML – [ M. BEKKALI ] 35


Exercice 3
 Diagramme d’état transition d’une HashSet

◦ ensemble de couples (clé, valeur) avec clés uniques

◦ capacité fixe

◦ taille = nombre de couples présents

◦ ajouter(c,v) : ajoute si clé absente, écrase si clé présente ajout au-delà de la capacité interdit

◦ retirer(c) : retire le couple de clé c s'il existe

◦ Représentez à l’aide d’un digramme d’état transition le comportement d’une HashSet.

LE LANGAGE UML – [ M. BEKKALI ] 36


Exercice 3

 Corrigé

LE LANGAGE UML – [ M. BEKKALI ] 37


Bilan
 Diagramme d’états transitions  État
il répond à deux questions :  L’état d'un objet est lié aux valeurs de ses variables d'instances
et de ses interactions avec les autres objets.
 1) les états possibles que un objet peut prendre
durant son cycle de vie  On distingue entre 3 types d’états: initial, final, ou courant
 2) les transitions entre ces états qui seront  Un état est représenté par un rectangles aux coins arrondis, qui
déclenchées par des événements déclencheurs peut contenir des transitions interne ; ou des sous-états ou
même des sous diagrammes.

Transition
◦ Est le passage entre à un état et un autre / ou vers lui-même, et elle est représenté par une flèche à trait plein
◦ L'événement déclencheur est indiqué à côte de la èche représentant la transition
◦ Une transition peut être ornée d’une condition qui la déclenche (une garde)
◦ Une transition peut avoir plusieurs chemin grâce aux points de choix
◦ Une action est attachée à une transition, c’est un traitement bref et atomique et non interruptible
◦ Une activité est attaché à un état, elle prend du temps d’exécution et peut être interrompue par l’arrivée d’un événement

LE LANGAGE UML – [ M. BEKKALI ] 38

Vous aimerez peut-être aussi