在保护条件下使用对象的 UML 决策节点语法

UML decision node syntax for using objects in guard condition

给定一个对象 array,某个任意 class Array 的实例,为此目的具有属性 length.

我如何建模 UML activity 图,在某些时候,在控制流语句中使用 array.length,即在决策节点的守卫中。

array = getArray();
if (array.length > 5)
    save();
else
    waitForData();

我知道使用的决策节点的守卫是[array.length > 5][array.length <= 5]。但我不确定如何将其与 activity 图中的对象流集成。

UML 没有指定应该如何描述守卫。它只要求它是一个逻辑表达式,即计算结果为真或假的表达式。 您可以使用自然语言、任何编程语言或 OCL。 您使用的声明是绝对有效的。 此外,您可以将对象的状态放在对象节点上,例如[长度 > 5]