Pré. | Proc. |
Pseudo-États – La police de la circulation
Les relations de transition qui relient States dans un diagramme Statemachine doivent être orchestrées pour garantir que la Statemachine est représentative des libertés dont dispose un Bloc pour changer son état dans le monde physique. Les pseudo-états sont des nœuds utilisés pour diriger le flux le long des transitions. Les nœuds peuvent apparaître au début, le long du chemin d'une transition ou à la fin. Les types de pseudo-états incluent :
- Initial - utilisé pour initier une Statemachine
- Fourche et Joindre - utilisé pour diviser et réunir une transition
- Terminer - utilisé pour terminer une Statemachine
- Joindre - utilisé pour réunir un certain nombre de transitions
- Jonction - utilisée pour diviser une transition
- Point d'entrée et de sortie - utilisé sur la bordure d'un State de sous-machine
- Histoire profonde et superficielle - utilisées comme souvenirs lorsqu'un State composite est quitté
Initial
Le pseudo-état initial est le plus utilisé de tous les nœuds et représente le point de départ d'une région. Il ne peut y avoir qu'un seul état initial dans une région et une seule transition est autorisée à émerger du pseudo-état initial. Comme il s'agit du point de départ, il n'aurait aucun sens d'avoir un déclencheur ou une garde - le pseudo-état devient simplement actif lorsque la région est pénétrée, un modélisateur peut cependant définir un effet. Certains ingénieurs système laisseront ce pseudo-état très important hors diagrammes , en pensant que sa position est implicite, mais il est considéré comme une bonne pratique de les inclure car formellement le point de départ n'est pas défini sans eux. Il est cependant courant de laisser le pseudo-état initial sans nom.
Enterprise Architect s'appuiera également sur le fait que les Statemachines soient bien formées et que chaque région ait un pseudo-état initial défini, lorsqu'un modélisateur travaille avec Statemachines Exécutables ou exécute des simulations pour visualiser les States une instance Bloc passera au cours de sa durée de vie.
Fourche et Joindre
Lorsque des régions sont utilisées dans diagrammes Statemachine , il est souvent nécessaire de diviser une transition qui cible l' State en plusieurs transitions de telle sorte que chaque transition sortante cible un State donné dans chaque région orthogonale. Les transitions sortantes d'un pseudo-état Fork sont restreintes et ne peuvent pas avoir de garde ou de déclencheur défini, mais un effet peut être défini. Cela garantit que plusieurs régions peuvent avoir simultanément des états actifs.
Jointures fonctionnent de manière analogue mais opposée pour unir les transitions entrantes provenant de plusieurs régions. La restriction inverse s'applique de telle sorte que les transitions entrantes ne peuvent pas avoir de garde ou de déclencheur défini, mais un effet peut être défini. Les effets de toutes les transitions entrantes doivent être terminés avant que la transition sortante puisse se déclencher.
Mettre fin
Le pseudo-état Terminate est un nœud utile pour garantir l'arrêt complet d'une Statemachine . Quel que soit le niveau de la hiérarchie State auquel se trouve le nœud, toutes les régions et tous les niveaux de la hiérarchie s'arrêteront. Il s'agit d'un nœud final dans le sens où la Statemachine propriétaire cessera immédiatement de s'exécuter. La terminaison n'est pas « gracieuse » et tous les comportements en cours d'exécution s'arrêteront simplement ; aucun comportement de sortie ne sera exécuté. Ce diagramme montre un State composite avec une seule région ; s'il y a une fuite de pression, le fonctionnement de l'autoclave doit être immédiatement arrêté, il y a donc une transition de l'état de fonctionnement vers le pseudo-état Terminate Cycle Aborted.
Enterprise Architect permet à ce nœud d'être placé à n'importe quel niveau et dans n'importe quelle région et honorera sa sémantique dans les simulations Statemachine Exécutable .
Jonction
Le pseudo-état de jonction est utilisé pour modéliser les transitions avec des chemins composés. Il existe des transitions entrantes et sortantes connectées à une jonction, mais pendant l'exécution de la Statemachine une seule des transitions entrantes et une seule des transitions sortantes se déclenchent. Les transitions sortantes sont protégées par des gardes et seule la transition avec une garde dont l'expression est d'abord évaluée à la valeur booléenne true se déclenche et transporte le jeton sortant.
Point d'entrée et de sortie
Les pseudo-états Point d'entrée et Point de sortie permettent de réutiliser une Statemachine State sous-machine dans de multiples contextes ; ils peuvent également être utilisés sur un State composite. Ces pseudo-états apparaissent comme de petits cercles qui chevauchent la bordure d'un State composite ou d'un State sous-machine ; le point d'entrée est vide tandis que le point de sortie comporte un petit x à l'intérieur du cercle.
Leur position sur la bordure est significative car, d'un point de vue syntaxique visuel, elles permettent de transmettre des messages entre l'intérieur et l'extérieur de l'élément.
Histoire profonde et superficielle
Le pseudo-état History est comme un signet ou un mémento pour un State composite, et stocke simplement le nom du sous-état qui était actif lorsque la région a été quittée. Lorsque la région est ré-entrée ultérieurement, la Statemachine reprend ses transitions à partir du sous-état spécifié par l'historique. Il est possible que pour une raison quelconque une région soit ré-entrée et que l'historique ne soit pas en mesure de fournir le dernier State ; cette situation peut être gérée par un modélisateur en créant de manière préventive une transition du pseudo-état History vers un sous-état par défaut cible ; la transition ne serait utilisée que dans le cas où l'historique ne serait pas en mesure de fournir le mémento.
Dans cet exemple de centrifugeuse tubulaire, un ingénieur système a placé un State d'historique peu profond dans l' State composite en fonctionnement, indiquant que si ce démarrage est quitté alors qu'un State donné est actif, puis que l' State est réactivé par la suite, l'exécution reprendra au sous-état actif. La transition de sortie de l'historique indique que, dans le cas où l' State propriétaire est réactivé et que la machine ne sait pas quel State activer, le rinçage sera sélectionné.
States d'historique superficiel et profond fonctionnent de la même manière, à l'exception du fait qu'un pseudo-état d'historique superficiel ne mémorise que les sous-états actifs de la région propriétaire, tandis qu'un historique profond peut mémoriser jusqu'à n'importe quel niveau dans une hiérarchie de sous-états. L'historique profond est indiqué visuellement par un astérisque placé après le H*.