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

Déclencheurs et transitions

La majorité des connecteurs que vous voyez sur un Diagramme Statemachine seront 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 qui sont exécutés dépendront des conditions et du contexte réel du Bloc . Par exemple, un feu de signalisation peut clignoter en orange jusqu'à ce que l'ingénieur de maintenance ait corrigé une panne, ou un avion peut maintenir un circuit 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 effectivement la possibilité d'un cycle entre les deux States .

Les transitions proviennent toujours d'un State et en ciblent un autre, y compris le cas particulier d'une auto-transition où l'origine et la cible ne font qu'un. Les lignes du diagramme ont une étiquette qui peut afficher un certain nombre d'options différentes : Trigger , Guard et Effect . Nous discuterons de ces options en détail car elles expriment une sémantique importante sur les transitions, y compris si la transition sera exécutée ou non. Une transition peut être dans trois conditions :

  • Atteint - l' State 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 des comportements d'entrée
Ces termes seront utiles aux ingénieurs système et à d'autres lorsqu'ils travailleront en collaboration, discuteront de l'exécution d'une Statemachine et de sa description du comportement du propriétaire Bloc .

Déclencheurs

Les déclencheurs sont les initiateurs d'une transition et sont mappés à des événements censés déclencher des occurrences d'événement. Ce sont ces déclencheurs et leurs événements associés qui entraînent l'exécution d'une transition (déclenchement) et le passage du 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 entrés et visualisés dans Enterprise Architect .

Ce diagramme illustre la façon dont le déclencheur, la garde et l'effet sont affiché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 de la garde prend la valeur 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'un garde peut être définie en langage courant, mais elle est généralement écrite sous la forme d'une contrainte à l'aide d'un langage de contrainte formel tel que le langage de contrainte d' Object . Lorsque vous travaillez avec des simulations ou des 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++. Ceci 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

En plus de déplacer le Bloc propriétaire d'un état à un autre, l'importance de la relation de transition est qu'elle peut exécuter un comportement qui pourrait être une activité ou une opération sur le Bloc propriétaire ou sur tout autre Bloc . Ce comportement s'ajoute au comportement Exit qui peut avoir été défini sur l' State source et au comportement Entry 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 de facilités pour travailler avec des diagrammes , y compris des diagrammes Statemachine , et ceux-ci peuvent être utilisés pour aider à créer et visualiser les informations codifiées dans les Statemachines . Particulièrement utile lorsque vous travaillez avec des transitions est la possibilité d'acheminer des connecteurs qui contribuent à rendre le diagramme plus attrayant. 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é, fournissant au modélisateur une boîte à outils d'options pour la présentation du 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 .