2017-07-31 166 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人 - 幾個人。

因此,這兩個類塊將有三個不同名稱的連接,每個連接都有其自身的多重性。

根據您的任務,您可以建立更多的連接,例如,被汽車,人員,修理汽車,人員,有權駕駛汽車等的人員死亡的人員。

如果你有很多不同的連接,爲每種連接創建一個特殊的類將會更容易理解。

但無論如何,這對類本身並沒有定義連接類型。爲了設置連接,你必須寫下更多的信息。