预订演示

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

前页 后页

触发和过渡

在StateMachine图表上看到的大多数连接器都是Transitions;这些是将一个国家与另一个国家联系起来的线,表明拥有的区块(实例)可以更改的允许方式。它们更改的顺序和执行的行为将取决于块的条件和实际环境。例如,交通信号灯可能会呈琥珀色闪烁,直到维护工程师纠正故障为止;或者飞机可能会保持等待状态,直到目标机场的控制塔给出着陆许可为止。该图显示了指向不同方向的两个过渡,有效地创造了两国之间循环的可能性。

过渡总是源于一个国家,而目标是另一个国家,包括自我过渡的特殊情况,即源与目标是一个相同的目标。图中的线有一个标签,可以显示许多不同的选项: TriggerGuardEffect 。我们将详细讨论这些选项,因为它们表达了有关过渡的重要语义,包括是否将完全执行过渡。过渡可以在以下三种情况下进行:

  • 达到 -原始状态(或顶点)处于活动状态并准备完成其行为
  • 已遍历 -正在执行过渡(包括任何已定义的效果行为)
  • 已完成 -已达到目标状态,可以执行输入行为
这些术语对于系统工程师和其他人员进行协作工作,讨论StateMachine的执行及其对拥有模块的行为的描述时将很有用。

扳机

触发器是过渡的发起者,并且映射到据说触发事件发生的事件。正是这些触发器及其相关事件导致执行转换(触发)并使拥有的Block从一种状态转移到另一种状态。状态为活动状态时,它将有效地等待事件触发,并且只要其进入动作完成(无论其他因素如何),它就可以接收并响应事件。

此屏幕截图演示了如何在Enterprise Architect输入和查看“触发”,“保护”和“效果”。

该图说明了触发,保护和效果在图上的显示方式。在这种情况下,效果已定义为行为,并已链接到在块上定义的操作。

守卫

守卫是过渡的“守门人”,只有在守卫的表达式计算为True时,才会触发过渡。如果表达式的计算结果为false,则事件将被消耗,并且触发器不会导致Block状态发生可观察到的变化。

守卫的表达可以用简单的英语定义,但通常使用诸如对象约束语言之类的正式约束语言以约束形式编写。当使用模拟或可执行StateMachines时,条件将以要生成的代码语言的语法表示,例如JavaScript或C ++。这也适用于效果。在此图中,我们可以看到可以由人或机器评估的数学表达式。

特效

转移关系除了将拥有的块从一种状态转移到另一种状态外,其意义还在于它可以在自己的块或任何其他块上执行可能是活动或操作的行为。此行为是对源状态可能已定义的“退出”行为以及目标状态上的“进入”行为的补充。这确保了有一种机制可以在执行Transition期间更改行为。

贝塞尔曲线

Enterprise Architect具有用于处理包括StateMachine图表在内的图表的各种工具和设施,这些工具和设施可用于帮助创建和可视化StateMachines中编码的信息。在使用Transitions时特别有用的是能够路由连接器,这有助于使图更具吸引力。此图中连接器的线型已设置为“ 贝塞尔曲线”,使“过渡”的刚度较小。

可以通过将构造点拖动到新位置来更改曲线的形状。可以使用多种线型中的任何一种,从而为建模者提供了用于图表示的选项工具包。可以选择此上下文菜单,并分别为每个连接器设置线型。线条的颜色和粗细也可以从“布局”功能区设置。