如何在 UML 中表示作为多维数组的属性?

How can I represent an attribute which is a multidimensional array in UML?

我正在用 UML 设计一个新项目,我需要一个多维数组作为我的一个属性 类(下图)

现在我放了List of List是为了让大家明白我的目的是什么,但这在标准的UML中是不正确的。我该怎么办?

感谢您的帮助!

虽然有点特定于语言,但这并不违法。显然它是纯文本(因为表达式中有一个多余的“)”)。如果你想让这门语言独立,你可以这样设计:

请注意,点表示该角色是另一侧 class 中的拥有属性。所以我也取出了 conditions 并将其放入 String.

的关联中

有多种方法可以做到这一点,具体取决于您要表示的内容。如果您想保留模板,则可以使用 UML 语法来支持它(覆盖 Class 右上角的虚线框允许您表示模板参数化)。因此,您可以通过这种方式指定一个列表模板 class,然后您可以将其参数化为“操作”的类型(在 UML 中,这种类型称为“绑定元素”)。有几种表示绑定元素的方法,但 UML 确实允许像您一样使用 Foo<T> 的 c++ 语法。所以像 actions: List<string>[0..*] 这样的东西会表示属性“动作”的多个实例,每个实例都是一个 List<string>。您也可以按照 actions: List<List<string>> 的方式指定操作,这是一个“操作”属性。另一种方法是定义一个常规的 Class 来封装数组的结构逻辑,并用它键入“actions”。我还没有看到像 actions: string[0..*][0..*] 这样的语法,但我会查找它并确定 UML 是否支持它。