预订演示
前页 后页

Loop节点

循环结构活动节点A定义循环,通常与“While”、“Repeat”或“For”循环语句相关联。

每个 Loop节点有三个分区:

  • 安装程序通常会启动要在循环退出条件中使用的变量;它在进入循环时执行一次
  • 测试定义循环退出条件
  • 体可以包含行动执行的动作,直到测试产生false值
测试或体的最终执行结果在循环执行完成后可用。

创建一个 Loop节点

活动图上A Loop节点是这样描述的:

A UML Loop Node showing Setup, Test and Body regions.

您可以通过将图表工具箱行动设置”、“测试”和“体”分区来定义循环节点。 “体”分区可以包含多个行动,可以链接并组织成所需的结构。元素在分区的左上角对齐,因此调整节点大小可以保持分区内和分区之间的结构组织。如果您尝试将节点缩小到结构大小以下,则节点会自动默认为“最佳拟合”大小。

An example UML Activity diagram featuring a Loop Node as modeled in Sparx Systems Enterprise Architect.

行动

也见

1

从工具箱的活动页面中,将一个结构活动图标图表活动图表上。

显示A简短的菜单。

2

选择“循环节点”选项。

Loop节点显示在图上,带有元素的“属性”对话框(如果对话框不显示,双击元素)。

3

根据需要完全尽可能多的常见元素属性字段,然后关闭“属性”对话框。

4

显示 Loop节点的属性窗口(“开始>应用程序>设计>属性”),然后单击“循环”选项卡。根据需要设置这些复选框:

  • 'Must Isolate' - 定义并发:如果选中,则节点内的任何object都不能在其外使用;对象与并行使用隔离
  • 'Tested First' - 定义循环类型;选择一个 For / While 循环,取消选择一个重复直到循环

5

对于这些字段中的每一个,根据需要单击Browse.或添加按钮,以显示“选择销”对话框并选择一个行动销:

  • 决策者(“测试”分区内的一个输出销,在执行测试后检查其值以确定是否执行循环体)
  • 循环变量输入
  • 循环变量
  • 体输出和
  • 结果
“选择销”对话框仅列出“循环变量输入”字段的输入销,而仅列出其他字段的输出销。

如果所需的行动销尚不存在,您可以单击对话框上的“加新”按钮为节点自动创建输入引脚或输出引脚。

6

在“节点”面板中,单击“设置”、“测试”或“体”单选按钮之一,列出 Loop节点相应分区中包含的行动和活动。

元素必须完全低于要为该分区列出的分区的顶部边缘 - 如果它以任何方式与上面的分区重叠,则它被视为该分区的一部分。

7

点击确定按钮保存Loop节点的属性。

8

右键单击节点中的“特征节点”并选择“特征交互”选项。

特征点显示“交互点”选项卡。

选中交互点的复选框。

行动图钉现在应该在图中可见,附在节点上。

管理结构元素

注记

  • 您可以通过右键单击 Loop节点属性窗口中的引脚名称并选择“在项目中查找浏览器”选项来查看现有行动销的确切位置;浏览器窗口中行动销的位置被展开并突出显示

OMG UML规范:

OMG Unified Modeling Language规范 (v2.5. 1 , p.479) 指出:

A是一个 StructuredActivityNode,它表示一个迭代循环。 A由 setupPart、test 和 bodyPart 组成,它们标识 LoopNode 中包含的 ExecutableNode 的子集。 LoopNode 中的任何 ExecutableNode 都必须包含在 LoopNode 的 setupPart、test 或 bodyPart 中。当 LoopNode 开始执行时,其中的任何 InitialNodes 都会立即启用。但是,包含在 LoopNode 中的 ExecutableNode 只能在执行包含它的 setupPart、test 或 bodyPart 部分时启用。

当一个部分被执行时,该部分中没有强制输入数据且没有传入的 ControlFlow 与同一部分中的源的任何 ExecutableNode 都将被启用并接收单个控制令牌。然后根据活动的通常语义继续执行,除了在未执行的部分中对 ExecutableNode 所做的任何提议都不会立即交付,而是保持挂起状态。如果目标 ExecutableNode 最终作为包含它的部分的稍后执行的一部分执行,则它可以接受任何待处理的提议。