预订演示
前页 后页

条件节点

条件结构活动节点是“If-Then-Else”编程结构A建模等价物。在最简单的情况下,它由一个子句组成,其中包含:

  • 评估条件A测试分区,以及
  • 如果满足测试条件,则执行一个或多个操作A体分区
您可以有多个子句,因此如果不满足测试条件,则忽略其体,处理移至下一个子句并评估另一个测试条件。

每个条款都有一个'Decider'行动销来保存测试的结果,以及一个'体输出'行动销来保存体动作的结果(如果执行的话)。行动销节点本身有一个结果移动节点,它提供了节点的整体结果(第体要执行的节点的输出)。

条件节点在活动图中的表示类似于:

A UML Conditional Activity Node showing Test and Body regions.

您可以通过将其他活动图表元素从工具箱页面拖到元素的适当分区中来定义条件节点,并根据需要链接和组织结构。元素在分区的左上角对齐,因此调整节点大小可以保持分区内和分区之间的结构组织。如果您尝试将节点缩小到结构大小以下,则节点会自动默认为“最佳拟合”大小。

创建 Conditional节点时,将显示“属性”对话框。其中大部分你可以完成任何其他元素一样完成。但是,对于 Conditional节点,您还可以显示属性窗口,其中有一个额外的“条件”选项卡。

在此选项卡的“结果”面板中,添加一个行动销以保存节点的结果,单击“添加”按钮以显示“选择销”对话框。

A条件节点自动包含一个包含测试分区和体分区的子句,以及一个销器和体输出销。您可以根据需要添加更多子句。对于每个条款,您为决策者和体输出添加一个行动销。单击保存按钮以保存子句定义。

“选择销”对话框仅显示适合上下文输出如果所需的行动销尚不存在,您可以单击对话框上的“加新”按钮,在相应的父节点下自动创建一个输出销。

对于“结果”和“体输出”条目,您可以通过右键单击条目并选择“在项目中查找浏览器”选项来查看每个行动销的确切位置。

默认情况下,“节点”面板列出了测试分区中包含的行动和活动。单击“体”单选按钮以列出包含在体分区中的元素。元素必须完全包含在要在其中列出的体分区中 - 如果它与测试分区有任何重叠,则将其视为测试分区的一部分。

添加或删除子句

要添加另一个条款,请单击“条款”列表下方的“添加”按钮。这会在列表中插入一个新子句,并确定哪个是前面的(前身)子句和(如果合适的话)哪个是后面的(后继)子句。清除“条款”面板中的其余字段,以便您可以添加决策者和体输出行动销。新的“测试”和“体”分区会立即添加到图表上的元素中,您可以使用活动元素填充这些分区,然后在“节点”面板中识别这些元素。

要删除条款,请在列表中突出显示它并单击删除按钮。这会立即从图表中删除子句的相应分区,以及它们包含的所有活动元素。从其他两个子句之间删除一个子句会调整数字顺序;例如,如果从第1条和第 3 条之间删除第 2 条,则第 3 条将重命名为第 2 条,并且任何其他条款也上移一位。

OMG UML规范:

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

ConditionalNode 是A StructuredActivityNode,它从一些可选的 ExecutableNode 集合中选择一个来执行。 ConditionalNode 由A或多个子句组成,每个子句代表条件的一个分支。 A子句由一个测试部分和一个主体部分组成,它们标识 ConditionalNode 中包含的 ExecutableNode 的不相交子集。 ConditionalNode 中的任何 ExecutableNode 都必须包含在恰好一个子句的测试部分或正文部分中。