Pré. | Proc. |
Exemple : points d'entrée et de sortie (références de point de connexion)
Enterprise Architect prend en support les points d'entrée et de sortie et les références de points de connexion. Dans cet exemple, nous définissons deux Statemachines pour MyClass - Statemachine et SubMachine.
- State1 est un State composite (également appelé State orthogonal car il a plusieurs régions) avec trois régions : RegionA , RegionB et RegionC
- State2 est un State SubMachine appelant SubMachine , qui a trois régions : RegionX , RegionY et RegionZ
- EntryPoint1 est défini sur State1 pour activer deux des trois régions ; EntryPoint2 est défini sur SubMachine pour activer deux des trois régions
- ExitPoint1 est défini sur State1 ; deux points de sortie ExitPoint2 et ExitPoint3 sont définis sur SubMachine
- Les références de point de connexion sont définies sur State2 et liées aux points d'entrée/sortie de la sous-machine de saisie
- Les nœuds initiaux sont définis pour démontrer l'activation par défaut des régions
Entrer d'un State : Entry Point Entry
EntryPoint1 sur State1
Lorsqu'une transition ciblée sur EntryPoint1 est activée, State1 est activé suivi des régions contenues.
- L'activation explicite se produit pour RegionA et RegionB , car chacune d'elles est entrée par une transition se terminant sur l'un des sommets contenus dans la région
- L'activation par défaut se produit pour RegionC , car elle définit un pseudo-état initial InitialC et la transition provenant de InitialC vers StateC1 démarre l'exécution
EntryPoint2 sur SubMachine
La séquence de déclenchement à simuler est : [ Séquence , EVENT_A].
Lorsqu'une transition ciblée sur la référence de point de connexion CPR_Entry sur State2 est activée, State2 est activé, suivi de l'activation de la sous-machine via les points d'entrée de liaison.
- L'activation explicite se produit pour RegionX et RegionY , car chacun d'eux est entré par une transition se terminant sur l'un des sommets contenus dans la région - StateX1 dans RegionX , StateY1 dans RegionY
- L'activation par défaut se produit pour RegionZ , car elle définit un pseudo-état initial InitialZ et la transition provenant de InitialZ vers StateZ1 démarre l'exécution
Entrer d'un State : Default Entry
Cette situation survient lorsque l' State Composite est la cible directe d'une Transition.
Entrée par défaut de State2
La séquence de déclenchement à simuler est : [ Séquence , EVENTC].
Lorsqu'une transition ciblée directement sur State2 est activée, State2 est activé, suivi de l'activation par défaut pour toutes les régions de la sous-machine.
- L' State de RegionX est inactif car il ne définit pas de nœud initial
- RegionY est activé via InitialY et la transition vers StateY2 est exécutée
- RegionZ est activé via InitialZ et la transition vers StateZ1 est exécutée
Sortie State
État1 Sortie
- Séquence de déclenchement [ EVENT_C , EVENT_A] : la région C est désactivée en premier, puis la région A et la région B ; après l'exécution du comportement de sortie de State1 , la transition sortant de ExitPoint1 est activée
- Séquence de déclenchement [EVENT_A, EVENT_C] : RégionA et RégionB sont désactivées en premier, puis RégionC ; après l'exécution du comportement de sortie de State1 , la transition sortant directement de State1 est activée
Sortie État2
Séquence de déclenchement [EVENT_C, EVENT_A], donc l'état actuel ressemble à ceci :
- Séquence de déclenchement [EVENT_A, EVENT_C, EVENT_C, EVENT_B, EVENT_B] : RegionX est désactivée en premier, puis RegionY et RegionZ en dernier ; après l'exécution du comportement de sortie de State2 , la transition sortant directement de State2 est activée
- Séquence de déclenchement [EVENT_A, EVENT_B, EVENT_B, EVENT_C, EVENT_C] : RegionX est désactivée en premier, puis RegionZ et RegionY en dernier ; après l'exécution du comportement de sortie de State2 , la transition sortant de CPR_Exit3 est activée ( ExitPoint3 sur SubMachine est lié à CPR_Exit3 de State2 )
- Séquence de déclenchement [EVENT_C, EVENT_C, EVENT_B, EVENT_B, EVENT_A] : RegionY est désactivée en premier, puis RegionZ et RegionX en dernier ; après l'exécution du comportement de sortie de State2 , la transition sortant de CPR_Exit2 est activée ( ExitPoint2 sur SubMachine est lié à CPR_Exit2 de State2 )