2016-07-20 25 views
0

例子:UML 2.0我可以在兩種用例之間建立雙向擴展關係嗎?

  • 使用案例1:買飲料
  • 使用案例2:購買食品

的用戶能夠進入我們的商店,並通過訂購一些飲料開始。我們可以向他推銷一種食品=>購買食物延伸購買飲料。
另一種方式也是可能的。用戶想要點三明治,我們向他推銷一杯飲料。 =>購買飲料延伸購買食物。
這是建模的正確方法,還是使用通用化/專業化會更好?如果我們有專門購買飲料/購買食品的購買物品,
或者也許還有一些其他的方式......?

+0

您認爲哪種系統表示「購買」並增值?對演員本身。您可能正在描述一個POS。所以「賣X」應該基本上是UC。 –

回答

0

您正在嘗試使用<<extends>>(這種方式)進行功能分解。用例不是關於系統的功能分解,而是關於考慮中的系統(SUC)提供給演員的獨特附加價值的動作綜合。嘗試從這個角度來看它。那麼SUC的獨特附加價值是什麼(我猜是銷售系統)呢?它是Sell Goods,或者Sell FoodSell Drinks之間存在差異,那麼它們是不同的UC或者沒有,在這種情況下,您不需要兩個UC。

0

延伸永遠不是雙向的(即延伸關係始終是定向的)。

在你的情況下,你只有一個用例,如Thomas Kilan所建議的。

如果你堅持要區分使用案例,泛化是一個不錯的選擇,但最有可能在你的情況下是不必要的。雖然這種情況非常罕見(當然,這不是你的情況),但是如果代表的是相反方向的相同用例(或者使用擴展關係構建其他形式的循環),則不禁止使用兩個相同用例之間的擴展關係系統的邏輯(例如管理兩個獨立的實體,每個實體可以單獨處理,或者與兩者中的任何一個一起作爲啓動的實體)。實際上,這些循環可以在與(未來)系統用戶討論期間解決,應該避免。另一方面包括關係永遠不能創建一個循環,如果他們這樣做的模型是無效的。

相關問題