0% ont trouvé ce document utile (0 vote)
17 vues8 pages

Introduction aux StateCharts

Les StateCharts, développés par David Harel dans les années 80, sont un formalisme graphique pour modéliser le comportement de systèmes complexes en intégrant hiérarchie, parallélisme et diffusion d'événements. Ils permettent de représenter les états, transitions et sous-états d'un système de manière structurée, facilitant ainsi la compréhension et la gestion de la complexité. Les concepts clés incluent les états composites, les transitions conditionnelles et les états historiques, qui aident à modéliser des comportements dynamiques et concurrentiels.

Transféré par

anouarchouaib.attick
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
17 vues8 pages

Introduction aux StateCharts

Les StateCharts, développés par David Harel dans les années 80, sont un formalisme graphique pour modéliser le comportement de systèmes complexes en intégrant hiérarchie, parallélisme et diffusion d'événements. Ils permettent de représenter les états, transitions et sous-états d'un système de manière structurée, facilitant ainsi la compréhension et la gestion de la complexité. Les concepts clés incluent les états composites, les transitions conditionnelles et les états historiques, qui aident à modéliser des comportements dynamiques et concurrentiels.

Transféré par

anouarchouaib.attick
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

M2 Instrumentation Module : SED / 2020-2021

StateCharts
Introduction
Les StateCharts sont un formalisme défini au début des années 80 par David Harel [Harel 87]
pour la spécification de systèmes complexes. Ils représentent un des premiers formalismes
graphiques pour modéliser le comportement des systèmes larges (en termes d’états et de
transitions) constitués d’un grand nombre d’entités ou de composants en interaction. Ils
décrivent les séquences possibles d’états et d’actions qu’une entité peut traiter au cours de son
cycle de vie en réaction à des évènements. La vision globale du système est moins apparente
sur ces diagrammes, car la liaison entre les parties du système est assurée implicitement par le
mécanisme d’envoie d’évènements.
Un StateChart est un automate d’états finis dont les états peuvent contenir un ou plusieurs
automates représentant ainsi un sous-système ou une sous-fonction du système global. Lorsque
le système entre dans un tel état, le sous-système ou la sous-fonction du système est démarré.
Le mécanisme de structuration des états dans les StateCharts limite l'explosion combinatoire
des états et des transitions.
L’originalité des StateCharts provient non seulement de la description graphique des
changements d’états du système, mais aussi de la représentation graphique de la hiérarchie
(plusieurs niveaux d’abstraction), du parallélisme et de la concurrence. Il est à noter que nous
présentons dans ce cours qu’un sous ensemble de concepts et notations des StateCharts.

I. Définition
Les StateCharts sont une représentation graphique et formelle permettant de factoriser les
informations contenues dans un automate d’états finis. Plus précisément, il s’agit d’une
extension des automates d’états finis avec trois notions pour décrire des comportements
complexes :
La Hiérarchie : Une des limitations du modèle de automates d’états est que la complexité des
diagrammes augmente de façon dramatique avec le nombre d’états. Les StateCharts permettent
d’imbriquer des états les uns dans les autres (super-états ou états composites qui englobent
chacun plusieurs états), ce qui rend le diagramme plus compréhensible et lisible et permet
plusieurs niveaux d’abstraction.
L’Orthogonalité ou Parallélisme : Le modèle des automates d’états ne dispose d’aucune
construction pour représenter la concurrence.
La Diffusion : Le mécanisme de communication des événements est la Diffusion (broadcast).
Lorsqu’un événement survient, l’ensemble des automates actifs d’un StateCharts perçoivent cet
événement. Ce mécanisme permet à plusieurs états orthogonaux de communiquer par des
événements. Les automates d’un StateCharts peuvent réagir à des événements provenant soit
de l’environnement soit d’autres automates du modèle.

1
M2 Instrumentation Module : SED / 2020-2021

Statechart = Automate d'Etats Finis + Hiérarchie + Parallélisme + Diffusion

II. Représentation
Un StateChart rassemble et organise les états et les transitions d’une entité ou d’un composant
du système pendant sa durée de vie. Bien entendu, le modèle dynamique du système comprend
plusieurs StateCharts. Tous les automates d’états finis des StateCharts d’un système s’exécutent
concurremment et peuvent donc se communiquer et changer d’état de façon indépendante.
Toutes ces notions sont représentées graphiquement ce qui offre une vue synthétique du
système. La Figure 3.1 illustre les principaux éléments qui composent un StateChart.

Figure 1. Représentation Graphique des Statechart.

