Vous êtes sur la page 1sur 39

Université Hassan 1er

Faculté des Sciences et Techniques


-Settat-

Département : Mathématiques & Informatique


Filière : Licence Génie Informatique
Module : Génie logiciel et UML

Chapitre 7 : Diagramme d’états-transitions

Prof. Said El Kafhali

Département Mathématiques & Informatique


Faculté des Sciences et Techniques, Settat
Université Hassan 1er

Année Universitaire : 2021/2022


Année Universitaire : 2021/2022
Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions 1 / 39
Plan

1 Présentation de diagramme d’états-transitions

2 Les états composites

3 Les états historiques

4 Les interfaces de conexion et états concurrents

5 Exercices corrigés

6 Références

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions 2 / 39
Présentation de diagramme d’états-transitions

Objectifs de diagramme d’états-transitions

Les diagrammes d’états-transitions permettent de décrire changements


d’états d’un objet ou d’un composant, en réponse aux interactions
avec d’autres objets/composants ou avec des acteurs.
Ce sont les diagrammes les plus parlant pour les aspects dynamiques
du système.
Ils ne concernent que le cycle de vie d’une classe d’objets.
Il s’agit de graphes dont les états sont les nœuds, les flèches sont les
transitions, portant des paramètres et des noms d’évènements. Un
événement cause une transition.
L’état d’un objet c’est la valeur de ses attributs et la nature de ses
relations avec les autres objets. C’est une durée séparé par deux
événements.
Un message est un événement impliqué dans l’interaction de deux
objets.
Année Universitaire : 2021/2022
Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions 3 / 39
Présentation de diagramme d’états-transitions

Éléments représentés

Le diagramme état-transition manipule plusieurs concepts :


État : configuration particulière des valeurs des attributs d’un objet
pendant une certaine durée. Un état dépend de l’état précédent et de
l’événement survenu.
Évènement : Fait (externe) survenu qui déclenche une transition
(changement d’états). Peut être réflexif et conduire au même état.
Conduit à l’appel d’une méthode de la classe de l’objet.
Transition : passage d’un état à un autre. Peut être nommé par un
événement.
Garde : Conditions ou fonctions booléennes associées à une transition.
Une transition gardée ne peut être effectuée que si le gardien est
vérifié. Un gardien est représenté entre crochets.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions 4 / 39
Présentation de diagramme d’états-transitions

Convention graphique : État

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions 5 / 39
Présentation de diagramme d’états-transitions

Quelques définitions

Le nom de l’état doit être unique dans le diagramme


d’étatstransitions, ou dans l’état enveloppant.
Un état peut être partitionné en plusieurs compartiments séparés par
une ligne horizontale.
Un objet peut passer par une série d’états pendant sa durée de vie.
Un état représente une période dans la vie d’un objet pendant laquelle
ce dernier attend un événement ou accomplit une activité.
Dans le cas d’un diagramme d’états-transitions simple (sans transition
concurrente), il ne peut y avoir qu’un seul état actif à la fois.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions 6 / 39
Présentation de diagramme d’états-transitions

Notion d’évènement

Un événement se produit à un instant précis et est dépourvu de durée.


La provenance de l’évènement peut être aussi bien interne, qu’externe
au système.
Quand un événement est reçu, une transition peut être déclenchée et
faire basculer l’objet dans un nouvel état.
On peut diviser les événements en plusieurs types explicites et
implicites :
Evénement de type signal,
Evénement de type Appel,
Evénement de type Changement,
Evénement de type Temporel.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions 7 / 39
Présentation de diagramme d’états-transitions

Evénements appel et signal

Un appel de méthode sur l’objet courant génère un événement de type


call. Les événements de type call sont des méthodes déclarées au
niveau du diagramme de classes.
La réception d’un signal asynchrone, explicitement émis par un autre
objet, génère un événement de type signal.
Les signaux sont déclarés par la définition d’une classe portant le
stéréotype signal, ne fournissant pas d’opérations, et dont les attributs
sont interprétés comme des arguments.
Un événement de type call ou signal est déclaré ainsi :
nomEvenement (params)
Chaque paramètre a la forme :
param : ClasseParam

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions 8 / 39
Présentation de diagramme d’états-transitions

Événement signal : exemple

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions 9 / 39
Présentation de diagramme d’états-transitions

Evénement change

Le passage de faux à vrai de la valeur de vérité d’une condition


booléenne génère implicitement un événement de type change. Il
s’agit d’attendre qu’une condition soit satisfaite.
Un événement de type change est introduit de la façon suivante :
when (conditionBooleenne)
Il prend la forme d’un test continu et se déclenche potentiellement à
chaque changement de valeurs des variables intervenant dans la
condition.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions10 / 39
Présentation de diagramme d’états-transitions

Condition de garde vs événement change

Différence entre une condition de garde et un événement de


