如何在 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 是否支持它。
我正在用 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 是否支持它。