II.1 Etat :
Un état est une situation stable au cours de la vie d’un système (ou d’un sous-système) qui
satisfait certaines conditions. Un système reste dans un état pendant une durée déterminée
pendant laquelle il exécute une activité ou attend un évènement. Deux états sont particuliers :
l’état initial qui indique l’état de départ de l’automate et l’état final qui marque la fin de son
exécution. Un état se compose essentiellement de 5 parties dont certaines sont optionnelles

2
M2 Instrumentation Module : SED / 2020-2021

 Un nom [Link]
Figure d’identifier
Représentation clairement
Graphique d’unl’état.
Etat. Æ Une action d’entrée: action
exécutée quand le système entre dans l’état. Elle est spécifiée via le mot clé "entry".
 Une action de sortie : action exécutée quand le système sort de l’état. Elle est spécifiée
via le mot clé "exit".
 Des activités : ce sont des activités effectuées une fois l’action d’entrée est exécutée.
Quand les activités sont terminées, le système attend un évènement pour changer d’état.
Il est à noter que les activités ont une certaine durée, et elles peuvent être par conséquent
interrompues. le mot clé "do" est utilisé pour spécifier les activités.
 Des sous-états : Un sous-état est un état emboîté dans un autre état (dit état composite).
un état composite peut être hiérarchisé en plusieurs sous-états. Un état composite a une
sousstructure qui permet de masquer à un certain niveau le fonctionnement interne de
l’état lorsque celui-ci est complexe.
II.2 Transition
Une transition définit la réponse d'un système à l'arrivée d'un événement. Elle indique qu'un
système qui se trouve dans un état (un état source) peut transiter vers un autre état (un état cible)
et exécuter certaines Actions, si un événement déclencheur se produit. Elle indique aussi sous
quelle condition de garde le système passe de l’état source à l’état cible. Une transition entre
deux états est représentée par un trait droit fléché de l'état source vers l'état cible et étiqueté par
un triplet (Evénement [Garde]/ Liste d’actions). Une transition comporte cinq parties qui ne
sont pas toutes obligatoires (Figure 3)

Figure 3. Représentation Graphique d'une Transition Entre deux Etats.

 Un état source de franchissement de la transition (obligatoire);


 Un événement déclencheur (optionnel) : la réception de cet événement déclenche la
transition si la condition de garde le permet. L'événement qui détermine le
franchissement de la transition est indiqué sous forme de texte. Il est possible d’avoir

3
M2 Instrumentation Module : SED / 2020-2021

une transition sans événement qui est franchie de manière implicite (appelée transition
automatique) quand l’état source a terminé ses activités. Le 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. Pendant l’exécution, une
seule transition peut se déclencher. Si deux transitions sont activées en même temps par
un même événement, une seule se déclenche et le choix n’est pas prévisible (c'est-à-dire
indéterministe).
 Une garde (optionnelle) : expression booléenne évaluée après la réception de
l’événement. Si elle est vraie, la transition est effectuée, sinon le système reste dans le
même état et l’événement est perdu. L’expression booléenne est placée entre crochets.
 Une action (optionnelle) : calcul exécuté par le système avant de passe à l’état cible. Il
