【问题标题】:Are return arrows allowed in a UML Activity DiagramUML 活动图中是否允许返回箭头
【发布时间】:2016-03-16 04:28:11
【问题描述】:

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

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

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

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

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

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

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

用户

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

提前致谢。

更新 --- 在环顾四周后,似乎路径是一种方式。当您到达终点,即提供类似列表的内容而不是一直绘制箭头返回请求者时,在我看来,您只需在末端节点添加一个短语,内容如下:“返回列表”。

【问题讨论】:

  • 欢迎来到 StackOverflow,@Robertcode。如果您找到了问题的答案,请考虑accepting it(通过单击复选标记),并考虑对其进行投票(通过单击向上箭头)。接受答案向更广泛的社区表明您找到了解决方案,给自己一些声誉积分,并给回答您问题的人一些声誉积分。如果您的问题没有找到满意的答案,请发表评论。

标签: uml activity-diagram


【解决方案1】:

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

活动图的工作方式是每个动作都是一个步骤。一个已完成的动作向传出边提供令牌。一旦任何动作被提供所有它需要启动的标记,它就真正开始了。数据和控制都以这种方式工作。

您可以将每个操作视为函数调用。当所有进入边上的所有令牌都准备好时,调用该函数。当函数完成时,所有传出令牌都提供给所有启用的传出边。 (当可选保护不为假时,将启用传出边缘。)

我建议您阅读excellent series by Conrad Bock 以确保您了解活动的工作原理。否则,你会挫败自己和其他人试图让它符合你的成见。

【讨论】:

    【解决方案2】:

    没有什么能阻止您在活动图中引入循环,但为了清楚起见,每当您从一个活动中获得两个或多个可能的退出时,您应该在连接器上使用守卫来指定在什么条件下可以遵循连接器(例如 [x = 10] 另一个)。

    如果你想明确分支条件,你也可以使用决策(菱形)(例如,名为“x

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

    【讨论】:

    • 一个广告应该包含操作,而不是活动。
    猜你喜欢
    • 1970-01-01
    • 2016-02-08
    • 1970-01-01
    • 2012-12-23
    • 2018-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多