UML 行為圖之用例圖 總結


學習UML圖形

推薦閱讀<UML參考手冊>第2版. http://www.umlchina.com/ 

推薦微軟的開發軟件設計模型 http://msdn.microsoft.com/zh-cn/library/dd409436.aspx 

另推薦這篇文章 UML用例圖總結 http://kb.cnblogs.com/page/129491/ 

 

用例圖主要用來描述用戶, 需求, 系統功能單元之間的關系.

 

〇 概述 

 

用例圖

 

用例圖可使用的工具集(EA工具箱)有: 

UML-UseCase

 

一 用例圖元素 

 

1. 參與者

UML_UseCase_Actor

Actor, 圖形表示為一個小人參與者的版型(StereoType)有:

1) 普通參與者, 表示為一個小人, 如圖Actor1 

2) 業務參與者(業務工人), 表示為一個小人+頭上一條斜線, 如圖Actor2 

3) 其他參與者, 表示為一個小人+書名號包含的具體版型, 如圖Actor3, 4, 5 ...  

參與者的表示就是個小人, 不論上面是否多了一斜線, 還是多了一對書名號, 仍代表參與者, 他們都只是參與者的一個具體的版型. 

[注1] 所謂的版型(StereoType)是一種特例, 不管是五香瓜子還是原味瓜子都叫瓜子. 可以簡單的認為, 使用版型只是為了描述更具體! 

[注2] 加了刪除線的"普通"兩字實際並不存在, 只是為了描述清楚, 沒有普通參與者的說法, 就叫參與者. (下同)

[注3] 其他參與者中的其他是泛指, 表示除以上之外的參與者. (下同)

 

2. 用例

UML_UseCase_UseCase

Use case, 圖形表示為一個帶有實線邊框的橢圓用例的版型(StereoType)有:

1) 普通用例, 表示為一個橢圓, 如圖Use Case 1

2) 測試用例, 表示為一個橢圓+叉號, 如圖Test Case 1 

3) 業務用例, 表示為一個橢圓+一條斜線, 如圖Use Case 2

4) 其它用例, 表示為一個橢圓+書名號包含的具體版型, 如圖Use Case 3

[注4] 注意用例與業務用例的區別, 用例是系統用例的簡稱. 另外, 業務用例的范圍一般大於用例(系統用例). 

 

3. 協作(也稱用例實現)

UML_UseCase_Collaboration

Collaboration, 圖形表示為一個帶有虛線線邊框的橢圓, 協作的版型(StereoType)有:

1) 普通協作, 表示為一個虛線邊框的橢圓, 如圖Collaboration 1 

2) 業務協作, 表示為一個虛線邊框的橢圓+一條斜線, 如圖Collaboration 2 

[注5] UML2.x已經取消協作圖, 定義為通信圖(Communication Diagram), 但仍保留協作. 

 

4. 邊界(子系統) 

UML_UseCase_Boundary1   UML_UseCase_Boundary2

Boundary, 圖形表示為一個空心矩形, 邊界沒有其它版型(StereoType) 

[注6] 如果在用例圖上看到如虛線邊框的空心矩形或其他線形, 均指邊界, 和實線空心矩形沒有區別. 

 

5 關系

UML_UseCase_Relationships

Relationships, 圖形表示為一條線(實線或虛線)[+單向或雙向的空心或實心箭頭], 關系的種類有:

1) 關聯association, 表示為一條實線[+單向或雙向開口箭頭], 如圖客戶和訂單直接屬於關聯關系 

2) 包含, include, 表示為一條虛線+單向的開口箭頭+書名號包含的include字樣, 如圖訂單和付款屬於包含關系(訂單包含付款, 付款被訂單包含)

3) 擴展, extern, 表示為一條虛線+單向的開口箭頭+書名號包含的extern字樣, 如圖訂單和請求商品目錄屬於擴展關系(請求商品目錄是訂單的擴展)

4) 泛化, generalization, 表示為一條實線+單向空心箭頭, 如圖使用現金支付是付款的實現

[注7] 泛化不是實現(inheritance), 泛化是指繼承; 實現是類圖中的元素, 實現的父類必須是接口. 

5) 依賴, dependency, 表示為一條虛線+單向或雙向空心箭頭 

UML_UseCase_Dependency

如圖, 使用信用卡支付依賴Pos機.

