UML:多样性概念

UML:多样性概念,uml,erd,Uml,Erd,我的问题是关于UML多重性。我试图理解多重性的概念,例如,一个人可以有很多车,但一辆车是给一个人的。如果有两个类,人和车,它将是1对多和1对1。然而,与另一个例子相比;一辆车和零件,一辆车会有很多零件,这是一对多…零件对汽车怎么样?它是1:M,因为许多汽车使用1个零件(螺钉)?或1:1,因为该零件仅用于1辆车?在尝试确定类和基数之间的关系时,建议始终考虑类的实例。在这种情况下,你有汽车和零件。例如: 如果您有一辆车(例如红色轿车),它将有许多部件(例如发动机、油箱、轮胎等) 如果您有一个特定部

我的问题是关于UML多重性。我试图理解多重性的概念,例如,一个人可以有很多车,但一辆车是给一个人的。如果有两个类,人和车,它将是1对多和1对1。然而,与另一个例子相比;一辆车和零件,一辆车会有很多零件,这是一对多…零件对汽车怎么样?它是1:M,因为许多汽车使用1个零件(螺钉)?或1:1,因为该零件仅用于1辆车?

在尝试确定类和基数之间的关系时,建议始终考虑类的实例。在这种情况下,你有汽车和零件。例如:

  • 如果您有一辆车(例如红色轿车),它将有许多部件(例如发动机、油箱、轮胎等)
  • 如果您有一个特定部件(例如一个发动机)的一个项目,则该项目只能安装并属于一辆车(例如红色轿车)
一辆汽车可以有一个或多个零件(1..M),一个零件最多只能安装在一辆汽车上(0..1)

因此,汽车和零件之间的关系为1:M(使用各侧的最大值,如下所示)


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

  • 一个人有一辆车——多重数是1:(0..n),因为一个人可以有几辆车,任何一辆车都有车主
  • 一个人驾驶一辆汽车-多重数为(0,1):(0,1),一个人可以驾驶一辆汽车,一辆汽车可以驾驶
  • 一个人坐在一辆车里——多重数是(0,n):(0,1),一个人只能坐在一辆车里。这辆车可以容纳0到几个人
因此,这两个类块将有三个不同名称的连接,每个连接都有自己的多重性

你可以有更多的联系,例如,被汽车撞死的人,修理汽车的人,有权驾驶汽车的人,等等,这取决于你的任务

如果您有许多不同的连接,那么为每种类型的连接创建一个特殊类将更容易理解


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

在这种情况下,零件仅属于一辆车,但许多车也使用该零件。因此零件到车的比例应为1:M@DAT3450是的,许多汽车也可以使用该部件,但不是相同的精确装置(它们各自有自己的)。例如,一辆红色汽车和一辆蓝色汽车都有发动机,但每辆汽车都有自己的发动机。我更新了我的答案,使之更清楚。再举一个例子,比如人和卡,卡是ATM卡,所以人对卡是1:M,那么卡对人呢?是1:M还是1:1?每个ATM卡都有一个所有者(即1..1),但一个人可以没有或有多张卡(0..M),这使得人卡关系为1:mbu。虽然它与汽车的部分相似,但在这种情况下,它是1:M,为什么是1:1
--------                          --------
| Car  |  0..1  ----------  1..M  | Part |
--------                          --------