Réserver une Démo
Pré. Proc.

Pseudo-états - La police de la circulation

Les relations de transition qui relient les States dans un diagramme Statemachine doivent être orchestrées pour s'assurer 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-état incluent :

  • Initial - utilisé pour lancer une Statemachine
  • Fourche et Joindre - utilisé pour diviser et réunir une Transition
  • Terminer - utilisé pour mettre fin à une Statemachine
  • Join - utilisé pour réunir un certain nombre de transitions
  • Jonction - utilisée pour diviser une transition
  • Point d'entrée et de sortie - utilisé à la bordure d'un State de sous-machine
  • Histoire profonde et peu profonde - utilisée comme souvenirs lorsqu'un State composite est quitté
Nous examinerons chacun un peu plus en détail et montrerons comment Enterprise Architect peut être utilisé pour créer et gérer ces nœuds importants. il est important de comprendre que l' State final - qui a une icône analogue au pseudo-état initial - est en fait un State à part entière.

Initial

Le pseudo-état initial est le plus largement 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 initial dans une région et une seule transition est autorisée à émerger du pseudo-état initial. Parce que c'est le point de départ, cela n'aurait pas de sens d'avoir un déclencheur ou une garde - le pseudo-état devient simplement actif lorsque la région est entrée, un modélisateur peut cependant définir un effet. Certains ingénieurs système laisseront ce pseudo-état très important hors des diagrammes , 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 sont bien formées et que chaque région a un pseudo-état initial défini, lorsqu'un modélisateur travaille avec des Statemachines Exécutables ou exécute des simulations pour visualiser les States qu'une instance de Bloc traversera au cours de sa vie.

Fourche et Joindre

Lorsque les régions sont utilisées dans les diagrammes Statemachine , il est souvent nécessaire de diviser une transition qui cible l' State en plusieurs transitions de 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éfinis, 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 de plusieurs régions. La restriction inverse s'applique de 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 s'assurer qu'une Statemachine entière est arrêtée. Quel que soit le niveau dans une hiérarchie d' State où se trouve le nœud, toutes les régions et tous les niveaux de la hiérarchie se termineront. 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 interrompu, de sorte qu'il y a une transition de l'état de fonctionnement au pseudo-état de fin de cycle interrompu.

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 à la fois des transitions entrantes et sortantes qui sont connectées à une jonction, mais pendant l'exécution de la Statemachine , une seule des transitions entrantes et une des transitions sortantes se déclencheront. 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 comme booléenne true se déclenchera et transportera le jeton sortant.

Point d'entrée et de sortie

Les pseudo-états de point d'entrée et de point de sortie sont utilisés pour permettre à une Statemachine d'état d'être réutilisée comme State de sous-machine dans plusieurs 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 alors que le point de sortie a un petit x à l'intérieur du cercle.

Leur position en bordure est significative car, d'un point de vue syntaxique visuel, elles permettent de véhiculer 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éintroduite par la suite, 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 puisse être réintégrée et que l'Histoire ne soit pas en mesure de fournir le dernier State ; cette situation peut être gérée par un modélisateur créant de manière préemptive une transition du pseudo-état Historique vers un sous-état cible par défaut ; la Transition ne serait utilisée que dans le cas où l'Histoire ne serait pas en mesure de fournir le souvenir.

Dans cet exemple de centrifugeuse tubulaire, un ingénieur système a placé un State d'historique peu profond dans l' State composite de fonctionnement, indiquant que si ce démarrage est interrompu alors qu'un State donné est actif, puis que l' State est ensuite réentré, l'exécution reprendre au sous-état actif. La transition de sortie de l'historique indique que, dans le cas où l' State propriétaire est réentré et que la machine ne savait pas quel State activer, le rinçage serait sélectionné.

Les States d'historique peu profond et profond fonctionnent de la même manière, sauf qu'un pseudo-état d'historique peu profond ne se souvient que des sous-états actifs dans la région propriétaire, un historique profond peut se souvenir de 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*.