1

我对系统中发生的并行活动有疑问。我们如何在图中表示它们?是否总是需要分叉或也可以使用决策元素?例如:用户可以在“添加图书”、“搜索图书”、“搜索用户”和“更新个人资料”中进行选择。所以用户登录系统后,可以在上述操作中进行选择。活动图 下面是我的活动图的图像。

4

2 回答 2

1

我将扩展一下 xmojmr 的答案。正如 xmojmr 所说,fork 和 join 用于同时和单独的活动,必须先完成这些活动,然后才能继续进行其他操作。

您的图表表明,为了执行选择操作,您必须执行添加图书、搜索图书、搜索用户配置文件和查看配置文件。你必须每次都做这四个,当四个都完成时,你做一个你想继续吗。此外,添加一本书需要您添加一本书、删除一本书和查看图书列表,所有这三项操作。

这显然是不正确的。在这两种情况下,您都是从一组可能性中选择一个。因此,正如 xmojmr 所说,您正在寻找一个决定。

现在,您将使用分叉和连接的一个示例是执行背景检查。您将检查许多来源,例如指纹数据库、DMV 检查、照片匹配数据库和犯罪记录数据库。在进行完整的背景调查之前,您必须检查所有这些。但是,这四个都不依赖于其他的,并且每个都可以与其他的同时运行。这是一种使用分叉和连接的场景。

于 2014-11-03T17:10:10.217 回答
0

根据http://www.uml-diagrams.org/activity-diagrams-reference.html _

..分叉节点是一个控制节点,具有一个入边和多个出边,用于将入流拆分为多个并发流。

..决策节点是一个控制节点,它在一个或两个传入边上接受令牌,并从一个或多个传出流中选择一个传出边。

在您的情况下,1 个用户将选择并执行 1 个可能的操作,并且一次执行 1 个。用户不会同时使用 2 个或更多鼠标或 2 个或更多浏览器选项卡来同时使用该应用程序。

于 2014-11-02T18:17:52.577 回答