Vous êtes sur la page 1sur 48

Le langage UML

Etats Transitions

MP Nachouki

Département Informatique
Au sommaire

Introduction

les concepts de base

concepts avancés

Guide de construction

Utilisation des diagrammes états-transitions

2
Introduction

3
Introduction
Introduction I

Les diagrammes d’états-transitions sont utilisés pour


représenter le comportement interne de certains des objets
participant au système (classe, cas d’utilisation, composant,
...). Ils sont couramment utilisés pour représenter:

les systèmes embarqués

les spécifications ou implémentations de protocoles

Cette représentation se fait en utilisant le formalisme des


automates d’état fini.
Un automate comprend:

4
Introduction II

des états: qui modélisent une situation dans laquelle l’objet


est placé à un instant précis.
des transitions: qui indiquent comment passer d’un état à
un autre.

5
Intérêt I

Les diagrammes d’états-transitions sont la représentation du


comportement d’une classe en terme d’états.. Ils sont utilisés
pour documenter les classes qui ont :

des états clairement identifiables

un comportement complexe

beaucoup d’événements (signaux)

6
les concepts de base
Le cadre général I

Etat: A tout instant, un état représente l’ensemble des


valeurs instantanées des attributs et des liens
avec les autres objets
Un état est caractérisé par une certaine durée /
stabilité.
Un état est dit actif lorqu’une transition mène
dans cet état. Il devient inactif lorsqu’une
transition le quitte.

7
Le cadre général II

Transition: Connexion unidirectionnelle reliant 2 états


Assure le passage d’un état à l’autre
est supposée instantanée
Une transition peut être réflexive
Evénement: L’événement est le déclencheur d’une transition.
Son nom est écrit à coté de la flèche de transition
Peut être chargé d’information

Exemple: Décrire les différents états d’une lampe munie de


deux boutons poussoirs

8
9
Les états: définition I

Un état est une condition d’existence à un moment donné.


Il peut être:

une caractéristique passive : états de la lampe par
exemple

une caractéristique active : un lecteurDVD peut être dans
l’état ’en lecture’ pendant qu’il lit un DVD.
Les états: définition II
Les états: Formalisme de représentation: I

Un état est décrit par:

état: un rectangle arrondi avec un nom au milieu,


comportement: si l’état est de type ’action’, il peut être
complété par:

une action d’entrée: entry/action,qui
s’exécute dés que l’état devient actif;

do/action

une action de sortie: exit/action,qui
s’exécute juste avant que l’état devienne
inactif;

11
Les états: Formalisme de représentation: II

.Les actions de type entry et exit ne peuvent pas


être interrompues.

12
Les pseudo-états simples I

Les pseudo-états sont des marqueurs spéciaux qui orientent le


flux du trafic dans un diagramme d’états.

Pseudo-état initial: modélise le point de départ du
diagramme
représenté par un cercle concentrique plein

Pseudo-état final: modélise la fin du diagramme
représenté par deux cercles concentriques emboités et
dont le cercle intérieur est plein.

13
Les pseudo-états simples II

14
En résumé

15
Evènement I

Il existe quatre principaux types d’événements

Le signal: (call event) Correspond à la réception d’un


signal asynchrone émis par un autre objet ou par
un acteur.
Ex :" Bouton Souris = down "
Un signal est déclaré dans le diagramme de classes
comme une classe mais en rajoutant le stéréotype
«signal» . Les paramètres éventuels du signal
sont déclarés comme des propriétés de la classe.

16
Evènement II

L’événement sur condition: (change event) Condition


booléenne particulière portant sur des valeurs
d’attributs et dont la valeur passe à VRAI (ne pas
confondre avec une garde)
ex : " le feu est vert "
Syntaxe : when(expression booléenne)

17
Evènement III

L’événement temporel: (time event)


de manière absolue (déclenchement à une date
précise)
Syntaxe : when(date= « expression précise d’une
date »)
ex : when(date=17/10/20200)
de manière relative (déclenchement après une
certaine durée passée dans le nouvel état).
Syntaxe : after(« expression d’une durée »)
ex : " after (30s) "

18
Evènement IV

L’appel d’une opération sur l’objet récepteur (call event)


Appel d’une méthode de l’objet courant par un
acteur ou autre objet ; même syntaxe que
l’événement de type signal. La méthode est
déclarée à l’intérieur de la classe et non dans une
classe stéréotypée signal

19
les transitions: syntaxe I

Une transition est une connexion orientée entre deux états, se


