UML 2 Diagrammes de StateMachine


Diagrammes de StateMachine
Un Diagramme de Statemachine modèles le comportement d'un objet unique, en précisant la séquence des événements qu'un objet passe par pendant sa durée de vie en réponse à des événements.

A titre d'exemple, le diagramme de StateMachine montre les états qu'une porte passe pendant sa durée de vie

La porte peut être dans l'un des trois états: "Ouvert", "Fermé" ou "Verrouillé". Il peut répondre aux événements ouvrir, fermer, verrouiller et déverrouiller. Notez que tous les événements ne sont valables dans tous les Etats; par exemple, si une porte est ouverte, vous ne pouvez pas verrouiller jusqu'à ce que vous la fermiez. Notez également que la transition de l'Etat peut avoir une condition de garde attachée: si la porte est ouverte, il ne peut répondre à l'événement "Fermé" si la condition "manièrePorte - estVide" est accomplie. La syntaxe et les conventions utilisées dans des diagrammes de StateMachines seront discutés en détail dans les sections suivantes.

States

Un état est représenté par un rectangle aux coins arrondis avec le nom de l'état écrit à l'intérieur.

Initiale et finale States
Le State initial est désigné par un cercle noir rempli et peut être marqué avec un nom. Le State final est représentée par un cercle avec un point à l'intérieur et peut également être marqué avec un nom.

Transitions
Transitions d'un State à l'autre sont indiqués par des lignes avec des pointes de flèches. Une transition peut avoir un déclencheur, un garde et un effet, comme ci-dessous.

"Déclencher" est la cause de la transition, ce qui pourrait être un signal, un événement, un changement d'une condition, ou le passage du temps. "La garde" est une condition qui doit être vérifiée pour que le déclenchement pour provoquer la transition. "L'effet" est une action qui sera invoquée directement sur l'objet, qui est propriétaire de la machine d'état à la suite de la transition.

Actions de State
Dans l'exemple ci-dessus de transition, un effet a été associée à la transition. Si le state de la cible avait beaucoup de transitions arrivant à elle, et chaque transition eu le même effet qui lui est associée. Il serait préférable d'associer l'effet de le state de la cible plutôt que les transitions. Cela peut être fait en définissant une action d'entrée pour le state. Le diagramme ci-dessous montre un state avec une action d'entrée et une action de sortie.

Il est également possible de définir des actions, qui se produisent sur des événements ou des actions, qui se produisent toujours. Il est possible de définir un certain nombre de mesures de chaque type.

Auto-Transitions
Un state peut avoir une transition qui revient à lui-même, comme dans le diagramme suivant. Ceci est très utile quand un effet est associé à la transition.

States Composé
Un diagramme de StateMachine peut inclure des diagrammes de sous-machines, comme dans l'exemple ci-dessous.

L'autre façon de montrer la même information est comme suit.

La notation dans la version ci-dessus indique que les détails de la 'sous-machine vérification du code PIN' sont présentés dans un diagramme séparé

Point D'Entrée
Parfois, vous ne voulez pas entrer dans un sous-machine en le state initial normal. Par exemple, dans la sous-machine en suivant il serait normal de commencer dans le "Initialisation" state, mais si pour quelque raison il n'a pas été nécessaire de procéder à l'initialisation, il serait possible de commencer dans le "Prêt" state par la transition vers le point d'entrée désigné.

Le diagramme suivant montre que le state machine un niveau en haut.

Point de Sortie
De la même manière aux points d'entrée, il est possible d'avoir nommé des points de sortie alternatifs. Le diagramme ci-dessous donne un exemple. Lorsque le state exécuté après le state de traitement principale dépend de quelle route est utilisé pour transiter de le state.

Choix Pseudo-State
Un Choix Pseudo-State est montré comme un diamant avec une transition à l'arrivée et deux ou plusieurs transitions quitter. Le diagramme suivant montre que n'importe quel state est arrivé. Après le Choix Pseudo-State dépend du format de message choisi pendant l'exécution de state précédent.

Junction Pseudo-State
Jonction de Pseudo-State sont utilisés pour enchaîner plusieurs transitions. Une seule jonction peut avoir une ou plusieurs entrants et sortants une ou plusieurs transitions. Un agent peut être appliqué à chaque transition. Jonctions sont sémantique libre. Une jonction qui sépare une transition entrant en plusieurs transitions sortantes réalise un branchement conditionnel statique. Par opposition à un Choix Pseudo-State, qui réalise une branche conditionnelle dynamique.

Terminer Pseudo-State
Saisie d'un Terminer Pseudo-State indique que la ligne de vie de la machine d'état est terminé. UnTerminer Pseudo-State est noté comme une croix.

Histoire States
Un Histoire State est utilisée pour mémoriser le state précédent d'une state machine quand il a été interrompu. Le diagramme suivant illustre l'utilisation de Histoire State. L'exemple est un state machine appartenant à une machine à laver.

Dans cette state machine, quand une machine à laver fonctionne, il va progresser à partir de "Laver" par "Rinçage" au "Filage".
Si il ya une coupure de courant, la machine à laver va arrêter l'exécution et ira à le "Éteindre" state. Lorsque le courant est rétabli, la state d'exécution est entré à la "Histoire State" symbole ce qui signifie qu'il devrait reprendre, où cela dure s'est arrêté.

Régions Concurrents
Un state peut être divisé en régions contenant des sous-state qui existent et qui exécutent simultanément. L'exemple ci-dessous montre que. Dans la state "Appliquer Freins", les freins avant et arrière seront fonctionnent simultanément et indépendamment. Notez l'utilisation de la fourche et rejoignez pseudo-states, plutôt que par choix et fusionner pseudo-stats. Ces symboles sont utilisés pour synchroniser les fils concourants.