UML 用例圖中,,的區別

區別extends 、 use、include

extends是對已有用例的擴展

use是使用了另一個用例

include,是指一個用例包含另一個用例

extends的關鍵在於,他不會修改原有的用例說明,而是在擴展後的用例裏描述擴展點

比如:
用例UserLogin,另一個用例CheckPermisonViaLDAP,擴展時說明在UserLogin的第2步擴展,僅僅是增加功能,不影響原流程

use理解爲兩個用例是平行的關係,也就是說被引用的用例也是可獨立執行的。

included用例則不是可獨立執行的

類比:

  1. (extends 實例)–例如:老王進城辦事,2小時就可以回去,在這2小時內內急時就會去上廁所。上廁所用例是進城用例的擴展,因爲不上廁所老王進城辦事也可完成。
  2. (use 實例)–例如:老王進城,他可以坐飛機,可以坐火車,還可以走路,那麼進城用例就泛化爲坐飛機、坐火車和走路三個用例了,它們之間存在層級關係。
  3. (include實例)–例如:還是老王進城,他從海南來北京辦事,3天才能回去,那麼這種情況下進城用例與上廁所用例的關係就應該是包含關係了

注意:這些只是一些約定。不是UML的語法核心內容。大家都認爲其實是沒什麼區別,都是Association,只是可以加一個批註叫做 或者,實際做圖的時候,想寫什麼就可以寫什麼的。比如說:


UML用例圖之泛化(generalization)、擴展(extend)和包含(include)關係

原文鏈接
[注] 原文中具體案例圖參考,更容易理解,這裏我只是把重要的概念知識編輯了下。

在畫用例圖的時候,理清用例之間的關係是重點。
用例的關係有泛化(generalization)、擴展(extend)和包含(include)。其中include和extend最易混淆。下面我們結合實例徹底理清三者的關係。

基本概念

用例圖(Use Case Diagram):用例圖顯示誰是相關的用戶,用戶希望系統提供什麼服務(用例),以及用例之間的關係圖。用例圖主要的作用是獲取需求、指導測試。

用例圖的4個基本組件:參與者(Actor)、用例(Use Case)、關係(Relationship)和系統。

泛化(generalization):泛化關係是一種繼承關係,子用例將繼承基用例的所有行爲,關係和通信關係,也就是說在任何使用基用例的地方都可以用子用例來代替。泛化關係在用例圖中使用空心的箭頭表示,箭頭方向從子用例指向基用例。

擴展(extend): extend關係是對基用例的擴展,基用例是一個完整的用例,即使沒有子用例的參與,也可以完成一個完整的功能。 extend的基用例中將存在一個擴展點,只有當擴展點被激活時,子用例纔會被執行。 extend關係在用例圖中使用帶箭頭的虛線 表示(在線上標註<>),箭頭從子用例指向基用例。

包含(include): include爲包含關係,當兩個或多個用例中共用一組相同的動作,這時可以將這組相同的動作抽出來作爲一個獨立的子用例,供多個基用例所共享。因爲子用例被抽出,基用例並非一個完整的用例,所以include關係中的基用例必須和子用例一起使用纔夠完整,子用例也必然被執行。include關係在用例圖中使用帶箭頭的虛線表示(在線上標註<>),箭頭從基用例指向子用例。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章