2017-04-18 211 views
1

對於我所知的一個擴展關係,當一個用例是可選的,但包含是當需要使用用例的操作時(但不是所有時間)。我想對一個登記系統用例模型,並用懷疑使用哪種關係來了,我有兩個可能的選項是:包含或擴展爲UML?

enter image description here

我對(B)的方式更敏銳代表這種行爲,因爲修改數據和刪除數據的部分不應該是可選的,並且它們用於維護學生的記錄(對於圖表中的錯字)。即使有一位同事說,(a)選項更準確地處理這種情況。兩者都可以正確嗎?如果是這種情況,可能會發生這種情況? 謝謝

回答

2

當您設計使用案例時,陷入一個簡單的陷阱是'功能分解',您將用例劃分爲太多的子案例。這裏的經典是CRUD操作。雖然「維護記錄」是一個明智的用例,但您很少想將其分解爲「創建記錄」,「刪除記錄」等。因此,在某種程度上,關於「包含...」和「延伸...」問題的答案會是'不'。

有時候,如果一個演員可以搜索,而只有一個特定的演員可以創建一個記錄,或者如果在刪除記錄時有一個特別複雜的認證步驟,您可能需要製作這些單獨的用例。在這種情況下,您可能不需要「維護記錄」用例,但會分別描述這兩種情況。

如果你必須都有,那麼我會建議'修改數據'擴展'維護記錄',因爲你有時可能會執行它,但不會總是。

結帳這樣的回答:CRUD in a use-case diagram?

,你會發現有用的討論是在這裏http://www.se.cs.put.poznan.pl/knowledge-base/software-engineering-blog/crud-pattern-in-use-cases

0

我會說,這是更好地刪除您的圖表「維修記錄」的用例。這聽起來像一羣用例。修改數據和刪除數據是這個組中的兩個唯一的用例。