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

Choix

A Choice or Decision Element used in UML Activity and StateMachine diagrams as depicted in Sparx Systems Enterprise Architect.

Description

Le pseudo-état Choix est utilisé pour composer des chemins de transition complexes dans, par exemple, un diagramme Statemachine , où le chemin de transition sortant est déterminé par des conditions d'exécution dynamiques. Les conditions d'exécution sont déterminées par les actions effectuées par la Statemachine sur le chemin menant au choix.

Cet exemple illustre l'élément Choice. Une fois le pseudo-état Filter atteint, une transition se déclenche vers l' State approprié en fonction de la valeur d'exécution transmise au filtre. Très similaire dans sa forme à un pseudo-état Junction, la particularité du pseudo-état Choice réside dans le choix des chemins de transition au moment de l'exécution.

Using a Choice element in a StateMachine diagram as depicted in Sparx Systems Enterprise Architect.

Icône de la boîte à outils

Choice element

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 similaire à un pseudo-état de jonction (...) et sert à des fins similaires, à la différence que les contraintes de garde sur toutes les transitions sortantes sont évaluées de manière dynamique, lorsque la traversée de transition composée atteint ce pseudo-état. Par conséquent, le choix est utilisé pour réaliser une branche conditionnelle dynamique. Il permet de diviser les transitions composées en plusieurs chemins alternatifs de telle sorte que la décision sur le chemin à prendre puisse dépendre des résultats des exécutions de comportement effectuées dans la même transition composée avant d'atteindre le point de choix. Si plusieurs gardes sont évaluées comme vraies, l'une des transitions correspondantes est sélectionnée. L'algorithme permettant d'effectuer cette sélection n'est pas défini. Si aucune des gardes n'est évaluée comme vraie, le modèle est alors considéré comme mal formé. Pour éviter cela, il est recommandé de définir une transition sortante avec la garde « else » prédéfinie pour chaque pseudo-état de choix.