通过多个层次结构级别进行 UML 本地/外部转换

问题描述 投票:0回答:1

有人可以告诉我所描述的转换在 UML 中是如何工作的吗? 执行哪些进入退出转换? 假设转换有与之关联的操作,执行顺序是什么? 这在 UML 中合法吗?

enter image description here

uml state-machine
1个回答
0
投票

是的,这是合法的。

如果要进行分层,则顺序是在进入时从最外层到最内层,在退出时从最内层到最外层。让事情变得更复杂的是,你需要了解,你什么时候真正离开这个州。

让我们看一下从 C 到 A 的两条线。

第一个向上,从A出来,然后弯曲返回到A。这意味着你退出C,B,A,然后进入A,这将是活动的执行顺序。请注意,如果转换本身有任何 Activity,它将在退出 A 时的 Activity 和进入 A 时的 Activity 之间执行。因此我们有退出 C、退出 B、退出 A、转换、进入 A。

第二条线向右走,但停在A边界。这意味着,您永远不会退出(也不会重新进入)A。但是,您会退出C,然后退出B,并且按照该顺序执行退出活动。如果有任何转换活动,它将最后运行。所以我们有 C 出口、B 出口、过渡。

入口的行为顺序相反(因此分别为出口 A、过渡、入口 A、入口 B、入口 D(曲线)和过渡、入口 B、入口 D(直线)

最后,B 内的 Start 伪状态开始并前往 C 始终保持在 B 内,因此唯一的活动将是转换,进入 C。

© www.soinside.com 2019 - 2024. All rights reserved.