预订演示

请注意 : 本帮助页面不适用于最新版本的Enterprise Architect. 最新的帮助文档在这里.

前页 后页

示例:入口和出口点(连接点参考)

Enterprise Architect提供对入口和出口点以及连接点引用的支持。在此示例中,我们为MyClass定义了两个StateMachines -StateMachineSubMachine。

StateMachine Entry, Exit and Connection Points in Sparx Systems Enterprise Architect 

SubMachine Entry, Exit and Connection Points in Sparx Systems Enterprise Architect 

  • State1是一个复合状态(由于具有多个区域,因此也称为正交状态),具有三个区域: RegionARegionBRegionC
  • State2是一个称为SubMachine的SubMachine状态,它具有三个区域: RegionXRegionYRegionZ
  • State1上定义EntryPoint1以激活三个区域中的两个;在SubMachine上定义EntryPoint2以激活三个区域中的两个
  • ExitPoint1State1上定义;两个出口点ExitPoint2ExitPoint3是在冲锋枪定义
  • 连接点引用在State2上定义,并绑定到键入SubMachine的入口/出口点
  • 定义了初始节点以演示区域的默认激活

输入状态:入口点输入

EntryPoint1 状态1

启用针对EntryPoint1的过渡时,将激活State1 ,然后激活所包含的Region。

Entry point during simulation of executable state machine

  • 区域A和区域B发生显式激活,因为它们中的每一个都由终止于该区域包含的顶点之一的过渡输入。
  • 默认激活发生在RegionC上 ,因为它定义了一个初始伪状态InitialC,并且从InitialCStateC1的转换开始执行

EntryPoint2 冲锋枪

要模拟的触发序列为:[EVENT_C,EVENT_A]。

启用针对State2上的连接点引用CPR_Entry的转换时,将激活State2 ,然后通过绑定入口点激活SubMachine。

Entry point during simulation of executable state machine

  • 区域X和区域Y发生显式激活,因为它们每个都通过过渡输入,终止于区域X中包含的一个顶点-区域X中的StateX1 ,区域Y中的StateY1。
  • 默认激活发生在RegionZ上 ,因为它定义了一个初始伪状态InitialZ,并且从InitialZStateZ1的转换开始执行

输入状态:默认输入

当综合国是过渡的直接目标时,就会出现这种情况。

默认 状态2

要模拟的触发序列为:[EVENT_A,EVENTC]。

启用直接针对State2的过渡时,将激活State2 ,然后默认激活所有SubMachine区域。

Entry point during simulation of executable state machine

  • RegionX的状态无效,因为它没有定义初始节点
  • RegionY通过InitialY激活,并执行转换到StateY2
  • RegionZ通过InitialZ激活,并执行转换到StateZ1

国家出口

State1出口

  • 触发序列[EVENT_C,EVENT_A]: 首先停用RegionC ,然后停用RegionARegionB ;执行State1的退出行为后,启用从ExitPoint1传出的转换
  • 触发序列[EVENT_A,EVENT_C]: 首先停用RegionARegionB ,然后停用RegionC ;执行State1的退出行为后,启用直接从State1传出的转换

State2出口

触发序列[EVENT_C,EVENT_A],因此当前状态类似于:

Entry point during simulation of executable state machine

  • 触发序列[EVENT_A,EVENT_C,EVENT_C,EVENT_B,EVENT_B]: 首先禁用RegionX ,然后是RegionY ,最后是RegionZ ;执行State2的退出行为后,启用直接从State2传出的转换
  • 触发序列[EVENT_A,EVENT_B,EVENT_B,EVENT_C,EVENT_C]: 首先禁用RegionX ,然后是RegionZ ,最后是RegionY 。执行State2的退出行为后,启用从CPR_Exit3传出的转换( SubMachine上的ExitPoint3绑定到State2的 CPR_Exit3
  • 触发序列[EVENT_C,EVENT_C,EVENT_B,EVENT_B,EVENT_A]: 首先禁用RegionY ,然后是RegionZ ,最后是RegionX ;执行State2的退出行为后,启用从CPR_Exit2传出的转换( SubMachine上的ExitPoint2绑定到State2的 CPR_Exit2