[注8] 在關系上, 使用信用卡支付依賴Pos機是沒有問題的, 但是Pos機顯然不能作為一個用例而存在(用例必須以動賓形式存在), 因此, 使用依賴和其它關系時需謹慎. 

6) 其它, 如 invoke, trace ... 同類圖中描述, 同樣存在以上注意事項, 不推薦.

[注9] UML手冊中除了關聯, 包含, 擴展和泛化關系, 不存在其它關系的介紹, dependency, invoke, trace ... 這些在某些建模工具中存在(如EA, Visual Studio). 

 

6. 包 

UML_UseCase_package

Package, 圖形表示為一個文件夾, 包的版型(StereoType)有: 

1) 普通, 表示為一個文件夾, 如圖Package1和Package4  

2) 其它包, 表示為一個文件夾+書名號包含的具體版型或特殊符號, 如圖Package2和Package3 

[注10] 用例圖上的包一般引用自包圖, 包圖內部的畫法, 參見包圖部分. 

 

7. Artifact (制品/物件/項目 翻譯不明 屬於UML2.x圖形的一種)

Artifact, 圖形表示為一個實心矩形, Artifact的版型(StereoType)有: 

1) 普通Artifact, 表示為一個實心矩形+Icon, 如圖Artifact1  

2) 其它Artifact, 表示為一個實心矩形+Icon+書名號包含的具體版型, 如圖UserStory1

UML_UseCase_Artifact

[注11] Artifact的畫法和Artifact圖一致, 參見Artifact圖部分. 

Artifact是軟件開發過程中的產物, 包括過程模型(比如用例圖, 設計圖等等), 源代碼, 可執行程序, 設計文檔, 測試報告, 需求原型, 用戶手冊等等. 

 

二 用例圖關系 

 

UML-UserCase-RS

 

1. 關聯 

執行者與用例之間的通信路徑. 

2. 包含 

一個用例可以簡單地包含其他用例具有的行為, 並把它所包含的用例行為作為自身行為的片段, 這種關系稱為包含關系. 

被包含的用例不是原用例的特化, 並不能替代原用例. 

包含關系指向被包含的用例. 

3. 擴展 

一個用例可以被定義為基用例的增量擴展, 這叫做擴展關系. 

同一個基用例的幾個擴展用例, 可以在一起應用. 

基用例的擴展增加了基用例的語義, 實例化時是實例化基用例而不是擴展用例

擴展關系指向被擴展的用例. 

4. 泛化 

一個用例可以被特別細化為一個或多個子用例, 這被稱作用例泛化. 

任何子用例都可以用於其父用例能夠應用的場合

用例泛化和其他泛化的表示法相同, 用一個三角箭頭從子用例指向父用例. 

 

三 執行者和用例 

 

1. 執行者

執行者是與系統, 子系統或類發生交互作用的外部用戶, 進程或其他系統的理想化角色. 

2. 用例 

[注12] 協作是用例的實現 

 

四 用例圖總結 

 

1. 用例圖主要是用於描述需求的

2. 用例圖包含的元素中, 只有參與者, 用例, 協作, 邊界和關系屬於特有的, 包和Artifact的畫法直接使用對應的包圖和Artifact圖畫法

3. 用例是指系統用例, 業務用例的范圍一般大於系統用例

4. 用例的幾個特性

1) 用例是相對獨立的, 不需要與其它用例交互而獨自完成參與者的目的. 

2) 用例必須由一個參與者發起, 不存在沒有參與者的用例, 用例也不應該自己啟動. 

3) 用例不是功能也不是特性,用例不能被逐層分解為更小的用例, 用例的價值在於展現系統最終能幫用戶做什么以及如何做到的. 

4) 用例必須以動賓形式描述, 如前文描述的"使用信用卡付款"是合法的用例, "Pos機"是非法用例. 

5) 用例不是需求的唯一定義形式, 需要用例和其他定義形式一起定義完整的需求. 

5. 用例的划分粒度沒有標准, 一般是以該用例是否完成了參與者的目的為依據 

 

五 UML通用元素

 

參見UML參考手冊中的特性描述部分, 如一些注釋元素, 不單只能畫到用例圖中, 而是通用的可以畫到任何UML圖形上的. 

如圖邊界右上角的注釋元素

UML_UseCase_Boundary2

 

相關鏈接: 

UML 結構圖之包圖 總結 http://www.cnblogs.com/snowyying/p/UML_Package.html  

 

轉載請保持原文完整. http://www.cnblogs.com/snowyying/p/3896622.html 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM