Diagramme états-transitions

Un article de Wikipédia, l'encyclopédie libre.

Un diagramme états-transitions est un schéma utilisé en génie logiciel pour représenter des automates. Il fait partie du modèle UML et s'inspire principalement du formalisme state-charts et rappelle les grafcets des automates. S'ils ne permettent pas de comprendre globalement le fonctionnement du système, ils sont directement transposable en algorithme. Tous les automates d'un système s'exécutent parallèlement et peuvent donc changer d'état de façon indépendante.

Sommaire

[modifier] Éléments

[modifier] Transitions

En plus des états de départ (au moins un) et d'arrivée (nombre quelconque), une transition peut comporter les éléments facultatifs suivants :

  • Un évènement
  • Une condition de garde
  • Une liste d'actions

Quand l'événement se produit alors que les états de départ sont actifs et que la condition de garde est vraie alors les actions seront déclenchées.

[modifier] États

Cette exécution est enrichie lorsque les états définissent une action d'entrée et une action de sortie : l'action de sortie de l'état de départ est exécutée d'abord, puis l'action de la transition, puis l'action de l'état d'arrivée.

[modifier] Autres éléments

Les points de jonction ne sont qu'un élément graphique permettant de regrouper plusieurs segment de transition de façon à rendre le schéma plus lisible. Les points de décision permettent de simuler un choix : si-alors-sinon, qui entraîne deux états différents.

[modifier] Représentation graphique

Diagramme états-transitions
Diagramme états-transitions

Le formalisme impose un diagramme par classeur.

  • L'état initial est représenté par un cercle rempli ; il est facultatif
  • Le cercle creux dénote l'état de fin; il est facultatif
  • Le rectangle à coins arrondis dénote un état. Il peut être nommé. Les actions internes à l'état peuvent être notées dans la partie inférieure du rectangle, séparée du nom par une barre horizontale
  • La flèche dénote la transition entre deux états
  • Les sous-états non concurrents peuvent être dessinés à l'intérieur de l'état
  • Des traits pointillés peuvent être utilisés pour séparer en zones d'exécution concurrentes un état. Les sous-états d'une même zone restent non concurrents
  • Les points de décision sont représentés par des losanges
  • Les points de jonction sont représentés par des cercles pleins (identique à l'état initial)

[modifier] Transposition en langage structuré

A l'état initial correspond le constructeur de la classe, à l'état final le destructeur de la classe.

[modifier] Voir aussi