如何在UML中表示属性是多维数组?

时间:2018-05-26 09:42:34

标签: uml class-diagram

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

Example of class with multidimensional array as attribute

现在我已经列出了列表列表,让每个人都了解哪些是我的目的,但这在标准UML中是不正确的。我该怎么办?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

这不是非法的,虽然有点语言特定。显然它是纯文本(因为在表达式中有一个多余的“)”。如果您想使这种语言独立,您可以这样设计:

enter image description here

请注意,点表示角色是另一侧的类中的拥有属性。所以我也提取了conditions并将其放入与String的关联中。

答案 1 :(得分:1)

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