Pré. | Proc. |
Jonction
Description
Les pseudo-états de jonction sont utilisés pour concevoir des chemins de transition complexes dans diagrammes Statemachine . Une jonction peut être utilisée pour combiner ou fusionner plusieurs chemins en un chemin de transition partagé. Alternativement, une jonction peut diviser un chemin entrant en plusieurs chemins, de manière similaire à un pseudo-état Fork. Contrairement aux Forks ou Jointures , les jonctions peuvent appliquer des gardes à chaque transition entrante ou sortante, de sorte que si l'expression de garde est False, la transition est désactivée.
Cet exemple illustre comment les protections peuvent être appliquées aux transitions entrant ou sortant d'un pseudo-état de jonction.
Icône de la boîte à outils
Apprenez Plus
Spécification OMG UML :
La spécification Unified Modeling Language OMG (v2.5.1, p. 313) stipule :
Ce type de pseudo-état est utilisé pour connecter plusieurs transitions en chemins composés entre States . Par exemple, un pseudo-état de jonction peut être utilisé pour fusionner plusieurs transitions entrantes en une seule transition sortante représentant un chemin de continuation partagé. Il peut également être utilisé pour diviser une transition entrante en plusieurs segments de transition sortants avec différentes contraintes de garde.
REMARQUE. De telles contraintes de garde sont évaluées avant l'exécution de toute transition composée contenant ce pseudo-état, c'est pourquoi on parle de branche conditionnelle statique.
Il peut arriver que, pour une transition composée particulière, la configuration des chemins de transition et des valeurs de garde soit telle que la transition composée soit empêchée d'atteindre une configuration d'état valide. Dans ces cas, la transition composée entière est désactivée même si ses Déclencheurs sont activés. (Pour éviter cette situation dans certains cas, il est possible d'associer une garde prédéfinie notée « else » à au plus une transition sortante. Cette transition est activée si toutes les gardes attachées aux autres transitions sont évaluées à false). Si plusieurs gardes sont évaluées à true, l'une d'entre elles est choisie. L'algorithme pour effectuer cette sélection n'est pas défini.