Machines à états finis

download report

Transcript Machines à états finis

Machines à états finis

Introduction

• • • • Les Machines à états finis sont un outil de modélisation formelle basé sur la théorie des automates.

Elles ont été utilisées bien avant l'apparition d'UML, notamment pour la modélisation de protocoles, d'analyseurs syntaxiques, etc… Une machine à états finis est construite à partir de trois éléments de base : – Des états, – des évènements, – des transitions Elle sera représentée via un diagramme d'états ou Statechart Diagram

Forme générale d'un diagramme d'état • Le dispositif modélisé est supposé se trouver dans un état précis à un moment précis, et l'apparition d'un évènement (stimuli, sollicitation, …) est susceptible de le faire passer dans un autre état, suivant une transition.

Forme générale d'un diagramme d'état • La machine ci-dessus passera de etat2 à etat1 lorsque l'événement autre événement, à savoir #fin.

#evt1

apparaîtra.

Dans l'état etat2, elle pourrait encore capter un

État et transition

• • Un état est caractérisé par la ou les valeurs d’une ou plusieurs grandeurs ou variables (les variables d'état).

La transition entre deux états est supposée instantanée.

Transition

• Forme complète d’une transition

état1

Transition

#evenement( arg )[ arg>=0 ] / fermePorte ^Supervision.#porteFermée état2

État

On Entry Do OnExit

État

• Deux formes différentes : Déclenche à nouveau les actions d’entrée et de sortie

État

# é tat1 / op é ration L ecture N om entry: enE ntrant exit: enSortant é é venem ent: #nom L u / afficherO K L ecture m ot de passe entry: Invite m ot de passe

Sous diagramme

• Un état peut être décrit par un sous diagramme d’états.

Sous diagramme

Historique

L’état interne est préservé

(possède une mémoire)

Exemple : Lecteur de carte

Conclusion

• • • Une machine à états peut servir à modéliser n'importe quel type de dispositif ou système : un dispositif électronique, électrique, mécanique, un élément logiciel, etc.

Une machine à états finis servira donc essentiellement, dans UML, à modéliser le comportement de nos éléments logiciels, donc des objets. A ce titre, il modélise leur comportement dynamique.

Une machine à états sera donc généralement associée à une classe dont elle modélisera le fonctionnement de toutes les instances.