我需要识别UML 2.5状态机图的所有基本元素。不幸的是,这些图表的符号似乎有很多含糊之处,因为网上有很多不同的变化。
我的解释是每个状态机图都包含许多状态和许多转换。
每个州都有:
每次转型都有:
我对曲线如何工作的理解可以在图1中总结(符号 [前提条件]事件/ [过渡动作] 后的电动门功能示例)在图2中。
示例:当触发 事件 时(例如,按下关闭按钮), 前提条件评估(如果有的话)(例如,门口是空的),如果 前提条件 满足,则 转换操作(例如关闭门)被触发。
我的问题:
我知道有很多状态机图的变体,因此有不同的表示/解释,但我对UML 2.5感兴趣。
答案 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
行为。