Activity 图可选流程(或逻辑)
Activity diagram optional flows (OR logic)
这道题可以是基础题。但是我无法通过谷歌搜索或在 SO 中搜索找到答案。
我有一个用户可以执行三个操作。
- 查看仪表板
- 查看报告
- 创建用户
当用户登录系统时,他可以在注销前以任意顺序执行上述列表中的一项或多项任务。
一些例子:
查看仪表板 -> 查看报告 -> 查看仪表板 -> 注销
查看仪表板 -> 查看报告 -> 创建用户 -> 查看报告 -> 创建用户 -> 查看仪表板 -> 注销
我是否可以像下面这样简单地添加一个 fork 和一个 join 来涵盖所有可能的组合?或者描绘这种情况的一般做法是什么。谢谢。
不,那是不正确的。 fork/join 创建并行流。这意味着必须执行并完成所有三个操作,直到可以进行注销。
绘制这些条件有点棘手:
A/B/C possible
守卫让你选择一次任何动作。我在图中缩写了它,但您可以简单地在图表中添加注释来解释它。或者,如果您敢于编写一些 OCL。与 Logout
相同,只能执行其他操作之一 运行 一次。有一个简单的循环,因此您可以 select 每个动作一个接一个地进行。
这道题可以是基础题。但是我无法通过谷歌搜索或在 SO 中搜索找到答案。
我有一个用户可以执行三个操作。
- 查看仪表板
- 查看报告
- 创建用户
当用户登录系统时,他可以在注销前以任意顺序执行上述列表中的一项或多项任务。
一些例子:
查看仪表板 -> 查看报告 -> 查看仪表板 -> 注销
查看仪表板 -> 查看报告 -> 创建用户 -> 查看报告 -> 创建用户 -> 查看仪表板 -> 注销
我是否可以像下面这样简单地添加一个 fork 和一个 join 来涵盖所有可能的组合?或者描绘这种情况的一般做法是什么。谢谢。
不,那是不正确的。 fork/join 创建并行流。这意味着必须执行并完成所有三个操作,直到可以进行注销。
绘制这些条件有点棘手:
A/B/C possible
守卫让你选择一次任何动作。我在图中缩写了它,但您可以简单地在图表中添加注释来解释它。或者,如果您敢于编写一些 OCL。与 Logout
相同,只能执行其他操作之一 运行 一次。有一个简单的循环,因此您可以 select 每个动作一个接一个地进行。