【问题标题】:How do I represent a loop in an activity diagram?如何在活动图中表示循环? 【发布时间】:2016-10-09 04:55:52 【问题描述】: 我想在 UML 活动图中表示一个循环。这是我的情况: 对于每个文件夹,我检查该文件夹中的每个文档 对于每个文档,我都会检查其内容: 如果无效(基于关键字搜索),请执行操作 X 并传递到下一个文档。 验证所有文档后,继续下一个文件夹。 谁能告诉我这应该是什么样子? 【问题讨论】: 标签: uml 【解决方案1】: 您可以使用 3 种不同的符号。 由于您的循环基于某些元素(文件夹、文档),因此最方便的方法是使用扩展区域(迭代类型)。 第二个选项,当你有一些基于保护的循环是循环节点时,这是一个首选。 最后一种可能性是简单地构建结构正确的决策/合并结构。 前两个的好处是简洁明了。嵌套循环也很容易。最后一个选项都不是这样。但是,如果您将图表展示给不熟悉 UML 的人(尤其是如果您没有机会解释特定结构的含义时),最后一种方法通常会得到最广泛的认可和理解。 【讨论】: 感谢您的回答,我在 StarUML 中找不到这两个循环中的任何一个,您能否给我一个软件/在线工具,可以创建这样的活动图? 好吧,我正在使用 Enterprise Architect,但这是一个专有工具。我不知道是否有任何免费工具有这个节点。 添加了反映您的案例的示例图表以更加清晰。 顺便说一句,我在“Modelio 3.5”中找到了“条件节点”,它是一个免费软件 对于第二张图 - 设置区域运行一次,当流进入节点时。测试区域在主体运行后的每次迭代中运行,如果返回 false,则退出循环节点,如果返回 true,则运行主体区域。如果在设置系统后应该运行第一个测试或主体,没有明确的规则。我还看到了测试部分只是一个布尔表达式的图表。规范没有指定确切的方法,也没有提供示例,至少在规范的相关部分。