2017-07-31 167 views
0

我的问题是关于UML多样性的。我试图理解多重性的概念,例如,一个人可以拥有多辆汽车,但一辆汽车是一人。如果有2个等级,人和汽车,它会是1到很多,1到1.但是,与另一个例子相比,汽车和零部件,1辆汽车会有很多很多的零件,这是一对多......汽车零件怎么样?它是1:M,因为1部分(螺丝)被许多汽车使用?或1:1导致该部件仅用于1辆车?UML:Multiplicity概念

回答

1

当试图确定类和基数之间的关系时,总会考虑类的实例。在这种情况下,你有汽车和零件。例如:

  • 如果你有一辆车(如红色轿车),它都会有一些零件(如发动机,油箱,轮胎等)
  • 如果你有一个项目特定部件(例如一台发动机),只能安装并属于一辆车(如红色轿车)。

汽车可以有一个和多个零件(1..M)之间的任何地方,一个零件最多只能安装在一辆汽车中(0..1)。

因此,汽车和零件之间的关系是1:M(使用如下所示的每边的最大值)。

--------       -------- 
| Car | 0..1 ---------- 1..M | Part | 
--------       -------- 
+0

在这种情况下,该部件只属于一辆汽车,但很多汽车也使用该部件。因此它应该是1:M的部件到汽车? @ dat3450 –

+0

是的,许多汽车也可以使用该部件,但不是完全相同的部件(它们各自拥有自己的部件)。例如,一辆红色的汽车和一辆蓝色的汽车都有发动机,但每辆车都有自己的发动机。我已经更新了我的答案,以便更清楚。 – dat3450

+0

另一个例子就像人卡,卡是提款卡,所以卡到卡的人是1:M,卡给人的又是什么?是1:M还是1:1? –

0

有可能为同一对类不同的连接方式:

  • 一个人有车 - 多样性为1:(0到n),一个人能有几辆车,任何车有车主。
  • 一个人开车 - 多重是(0,1):(0,1),一个人可以开CAN车,一辆车可以开车。
  • 一个人坐在车里 - 多样性是(0,n):(0,1),一个人只能坐在一辆车上。汽车可以容纳0人 - 几个人。

因此,这两个类块将有三个不同名称的连接,每个连接都有其自身的多重性。

根据您的任务,您可以建立更多的连接,例如,被汽车,人员,修理汽车,人员,有权驾驶汽车等的人员死亡的人员。

如果你有很多不同的连接,为每种连接创建一个特殊的类将会更容易理解。

但无论如何,这对类本身并没有定义连接类型。为了设置连接,你必须写下更多的信息。