Pré. | Proc. |
Déclencheurs et transitions
La majorité des connecteurs que vous voyez sur un Diagramme Statemachine sont des transitions ; ce sont les lignes qui relient un State à un autre, indiquant les façons autorisées dont le Bloc propriétaire (instance) peut changer. L'ordre dans lequel ils changent et les comportements exécutés dépendent des conditions et du contexte réel du Bloc . Par exemple, un feu de circulation peut clignoter en orange jusqu'à ce que l'ingénieur de maintenance ait corrigé une panne, ou un avion peut maintenir un motif d'attente jusqu'à ce que la tour de contrôle de l'aéroport de destination donne l'autorisation d'atterrir. Ce diagramme montre deux transitions qui sont dirigées dans des directions différentes, créant ainsi la possibilité d'un cycle entre les deux States .
Les transitions proviennent toujours d'un State et en visent un autre, y compris le cas particulier d'une auto-transition où l'origine et la cible sont identiques. Les lignes du diagramme ont une étiquette qui peut afficher un certain nombre d'options différentes : Déclencheur , Garde et Effet . Nous allons discuter de ces options en détail car elles expriment une sémantique importante sur les transitions, notamment si la transition sera exécutée ou non. Une transition peut être dans trois conditions :
- Atteint - l' State d'origine (ou sommet) est actif et prêt à terminer ses comportements
- Traversé - la transition est en cours d'exécution (y compris tous les comportements d'effet définis)
- Terminé - l'état cible a été atteint et est prêt à exécuter les comportements d'entrée
Déclencheurs
Déclencheurs sont les initiateurs d'une transition et sont associés à des événements que l'on appelle des occurrences d'événements déclencheur . Ce sont ces déclencheurs et leurs événements associés qui entraînent l'exécution d'une transition (déclenchement) et le déplacement Bloc propriétaire d'un état à un autre. Lorsqu'un état est actif, il attend effectivement d'être déclenché par un événement, et tant que son action d'entrée est terminée - indépendamment de tout autre facteur - il est prêt à recevoir et à répondre aux événements.
Cette capture d'écran montre comment le Déclencheur , la Garde et l'Effet peuvent être saisis et visualisés dans Enterprise Architect .
Ce diagramme illustre la manière dont le Déclencheur , la Garde et l'Effet sont représentés sur un diagramme . L'Effet dans ce cas a été défini comme un comportement et a été lié à une Opération définie sur le Bloc .
Gardes
Les gardes sont les « gardiens » d'une transition et ce n'est que lorsque l'expression du garde est évaluée à True que la transition se déclenche. Si l'expression est évaluée à False, l'événement sera consommé et il n'y aura aucun changement observable dans l'état du Bloc résultant du déclencheur .
L'expression d'une garde peut être définie en anglais simple, mais elle est généralement écrite sous la forme d'une contrainte en utilisant un langage de contrainte formel tel que l' Object Constraint Language. Lorsque vous travaillez avec des simulations ou Statemachines Exécutables la condition est exprimée dans la syntaxe du langage de code dans lequel elle doit être générée, par exemple JavaScript ou C++. Cela s'applique également aux effets. Dans ce diagramme nous pouvons voir une expression mathématique qui peut être évaluée par un humain ou une machine.
Effets
Outre le déplacement du Bloc propriétaire d'un état à un autre, l'importance de la relation Transition est qu'elle peut exécuter un comportement qui peut être une Activité ou une Opération sur le Bloc propriétaire ou sur tout autre Bloc . Ce comportement s'ajoute au comportement de Sortie qui aurait pu être défini sur l' State source et au comportement d'Entrée sur l'État cible. Cela garantit qu'il existe un mécanisme pour modifier le comportement pendant l'exécution de la Transition.
Courbes de Bézier
Enterprise Architect dispose d'une large gamme d'outils et facilités pour travailler avec diagrammes , notamment diagrammes Statemachine , qui peuvent être utilisés pour aider à créer et visualiser les informations codifiées dans les Statemachines . La possibilité d'acheminer des connecteurs qui contribuent à rendre le diagramme plus attrayant est particulièrement utile lorsque vous travaillez avec des transitions. Le style de ligne du connecteur dans ce diagramme a été défini sur une courbe de Bézier, ce qui donne à la transition une apparence moins rigide.
La forme de la courbe peut être modifiée en faisant glisser le point de construction vers un nouvel emplacement. N'importe lequel des nombreux styles de ligne peut être utilisé, offrant au modélisateur une boîte à outils d'options pour la présentation diagramme . Ce menu contextuel peut être sélectionné et le style de ligne défini pour chaque connecteur individuellement. La couleur et l'épaisseur de la ligne peuvent également être définies à partir du ruban Disposition .