s’agit généralement d’une opération qui peut être: envois d’événements, modification
de variables de l’automate, … . Il est à noter que les actions sont considérées comme
instantanées (c’est-`a-dire dont le temps d’exécution est négligeable) et atomique (c’est-
àdire non interruptible)
 Un état cible de la transition (obligatoire).
II.3 Etats Composites
Un état composite est un état qui contient d'autres états à l'intérieur (sous-états). Il existe deux
mécanismes de composition des sous-états afin de former des états composites : Orthogonale
ou Séquentielle. Un état composite est 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. Un état composite ne comportant qu’une région est qualifié d’état séquentiel. Un
sous-état est un état, il peut par conséquent être à son tour un état composite. L’utilisation d’états
composites permet :
 De structurer les automates pour les rendre plus lisibles.
 De factoriser des transitions similaires qui partent de plusieurs états.
 De développer une spécification par raffinements.
II.3.1 Etat Composite Séquentiel (Hiérarchique ou XOR)
Un état composite séquentiel est constitué de sous-états qui se suivent (voir la Figure 4). A
partir d’un état source externe, une transition peut cibler l’état composite ou un sous-état. Si la
cible est un sous-état, l’automate imbriqué commence au sous-état spécifié après exécution de
l’action d’entrée associée à l’état composite suivi par l’exécution de l’action d’entrée du sous-
état. Si la cible est l’état composite, la transition est équivalente à une transition ayant pour cible
l’état initial de l’état composite. L’automate imbriqué commence à l’état initial après exécution
de l’action d’entrée associée à l’état composite.
Une transition qui sort d’un état composite peut avoir pour source l’état composite ou un sous-
état. Dans les deux cas, l’action de sortie de l’état composite est exécutée avant de quitter l’état.
Si la source est un sous-état, l’action de sortie de ce sous-état est exécutée avant celle de l’état
composite. Si la source est l’état composite, si la transition ne porte pas d’évènement
déclencheur explicite, elle sera franchissable quand l’état final de l’état composite est atteint.
Sinon (la transition avec un évènement déclencheur), il est équivalente à des transitions qui
s’appliquent à tout sous-état de l’état composite source, cette transition interrompt l’activité de
l’automate imbriqué (tous les sous-états deviennent inactifs). Cette relation est transitive: la

4
M2 Instrumentation Module : SED / 2020-2021

transition est franchissable depuis tout état imbriqué, quelle que soit sa profondeur (c’est-à-dire,
les différents niveaux d’imbrication) en traversant les frontières des états composites. Un
automate imbriqué peut avoir au maximum un état initial et un état final.

Figure 4. Représentation Graphique d’un Etat Composite Séquentiel.

La Figure 5 présente un modèle de la transmission automatique de vitesse en voiture. Les


vitesses sont passées dans l'ordre, et de chacune la transmission peut revenir au point mort. Le
modèle de la transmission de vitesses est composé de trois états Marche_avant, Marche_arrière
et Point_mort. L’état Marche_avant est un composite séquentiel incluant cinq états représentant
les cinq rapports de vitesse. La notion d'état initial et final devient relative au niveau
d'imbrication. La transition passerPM de l’état composite Marche_avant vers l'état Point_mort
exprime que quelle que soit la vitesse enclenchée, la transmission passe au point mort. La
transition passerP de l'état Point_mort vers l’état composite Marche_avant envoie dans l'état
initial de l’état composite Marche_avant (c'est-à-dire, dans l'état Première).

5
M2 Instrumentation Module : SED / 2020-2021

Figure 5. Statechart de la Boite de Vitesse.

II.3.2 Etat Historique


Dans certaines situations, on a besoin que l’automate imbriqué se souvienne du dernier sous-
état où il était avant de le quitter pour la dernière fois. On peut modéliser ce besoin à l’aide
d’état historique. Un état historique 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 la lettre 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. Dans le cas où un état composite contient d’autres sous-
états qui eux-mêmes sont composites, il est possible de définir un état historique profond
représenté graphiquement par un cercle contenant la lettre H*. Cet état permet d'atteindre le
dernier état visité quel que soit son niveau d'imbrication. La Figure 6 montre un exemple de
Statechart correspondant au fonctionnement simplifié d’un ascenseur. L’ascenseur a trois états:
Démarrage, EnMouvement et Stoppé. L’état EnMouvement est un super-état composite de trois
sous-états Pallier, Montée et Descente. Si la cabine de l’ascenseur l’est stoppée (arrêt d’urgence,
coupure d’électricité, …), lorsqu'elle est remise en route, elle repart du même endroit mémorisé
dans l’état historique.

6
M2 Instrumentation Module : SED / 2020-2021

Figure 6. Statechart Modélisant le Fonctionnement Simplifié d’un Ascenseur.

II.3.3 Etat Composite Orthogonal (Concurrent ou AND)


Un état composite orthogonal permet d’obtenir plusieurs automates imbriqués actifs
simultanément. Il permet donc de réaliser des tâches en parallèle. Un état orthogonal est un état
composite comportant plus d'une région. Pour séparer les régions d’un état orthogonal, une
ligne horizontale en pointillée est utilisée allant du bord gauche au bord droit. Chaque région
représente un flot d'exécution séquentiel et possède un état initial et un état final (voir la Figure
.7). Lorsqu’un état composite orthogonal est atteint, les exécutions de tous ces régions sont
déclenchées à partir de leurs états initiaux, et se poursuivent en parallèle. Toutes les régions
doivent atteindre leur état final pour sortir de l’état composite. Il est à note qu’un état composite
orthogonal n’a pas d’état initial car chacune de ses régions concurrents a un état initial, ni d’état
final car chacune de ses régions concurrents a un état final. À tout instant plusieurs automates
imbriqués peuvent être actifs. Dans ce cas, plusieurs états peuvent être actifs en même temps,
l’état global étant alors caractérisé par l’ensemble des états actifs.

7
M2 Instrumentation Module : SED / 2020-2021

Figure 7. Représentation Graphique d’un Etat Composite Orthogonal.

Dans la Figure 8, le modèle présente l'utilisation d'un état composite orthogonal pour décrire le
fonctionnement d’un distributeur automatique de boissons. Après avoir sélectionné la boisson
et validé le montant par rapport au crédit, deux séquences d’actions sont déclenchées en
parallèle : la préparation de la boisson et le rendu de la monnaie.

Figure 8. Statechart d’un Distributeur Automatique de Boissons.

Vous aimerez peut-être aussi