changement.
Une condition de garde est évaluée une fois que l’événement
déclencheur de la transition a lieu et que le destinataire le traite. Si elle
est fausse, la transition ne se déclenche pas et la condition n’est pas
réévaluée.
Un événement de changement est évalué continuellement jusqu’à ce
qu’il devienne vrai, et c’est à ce moment-là que la transition se
déclenche.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions11 / 39
Présentation de diagramme d’états-transitions

Evénement after ou when


L’écoulement d’une durée déterminée après un événement donné
génère un événement de type after. le temps commence à s’écouler
dès l’entrée dans l’état courant.
Ils sont spécifiés :
soit de manière absolue (date précise),
soit de manière relative (temps écoulé).
Syntaxe d’un événement temporel relatif : after (<durée>)
Un événement temporel spécifié de manière absolue est défini en
utilisant un événement de changement.
Syntaxe d’un événement temporel absolu : when(date= <date>)

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions12 / 39
Présentation de diagramme d’états-transitions

Transition
Une transition entre deux états est représentée par un arc qui les lie
l’un à l’autre.
Un même événement peut être le déclencheur de plusieurs transitions
quittant un même état.
Chaque transition avec le même événement doit avoir une condition de
garde différente.
Sa syntaxe est la suivante :
nomEvenement (params) [ garde ] / activite

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions13 / 39
Présentation de diagramme d’états-transitions

Exemple 1 : états de feu de signalisation

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions14 / 39
Présentation de diagramme d’états-transitions

Exemple 2 : Classe Personne

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions15 / 39
Présentation de diagramme d’états-transitions

Action dans un état

Les actions propres à un état peuvent aussi être documentées


directement à l’intérieur de l’état.
UML définit un certain nombre de champs qui permettent de décrire
les actions dans un état :
entry / action : action exécutée à l’entrée de l’état.
exit / action : action exécutée à la sortie de l’état.
on événement / action : action exécutée à chaque fois que l’événement
cité survient.
do / action : action récurrente ou significative, exécutée dans l’état.
Include : permet d’ invoquer un sous-diagramme d’étatstransitions.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions16 / 39
Présentation de diagramme d’états-transitions

Formalisme et exemple

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions17 / 39
Présentation de diagramme d’états-transitions

Point de décision

Permettent de représenter des partages de transitions ou des


alternatives pour le franchissement d’une transition.
On utilise deux mécanismes :
Points de choix (losange) : pour choisir une ou une autre transition.
Points de jonction (petit cercle plein) : pour partager des segments de
transition.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions18 / 39
Présentation de diagramme d’états-transitions

Point de choix

Le point de choix se comporte comme un test de type : si condition


faire action1 sinon faire action2.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions19 / 39
Présentation de diagramme d’états-transitions

Point de jonction
Lorsque l’on veut relier plusieurs états vers d’autres états, un point de
jonction permet de décomposer une transition en deux parties en
indiquant si nécessaire les gardes propres à chaque segment de la
transition.
À l’exécution, un seul parcours sera emprunté, c’est celui pour lequel
toutes les conditions de garde seront satisfaites.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions20 / 39
Présentation de diagramme d’états-transitions

Simplification sans les points de jonction


Pour emprunter un chemin, toutes les gardes le long de ce chemin
doivent s’évaluer à vrai dès le franchissement du premier segment.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions21 / 39
Présentation de diagramme d’états-transitions

Simplification avec les points de jonction


L’objectif est d’obtenir une notation plus compacte ou plus lisible des
chemins alternatifs.
Un point de jonction peut avoir plusieurs segments de transition
entrante et plusieurs segments de transition sortante.
Il ne peut avoir d’activité interne ni de transitions sortantes dotées de
déclencheurs d’événements.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions22 / 39
Les états composites

État composite
Un état composite est un état décomposé en régions contenant
chacune un ou plusieurs sous-états.
Un état composite est représenté comme un état simple, sauf que les
sous états sont contenus dans le compartiment inférieur.

Une notation abrégée permet d’indiquer qu’un état est composite et


que sa définition est donnée sur un autre diagramme.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions23 / 39
Les états composites

Point d’entrée et de sortie

Sur une sous-machine d’état ( état composite), il est possible de


repérer un point d’entrée et un point de sortie particuliers.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions24 / 39
Les états composites

État composite : transition

Les transitions peuvent avoir pour cible la frontière d’un état


composite. Elles sont é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 : la transition est franchissable depuis tout
état imbriqué, quelle que soit sa profondeur.
Si la transition ayant pour source la frontière d’un état composite ne
porte pas de déclencheur explicite (transition d’achèvement), elle est
franchissable quand l’état final de l’état composite est atteint.
Les transitions peuvent également toucher des états de différents
niveaux d’imbrication en traversant les frontières des états composites.
Année Universitaire : 2021/2022
Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions25 / 39
Les états composites

État composite :transition (exemple)

Depuis l’état État 1, la réception de l’événement event1 produit la


séquence d’activités: QuitterE11, QuitterE1, action1, EntrerE2,
EntrerE21, initialiser(), EntrerE22, et place le système dans l’état
État22.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions26 / 39
Les états historiques

État historique

Un état historique, également qualifié «d’état historique plat» est un


