提问人:perpetter 提问时间:9/23/2023 最后编辑:perpetter 更新时间:9/25/2023 访问量:76
如何表示在状态机中嵌套替代的序列图?
How can i represents a sequence diagram that has nested alternative in State machine?
问:
我创建了一个序列图,该图有一个 alt,治疗师可以选择控制录像机或与一对夫妇交谈,其中有两个 alt,其中第一个 alt 是与 A 交谈或与 B 交谈,第二个 alt 是对 A 的控制或对 B 的控制
参考
状态机:
我不确定,我如何为状态机创建一个循环,我尝试在 Greeting B 之后创建一个新状态,我称之为 session,这个想法是,在其他每个状态之后,都可以进入会话状态,然后从那里转到其他状态,代表某种循环。
但是我遇到了这个问题,我在序列图中做了两行新行,这样我就可以在问候后进入另一个状态,当我处于与 B 交谈的状态时,我可以返回会话,使用输入 replyB,但如果我现在在会话中并想去与 A 交谈,我不知道使用什么输入以及如何
状态机上的更新:
答:
1赞
Christophe
9/24/2023
#1
序列图对实例之间的交互方案进行建模。状态图记录了实例、类或系统的状态,以及如何从一种状态过渡到另一种状态。因此,没有将序列转换为状态的技巧。这完全取决于状态图的重点和相关的状态。
我没有你的场景的全貌,但如果状态图是针对 的,你可以想象状态:Therapist
- 与 A 交谈
- 与 B 对话
- 控制 A
- 控制 B
- 分析
- 分析 B
探索仍然存在,是什么触发了状态的变化?收到的消息是一个很好的触发器,但发送的消息并不能说明是什么事件使治疗师发送了消息。
在任何情况下,状态必须具有不同的名称(因此没有两个状态)。s1
分叉用于并行状态,例如,当将控制权交给具有正交区域的复合状态时。这里似乎不需要。决策节点用于替代方案,例如,当相同的传出转换可以根据某些条件达到几种状态之一时。语义类似于 ,但恕我直言,最好在状态图中避免使用它们,并保留在活动图中。alt
评论
0赞
perpetter
9/25/2023
我还没有弄清楚循环伙伴,你能帮忙吗
1赞
Christophe
9/26/2023
状态图中没有等价的 a。状态图不用于对算法进行建模。循环通常是当一种状态转换回以前的状态时。如果要使它依赖于某些条件,则需要添加一个带有循环条件的决策节点。(顺便说一句,原则上,在 SO 上,您不应该从根本上编辑一个问题来提出新问题,而是提出一个新问题)loop
评论