如何解释UML 2.5状态机图?

时间:2016-04-23 12:58:14

标签: uml state statechart

我需要识别UML 2.5状态机图的所有基本元素。不幸的是,这些图表的符号似乎有很多含糊之处,因为网上有很多不同的变化。

我的解释是每个状态机图都包含许多状态和许多转换。

每个州都有:

  • 可选的条目操作
  • 可选执行操作
  • 可选的退出操作

每次转型都有:

  • 触发事件
  • 可选的前提条件
  • 转换操作(后置条件)。

我对曲线如何工作的理解可以在图1中总结(符号 [前提条件]事件/ [过渡动作] 后的电动门功能示例)在图2中。

示例:当触发 事件 时(例如,按下关闭按钮), 前提条件评估(如果有的话)(例如,门口是空的),如果 前提条件 满足,则 转换操作(例如关闭门)被触发。

图1 Electric Door State Machine

图2 enter image description here

我的问题:

  1. 转换操作 是实现过渡还是 只是在过渡期间发生的动作。简单来说, 如果 转换操作 出错,那么转换(新的 成功?我的问题基本上来自事实 很多消息来源都建议不要使用 过渡 行动 ,当您到达新的时,可以使用 输入操作 州。在我的理解中,虽然 转换操作 是 实现过渡,因此在进入之前就会发生 新状态,与发生的 输入操作 相比较 到达新州后立即。因此,就过渡本身和时间而言,这是两种截然不同的行动。在这里了解这些操作的 时间 至关重要。
  2. 我的一般解释是否正确? (例如,我对事件,后置条件和过渡行动可能来自图1的理解)
  3. 我知道有很多状态机图的变体,因此有不同的表示/解释,但我对UML 2.5感兴趣。

1 个答案:

答案 0 :(得分:2)

过渡行动是UML 2.5所说的过渡的结尾:

  

效果:行为[0..1] {subsets Element :: ownedElement}(与A_effect_transition :: transition相反)指定Transition触发时要执行的可选行为。

虽然州的<<entry>>是分配给州本身的行为。也就是说,它将从过渡到来的地方触发。相比之下,上述效果仅在过渡期间触发。

效果不会出现问题&#34;。执行什么行为。这里没有检查条件。

是否触发转换可以由您错误命名为[guard]的{​​{1}}控制。 (人们可以开始争论,但你需要使用[precondition]。)

  

后卫:约束[0..1] {subsets Namespace :: ownedRule}(与A_guard_transition :: transition相反)   守卫是一种约束,可以对过渡的射击提供细粒度的控制。在StateMachine调度Event事件时评估防护。如果此时保护为真,则可以启用转换,否则禁用转换。卫兵应该是没有副作用的纯粹表达。带有副作用的警卫表达形成不良。

关于时间安排,你可以想到沿着州旅行的令牌。当守卫让你通过时,会执行[guard]行为。然后转换<<exit>>,最后是下一个州的effect行为。