在UML活动图中表示循环

21
我正在尝试为我开发的一个基于sockets的网络井字棋游戏设计一个活动图(UML),使用活动分区(泳道)。所以,有三个分区:客户端1、服务器和客户端2。
这张图看起来很好,只是我不知道如何表示循环结构。
如果你看一下这个链接:activity diagram,并且看一下页面上的最后一张图(Partition),那就是我正在使用的活动图类型。
有没有人知道我怎样才能表示循环?谢谢!

你需要详细阐述你的问题领域。 - Martin Spamer
UML活动图可以以过程化的方式解释循环。但是我发现UML无法简单地描述函数表达式,例如(map/foreach/reduce)。 - Dennis C
3个回答

11

在您链接的页面下方查找扩展区域。使用带有迭代关键字的区域。

扩展区域是一个执行多次的结构化活动区域。输入和输出扩展节点被绘制成代表多个选择项的三个框的组合。关键字“iterative”,“parallel”或“stream”显示在区域的左上角。


2
这引起了我的注意,但我不确定如何使用它。您是否知道有哪些其他示例图使用了这个? - littleK
我目前没有任何非专有内容可展示。 - Eric J.

2
也许我有所遗漏,但为什么不直接使用循环中最后一个活动的退出流作为循环中第一个活动的输入流(在适当时使用保护条件完成循环)?

1

如果您正在使用一组数据作为输入,则“扩展区域”是完美的选择。 例如,您想将所有收入转换为欧元。那么,就像一个for()。

但是,如果您想要类似于while()的东西,您必须使用圆角矩形和菱形,并带有反馈循环。

例如:[玩二十一点] -> 如果我赢了 -> 我停止 -> 否则 -> 我再开始

我认为在活动图中执行循环的唯一有效方法是使用循环节点。您可以查看循环节点。但是我不确定它在OMG规范中是否定义得很好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接