【问题标题】:Define the multiplicity of an association by an attribute通过属性定义关联的多重性
【发布时间】:2017-01-09 00:16:08
【问题描述】:

在示例中,我使“文件夹”类型的每个对象都有一个“文件”类型的数组,名称为“内容”,大小为“n”作为私有属性(只是说我对它的理解以确保我在那里并没有错)。这就是我在大多数示例中的看法,但我现在永远不明白“n”是什么。它是“文件夹”对象的另一个属性,还是我们在 UML 图的另一部分中指定的东西,或者完全是其他东西?

我想要实现的是“文件夹”类型的每个对象都有一个附加属性,该属性指定“内容”数组的大小。

【问题讨论】:

  • 该图不正确。 n 应该是 0..*.
  • @JimL。谢谢,但似乎似乎有一种方法可以将 n 或 m 等变量作为多重性的参数as its mentioned here as an example
  • 多重性是一个规则,而不是一个变量。如果您使用集合来表示属性“内容”,则该集合将跟踪其中有多少东西。
  • @JimL。哦,好的,现在我明白了。所以它基本上像Java中的数组一样工作。非常感谢

标签: uml


【解决方案1】:

当然,您不仅可以写 0..*,还可以使用任何具体数字。如果该号码有一些外部定义,您可以在那里使用n,就像您拥有它一样。

external definition 的意思是“除注释外,不由类图元素定义”。您需要在类图页面上说明但由于 UML 限制而不能说明的所有内容都应该放在note 中。

因此,n 可以在页面上的适当注释中或在某些不同的文档中或两者中定义。

正如@Kilian 所提到的,在此类变量的一些更复杂的依赖关系的情况下,您可以使用约束。这种方式在我看来是最强大的。

但是如果n没有客观的定义或依赖,而是一个可以有任何意义的简单变量,那么使用规则是正确的,比如0..*,或者1..@ 987654327@,或者可能是 3..5,根据您正在使用的实际情况。

【讨论】:

  • 您应该提到,在这种情况下可以使用约束来表达属性和数组维度之间的限制或相关性。
  • @ThomasKilian 同意并加入。 :-) 我什至认为它们是最强大的工具。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多