Le diagramme d'état décrit les transitions entre les états et les actions que le système ou ses parties réalisent en réponse à un événement.
Il s'agit d'une représentation séquentielle des états d'un système.
Le diagramme d'état se compose
- d'états
- de transitions
- d'évènements
- de conditions
- d'effets
- d'activités
Etat - transition
Un état (state) représente une situation d'un bloc fonctionnel pendant laquelle
- il satisfait une certaine condition
- il exécute une certaine activité
Les différents états sont reliés entre eux par des transitions.
Une transition est liée à un événement. Lorsque l’événement se produit, il peut provoquer le changement d'état de la fonction qui lui est liée. Une transition peut être complétée par une condition (guard) notée entre croche, des paramètres notés entre parenthèses et d'une activité.
Ainsi la syntaxe complète de la transition serait : evenement[condition](paramètres)/activité
Dans l'exemple ci-dessus le basculement du bouton marche-arrêt provoque un événement qui place
Evolution du diagramme d'état
A la création de l'instance du graphe, un jeton virtuel est placé au point de départ. Si les conditions de la transition le permettent, le jeton quitte le point de départ et rejoint le premier état. L'entrée du jeton provoque l'exécution de la tâche d'entrée de l'état (entry bahavior).Pendant le temps de présence du jeton, l'activité (do active) de l'état se réalise. Quand une transition pour sortir de l'état est vérifiée, le jeton quitte l'état et provoque l'exécution de l'activité de l'action de sortie (exit behavior). Le graphe reste actif tant que le jeton n'a pas rejoint la sortie.
Si plusieurs transitions peuvent être franchies, une seule le sera de manière non déterministe. Il faut donc être attentif à la gestion de ces situations.
Les super-états, pseudo-états et mémoire
Le diagramme d'état peut comporter des super-états (submachine state) qui encapsulent d'autres diagrammes d'états. Ils permettent de "factoriser" des transitions déclenchées par le même événement et amenant vers le même état cible (brancher, débrancher) tout en spécifiant des transitions particulières entre les sous-états.
sources : SysML par l'exemple de Pascal Roques aux éditions Eyrolles
La mémorisation est modélisée par un pseudo état History symbolisé par la lettre H. L'activation de ce pseudo-état permet au super état de se souvenir du dernier sous-état qui était actif avant une transition sortante.
Dans l'exemple ci-dessus, grâce au pseudo état History le fait de débrancher la RADIO provoque la mémorisation des paramètres programmés. Lorsque l'appareil sera à nouveau rebranché les paramètres mémorisés seront repris.
On peut définir qu'une mémorisation (History) se propage quelque soit le niveau de profondeur des diagrammes d'état. On utilise alors le Deep History représenté par H*.