pseudo-état qui mémorise le dernier sous-état actif d’un état
composite.
Graphiquement, il est représenté par un cercle contenant un H.
Une transition ayant pour cible l’état historique est équivalente à une
transition qui a pour cible le dernier état visité de l’état englobant.
Il est possible de définir un état historique profond représenté
graphiquement par un cercle contenant un H*.
Cet état historique profond permet d’atteindre le dernier état visité
dans la région, quel que soit sont niveau d’imbrication, alors que l’état
historique plat limite l’accès aux états de son niveau d’imbrication.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions27 / 39
Les états historiques

État historique : exemple

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions28 / 39
Les états historiques

État historique profond : exemple

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions29 / 39
Les interfaces de conexion et états concurrents

Interface : points de connexion

Il est possible de masquer les sous-états d’un état composite et de les


définir dans un autre diagramme.
Cette pratique nécessite parfois l’utilisation de pseudo-états appelés
points de connexion.
Avec un × pour les points de sortie.
Vides pour les points d’entrée.
Le problème des points de connexion se pose lorsqu’il est possible
d’entrer ou de sortir d’un état composite de plusieurs façons.
C’est, par exemple, le cas lorsqu’il existe des transitions traversant la
frontière de l’état composite et visant directement, ou ayant pour
source, un sous-état de l’état composite.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions30 / 39
Les interfaces de conexion et états concurrents

Interface : points de connexion (exemple)

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions31 / 39
Les interfaces de conexion et états concurrents

État concurrent

Les diagrammes d’états-transitions permettent de décrire efficacement


des mécanismes concurrents grâce à l’utilisation d’états orthogonaux.
Un état orthogonal est un état composite comportant plus d’une
région.
Chaque région représentant un flot d’exécution.
Les différentes régions sont séparées par un trait horizontal en pointillé
allant du bord gauche au bord droit de l’état composite.
Chaque région peut posséder un état initial et final.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions32 / 39
Les interfaces de conexion et états concurrents

État concurrent : exemple

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions33 / 39
Les interfaces de conexion et états concurrents

Transitions concurrentes complexes

Deux transitions particulières : fork et join.


La 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.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions34 / 39
Exercices corrigés

Exercice 1

Dessinez un diagrammes d’état/transition résumant les états possibles


d’un objet “contrat” tel que décrit dans l’énnoncé suivant.
Un ensemble de personnes décident d’établir un contrat. Pour ce faire elles
rédigent un projet par itération successive. Le contrat est ensuite
informellement accepté par les parties, et devient ce que l’on appelle un
pré-accord. A ce stade il peut toujours être l’objet de modification et
revenir à l’état de projet. Une fois le pré-accord définitivement établi, le
contrat est signé par les parties. Dès ce moment les partenaires sont liés.
Une fois signé le contrat peut être rendu exécutoire par une décision d’une
des parties. Un contrat en execution peut faire l’objet de discussions qui
sont réglées par un arbitre désigné à cet effet. Le contrat une fois exécuté
prend fin.

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions35 / 39
Exercices corrigés

Corrigé de l’exercice 1

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions36 / 39
Exercices corrigés

Exercice 2

Soit à représenter le diagramme d’état-transition d’un objet personnel en


suivant les événements de gestion depuis le recrutement jusqu’à la mise en
retraite. Après le recrutement, une personne est considérée en activité dès
sa prise de fonction dans l’entreprise. Au cours de sa carrière, nous
retiendrons seulement les événements : congé de maladie et prise de congé
annuel. En fin de carrière, nous retiendrons deux situations : la démission
et la retraite.
Dessinez le diagrammesd’état/transition .

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions37 / 39
Exercices corrigés

Corrigé de l’exercice 2

Année Universitaire : 2021/2022


Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions38 / 39
Références

Références
1 Pascal Roques, UML 2 par la pratique: études de cas et exercices
corrigés, Groupe Eyrolles.
2 Xavier Blanc Isabelle Mounier, UML 2 pour les développeurs: Cours
avec exercices corrigés, Groupe Eyrolles, Code éditeur : G12029 •
ISBN : 2-212-12029-X.
3 Pierre Gérard, Introduction à UML 2: Modélisation Orientée Objet de
Systèmes Logiciels, Cours DUT Informatique S2D, Université de Paris
13 IUT Villetaneuse.
4 G. BOOCH, J. RUMBAUGH et Y. JACOBSON, Le guide de
l’utilisateur UML , (Eyrolles, 2000).
5 P. A. MULLER et N. GAERTNER, Modélisation objet avec UML ,
(Eyrolles, 2000).
6 Pierre-Alain Muller and Nathalie Gaertner. Modélisation objet avec
UML. Eyrolles, 2è edition, 2003.
7 James Rumbaugh et al. Modélisation et conception orientée objet.
Masson, 1994. Année Universitaire : 2021/2022
8 Prof. Said El Kafhali Chapitre 7 : Diagramme d’états-transitions39 / 39

Vous aimerez peut-être aussi