déclenchant lorsque l’événement auquel elle est associée est
reçu par l’objet et provoquant ainsi le passage d’un état vers
l’autre.
Une transition n’a pas de durée, elle est franchie
instantanément (’elle est "déclenchée").
Une transition, représentée par une flèche, constitue un
changement d’état allant d’un état source vers un état cible.
Sa description, notée le long de la flèche, est la suivante:

20
les transitions: syntaxe II

evntdclencheur [garde]/action, objetcible.opration(arg )

garde: condition à respecter pour franchir la transition


action: action exécutée lors du franchissement de la
transition.
L’action correspond à une opération de la classe.

21
les transitions: syntaxe III

22
Transition interne

Une transition interne est une transition qui déclenche une


réaction au sein d’un état, mais ne provoque pas le
changement de l’état de l’objet.
Les transitions internes s’ écrivent sous la forme:
evntdéclencheur[garde] / action, objet cible.opération(arg)
et sont placées dans l’ état.

23
Liens avec diagramme de classes I

Diag. de classes Diag. d’états


Ops publiques évnt faisant changer un objet d’état
Actions en entrée ou en sortie d’un état
Ops privées Action déclenchée par un évnt
Activité au sein d’un état
nom des données manipulées par les actions
Attributs
ou les activités

24
Exemple

Considérons un réveil-matin simplifié :



on peut mettre l’alarme "on " ou " off " (armer ou
désarmer);

quand l’heure courante devient égale à l’heure d’alarme,
le réveil sonne sans s’arrêter

on peut interrompre la sonnerie.

25
Exemple

Vous devez modéliser les états de la vie d’un tamaguchi en


réaction à différents stimuli .

Lorsque l’animal s’anime, il est heureux;

Si l’animal heureux est fâché, il devient triste;

Si l’animal est triste et reçoit un compliment, il devient
heureux

Si l’animal est triste et est puni alors son coeur éclate.

26
concepts avancés
Etats composites

Tout diagramme d’états-transitions est implicitement un état


composite.
‘ Représentez les différents états d’une personne au cours de
sa vie (mineur, majeur, marié, pacsé, ...)

27
Etats composites

28
Etats composites I

Il existe deux catégories de sous-états :



Les sous-états séquentiels: L’objet ne peut se trouver que
dans un seul de ces sous-états à un instant donné

Les sous-états concurrents: L’objet se trouve dans les
deux sous-états à un instant donné

29
Etats composites II

L’utilisation d’états composites permet de développer une


spécification par raffinements. Il n’est pas nécessaire de
représenter les sous-états à chaque utilisation de l’état
englobant.
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.

30
Etats composites III

31
Etats composites: gestion de la concurrence I

Un état composite est un état décomposé en régions


contenant chacune un ou plusieurs sous états.
Quand un état composite comporte plus d’une région, il est
qualifié d’état orthogonal.
Lorsqu’un état orthogonal est actif, un sous-état direct de
chaque région est simultanément actif, il y a donc concurrence
.

32
Etats composites: gestion de la concurrence II

33
Jonction

Fusionne différentes transitions possibles au sein d’un même


pseudo-état.
Est représentée par un cercle plein.

34
Exit points

Représente une source de sortie possible pour une transition à


partir d’un état composite. Est noté par un cercle dans lequel
figure une croix.

35
fork and join

Représente une séparation dans l’exécution d’une machine


d’état en régions orthogonales.

36
Histoire I

Un état historique(état historique plat) mémorise le dernier


sous-état actif d’un état composite.
Il est représenté par un cercle contenant un H.
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 quel’état historique plat limite l’accès aux états de son
niveau d’imbrication.

37
Histoire II

38
Décision

Permet, au cours de l’exécution d’une machine d’état, de


choisir entre différents états en fonction des conditions de
garde sur les transitions.
Est représentée par un losange.

39
Guide de construction
Guide de construction


Pour construire efficacement les diagrammes d’états :

représentez d’abord la séquence d’états qui décrit le
comportement nominal d’une instance, avec les
transitions associées ;

ajoutez progressivement les transitions qui correspondent
aux comportements« alternatifs » ou d’exception
;•complétez les activités sur les transitions et dans les
états ;

structurez le tout en sous-états et utilisez les notations
avancées (entry, exit, etc.) si le diagramme devient trop
complexe

40
Utilisation des diagrammes
états-transitions
Utilisation des diagrammes états-transitions


En phase d’analyse
• Description de la dynamique du système vu de l’extérieur
• Synthèse des scénarios liés aux cas d’utilisation
• Événements = action des acteurs

En phase de conception
• Description de la dynamique d’un objet particulier
• Événements = appels d’opération

Remarque: Pas de diagramme d’état à moins de trois états.

41
Exemple

42

Vous aimerez peut-être aussi