2013-04-25 66 views
0

這是否有意義?UML圖表多功能

1) Car * -------(listeningTo)-------1 Radio Station 
2) Car * -------(couldTuneInto)-----1 Radio Station 

在爲我的項目創建類圖時,我遇到了上述問題。我的印象是,一般來說,上述必須雙向運作。因此,無論何時您測試是否有意義,您都可以檢查:「收聽1個電臺的車」。 (正確和有道理)。另一方面,我會測試它:「一個廣播電臺被許多汽車收聽。」 (這是否有意義?)

第二個也一樣。

我的問題是我是否正確設置了多樣性,是否合理。

感謝,

回答

3

我不認爲你的模型使得有很大的意義,但在此之前我解釋細節,讓我提出另一種模式,我認爲更準確地代表您的域名:

  1. "Car" [0..*] --- <listeningTo> --- [0..1] "Radio Station"

  2. "Car" [0..*] --- <couldTuneInto> --- [0..*] "Radio Station"

Association#1非常接近同一件事,唯一真正的區別是我的表示不需要汽車收聽廣播電臺(因此是0..1而不是1)。在你的關係中使用不同的動詞也是有意義的,因爲汽車一般不會聽廣播電臺(他們的人)。另外,就你提出這兩種關係的方式而言,「調入」和「傾聽」在邏輯上是如何相關的並不清楚。如果您將「收聽」替換爲「已調入」,則兩者均爲:

  1. 汽車相對於無線電臺狀態的表達更清晰;
  2. 「可以調入」和「被調入」之間的關係可以更容易地解釋。

關聯#2與您的模型不同。你的模型似乎說「許多車可以調到一個且只有一個電臺」。這並不代表現實世界,除非你正在建模的域名在一些只有一個廣播電臺的農村地區。 「可以調入」關係具有指示可能性的語義,並且一般來說,汽車可以調諧到多個無線電臺(因此尋找/掃描按鈕,預設電臺等的原因)是可能的。它也是可能的可能是因爲汽車無法調入任何無線電臺(例如天線斷開),所以這也應該是可選的,並且具有多個[0..*]