詳解 UML 用例圖畫法 & 用例說明方式

本文主要結合實際使用,介紹UML用例圖的畫法以及用例的說明方式。希望對你有所啟發。

详解 UML 用例图画法 & 用例说明方式

一、概述

用例圖是編寫需求說明時經常用到的需求表達方式,用於向開發、測試同事說明需求中用戶與系統功能單元之間的關係。但是很多剛接觸用例的新人,在準備用例說明時並不清楚參與者與用例之間應該如何表達,網上教程五花八門,但感覺部分用例圖不夠規範,因此對用例圖及用例說明梳理總結。

考慮到用例圖的作圖規範,使用Visio的UML用例組件,對用例中的各種關係進行說明。

详解 UML 用例图画法 & 用例说明方式

二、用例圖

用例圖的結構主要分為三個部分:參與者、用例、參與者與用例之間的關係,具體說明如下:

2.1 參與者

顧名思義,代表系統外部與系統發生交互的人或事物;需要注意,人指的是參與者與系統發生交互時的角色,不代指具體的人。

事物指的是某一個應用程序或者特殊進程;例如微信登錄,通過跳轉微信確認登錄信息,微信對系統產生輸入時,可以把微信作為參與者;而設定時間,強制退出賬號時,時間這一特殊進程對系統產生輸入,因此時間也可以作為參與者。

2.2 用例

2.2.1 用例的說明

用例是系統外部可見的一個功能單元,是某一個參與者在系統中做某件事從開始到結束的一系列活動的集合,以及結束時應該返回的可觀測、有意義的結果,其中還包含可能的各種分支情況;具體用例在用例屬性中說明。

2.2.2 用例的特徵

  • 用例都是動賓結構;例如:登錄賬號
  • 用例是相互獨立的
  • 用例由參與者啟動
  • 有可觀測的執行結果

2.3 關係說明

角色與用例之間的關係主要包括關聯、歸納(泛化)、包含、拓展和依賴。

2.3.1 關聯關係

  • 關係說明:表示參與者與用例之間的關係
  • 展示形式:以一條直線相連
  • 舉例說明:用戶登錄系統

圖1 參與者與用例之間的關聯關係

2.3.2 歸納(泛化)關係

  • 關係說明:表示參與者與參與者之間、用例與用例之間的關係
  • 展示形式:用箭頭表示,箭頭從子參與者(子用例)指向父參與者(基礎用例),一般父參與者(基礎用例)相對子參與者(子用例)更為抽象
  • 舉例說明:VIP會員和普通用戶,歸納為用戶;賬號登錄與微信登錄,也可歸納為登錄系統。
详解 UML 用例图画法 & 用例说明方式

圖2 用戶之間、用例之間的歸納關係

2.3.3 包含關係

  • 關係說明:表示用例與用例之間的關係
  • 展示形式:用帶有“包含”的箭頭表示,箭頭從基礎用例指向包含用例
  • 舉例說明:用戶在賬號登錄過程中,包括輸入賬號、輸入密碼、確認登錄等操作
详解 UML 用例图画法 & 用例说明方式

圖3 用例與用例之間的包含關係

2.3.4 拓展關係

  • 關係說明:表示用例與用例之間的關係;用於拓展用例對基礎用例的增強;拓展用例是在特定條件出現時,才會被執行的用例
  • 展示形式:用帶有“拓展”的箭頭表示,由拓展用例指向基礎用例
  • 舉例說明:用戶在登錄過程中忘記了密碼
详解 UML 用例图画法 & 用例说明方式

圖4 用例與用例之間的拓展關係

2.3.5 依賴關係

  • 關係說明:表示用例與用例之間的關係;一個用例在活動執行過程中,要依賴另一個用例的執行
  • 展現形式:以一條直線相連
  • 舉例說明:用戶要登錄系統後,才能查看首頁信息
  • 補充說明:A用例依賴B用例,A用例或使用B用例執行後的返回結果,或使用B用例執行部分功能。依賴關係類似於包含關係,都是在用例執行過程中,調用其它用例來完成部分任務。

圖5 用例與用例之間的依賴關係

2.3.6 註釋

對於部分有特殊條件支撐的用例,也可以添加註釋加以說明,例如VIP用戶與普通用戶登錄系統後,可查看的菜單、數據甚至對系統的操作都是不一樣的,此時可以在對應用例上加以註釋,以強調此用例的特殊需求。

详解 UML 用例图画法 & 用例说明方式

圖6 對用例進行註釋

2.3.7 子系統

關係說明:用於強調某部分用例的強關聯性,例如門戶包含系統登錄、首頁信息展示等。

详解 UML 用例图画法 & 用例说明方式

圖7 子系統與用例之間的關係

2.3.8 各關係的對比

為了對包含、拓展和歸納(泛化)關係更好的區分,以圖7為例說明各種關係之間的差別:

1)用例的使用條件

包含用例與歸納(泛化)的子用例,都沒有限定的使用條件;例如用戶登錄系統時,直接選擇輸入賬號密碼登錄系統,或者通過微信登錄系統;而忘記密碼是在用戶賬號登錄時遺忘密碼才會發生的用例,是有特定條件下才會發生的用例。

2)直接、間接提供服務

歸納(泛化)的子用例與拓展用例為參與者直接提供服務,例如用戶登錄系統時,會直接選擇賬號登錄或微信登錄,而賬號登錄或微信登錄直接為參與者提供登錄服務;而包含關係的用例,為參與者提供間接服務,例如賬號登錄時,需要輸入賬號、輸入密碼等,這些用例直接鼓舞於賬號登錄這個用例,間接為參與者提供登錄服務。

3)其餘說明

  • 延伸用例與基礎用例相互獨立,兩者之間不包含對方用例的內容。
  • 歸納(泛化)的子用例包含基礎用例所有內容、基礎用例與其他用例的關係以及基礎用例與參與者之間的關係;例如賬號登錄是登錄系統的子用例,但賬號登錄包含了登錄系統的內容、登錄系統與展示首頁的關係以及登錄系統與參與者的關係。

三、用例描述

完成了用例圖,實際上工作只完成了一半,更重要的是對每個用例進行具體的說明;包括說明用例之間的關係、參與者身份角色以及用例從開始至結束過程中的條件及分支情況等;具體用例說明形式可參考下表:

详解 UML 用例图画法 & 用例说明方式

用例的描述針對不同業務系統,描述的重點可能會存在差異,因此用例描述的重點在於清晰表達用例需求,不必拘泥於表達形式。

最後

不管用例圖與表格畫得多麼酷炫,最終目的也是為了團隊同事可以用最短的時間及精力完成對需求的理解。因此紮實的文檔能力是產品的基礎要求,希望這份總結能給到對用例說明無從下手的童鞋一點幫助。

如有錯誤,希望各位指正;共勉!

題圖來自Unsplash,基於CC0協議


分享到:


相關文章: