UML 活动图中是否允许使用返回箭头



我想在UML活动图中表示以下内容

1) 用户从应用程序请求产品列表

2) 应用程序从数据库请求产品列表

3) 数据库将产品列表返回给应用程序

4) 应用程序向用户显示列表

最初,我认为这将是一个简单的情况,箭头从左到右连接到每个活动框,然后将箭头一直拉回请求开始的位置,如下所示:

用户-->应用程序-->数据库

用户<--应用程序<--数据库

但后来我注意到我没有看到带有箭头的 UML 活动图示例,这些箭头显示将任何内容返回给请求者。它们都显示了通往终点的单向路径。 如果退货以请求获得某些东西开始,是否总是暗示返回? 返回箭头使用不正确吗?

提前谢谢。

更新---环顾四周后,似乎路径是单向的。 当您到达终点时,即提供类似列表的东西,而不是一直绘制箭头回到请求者,在我看来,您只是在终端节点中添加了一个短语,如下所示:"返回列表"。

您似乎不了解活动中的令牌语义。活动图不表示一个操作返回到上一个操作的调用堆栈。但是,一个操作调用另一个调用行为操作确实像调用堆栈一样工作。

活动图的工作方式是每个操作都是一个步骤。已完成的操作会向传出边缘提供令牌。一旦为任何操作提供了启动所需的所有令牌,它就会真正启动。数据和控制都是这样工作的。

您可以将每个操作视为函数调用。当所有传入边缘上的所有令牌都准备就绪时,将调用该函数。函数完成后,所有传出令牌将提供给所有已启用的传出边。(当可选防护不为 false 时,将启用传出边。

我建议您阅读康拉德·博克(Conrad Bock)的优秀系列,以确保您了解活动的工作原理。否则,你会让自己和其他人感到沮丧,试图让它符合你的先入之见。

没有什么能阻止您在活动图中引入循环,尽管为了清楚起见,每当一个活动有两个或更多可能的退出时,您应该在连接器上使用防护来指定在哪种条件下可以遵循连接器(例如,一个连接器上的 [x <10]和另一个连接器上的 [x>= 10])。

如果要显式创建分支条件(例如,名为"x <10 ?"的决策),也可以使用决策(菱形);然后,从前面的活动到决策绘制单个连接器,并从决策中绘制两个受保护的连接器。

但是从您的示例中,您似乎根本没有绘制正确的活动图。在活动图中,节点必须是活动,而不是参与者。每个活动的名称中都应该有一个动词。因此,"用户从应用程序请求产品列表"是一个很好的活动,但是如果您有一个名为"用户"的活动,那么您就做错了。

相关内容

  • 没有找到相关文章

最新更新