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

9 評(píng)論 69314 瀏覽 282 收藏 10 分鐘

本文主要結(jié)合實(shí)際使用,介紹UML用例圖的畫法以及用例的說明方式。希望對(duì)你有所啟發(fā)。

一、概述

用例圖是編寫需求說明時(shí)經(jīng)常用到的需求表達(dá)方式,用于向開發(fā)、測(cè)試同事說明需求中用戶與系統(tǒng)功能單元之間的關(guān)系。但是很多剛接觸用例的新人,在準(zhǔn)備用例說明時(shí)并不清楚參與者與用例之間應(yīng)該如何表達(dá),網(wǎng)上教程五花八門,但感覺部分用例圖不夠規(guī)范,因此對(duì)用例圖及用例說明梳理總結(jié)。

考慮到用例圖的作圖規(guī)范,使用Visio的UML用例組件,對(duì)用例中的各種關(guān)系進(jìn)行說明。

二、用例圖

用例圖的結(jié)構(gòu)主要分為三個(gè)部分:參與者、用例、參與者與用例之間的關(guān)系,具體說明如下:

2.1 參與者

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

事物指的是某一個(gè)應(yīng)用程序或者特殊進(jìn)程;例如微信登錄,通過跳轉(zhuǎn)微信確認(rèn)登錄信息,微信對(duì)系統(tǒng)產(chǎn)生輸入時(shí),可以把微信作為參與者;而設(shè)定時(shí)間,強(qiáng)制退出賬號(hào)時(shí),時(shí)間這一特殊進(jìn)程對(duì)系統(tǒng)產(chǎn)生輸入,因此時(shí)間也可以作為參與者。

2.2 用例

2.2.1 用例的說明

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

2.2.2 用例的特征

  • 用例都是動(dòng)賓結(jié)構(gòu);例如:登錄賬號(hào)
  • 用例是相互獨(dú)立的
  • 用例由參與者啟動(dòng)
  • 有可觀測(cè)的執(zhí)行結(jié)果

2.3 關(guān)系說明

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

2.3.1 關(guān)聯(lián)關(guān)系

  • 關(guān)系說明:表示參與者與用例之間的關(guān)系
  • 展示形式:以一條直線相連
  • 舉例說明:用戶登錄系統(tǒng)

圖1 參與者與用例之間的關(guān)聯(lián)關(guān)系

2.3.2 歸納(泛化)關(guān)系

  • 關(guān)系說明:表示參與者與參與者之間、用例與用例之間的關(guān)系
  • 展示形式:用箭頭表示,箭頭從子參與者(子用例)指向父參與者(基礎(chǔ)用例),一般父參與者(基礎(chǔ)用例)相對(duì)子參與者(子用例)更為抽象
  • 舉例說明:VIP會(huì)員和普通用戶,歸納為用戶;賬號(hào)登錄與微信登錄,也可歸納為登錄系統(tǒng)。

圖2 用戶之間、用例之間的歸納關(guān)系

2.3.3 包含關(guān)系

  • 關(guān)系說明:表示用例與用例之間的關(guān)系
  • 展示形式:用帶有“包含”的箭頭表示,箭頭從基礎(chǔ)用例指向包含用例
  • 舉例說明:用戶在賬號(hào)登錄過程中,包括輸入賬號(hào)、輸入密碼、確認(rèn)登錄等操作

圖3 用例與用例之間的包含關(guān)系

2.3.4 拓展關(guān)系

  • 關(guān)系說明:表示用例與用例之間的關(guān)系;用于拓展用例對(duì)基礎(chǔ)用例的增強(qiáng);拓展用例是在特定條件出現(xiàn)時(shí),才會(huì)被執(zhí)行的用例
  • 展示形式:用帶有“拓展”的箭頭表示,由拓展用例指向基礎(chǔ)用例
  • 舉例說明:用戶在登錄過程中忘記了密碼

圖4 用例與用例之間的拓展關(guān)系

2.3.5 依賴關(guān)系

  • 關(guān)系說明:表示用例與用例之間的關(guān)系;一個(gè)用例在活動(dòng)執(zhí)行過程中,要依賴另一個(gè)用例的執(zhí)行
  • 展現(xiàn)形式:以一條直線相連
  • 舉例說明:用戶要登錄系統(tǒng)后,才能查看首頁信息
  • 補(bǔ)充說明:A用例依賴B用例,A用例或使用B用例執(zhí)行后的返回結(jié)果,或使用B用例執(zhí)行部分功能。依賴關(guān)系類似于包含關(guān)系,都是在用例執(zhí)行過程中,調(diào)用其它用例來完成部分任務(wù)。

圖5 用例與用例之間的依賴關(guān)系

2.3.6 注釋

對(duì)于部分有特殊條件支撐的用例,也可以添加注釋加以說明,例如VIP用戶與普通用戶登錄系統(tǒng)后,可查看的菜單、數(shù)據(jù)甚至對(duì)系統(tǒng)的操作都是不一樣的,此時(shí)可以在對(duì)應(yīng)用例上加以注釋,以強(qiáng)調(diào)此用例的特殊需求。

圖6 對(duì)用例進(jìn)行注釋

2.3.7 子系統(tǒng)

關(guān)系說明:用于強(qiáng)調(diào)某部分用例的強(qiáng)關(guān)聯(lián)性,例如門戶包含系統(tǒng)登錄、首頁信息展示等。

圖7 子系統(tǒng)與用例之間的關(guān)系

2.3.8 各關(guān)系的對(duì)比

為了對(duì)包含、拓展和歸納(泛化)關(guān)系更好的區(qū)分,以圖7為例說明各種關(guān)系之間的差別:

1)用例的使用條件

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

2)直接、間接提供服務(wù)

歸納(泛化)的子用例與拓展用例為參與者直接提供服務(wù),例如用戶登錄系統(tǒng)時(shí),會(huì)直接選擇賬號(hào)登錄或微信登錄,而賬號(hào)登錄或微信登錄直接為參與者提供登錄服務(wù);而包含關(guān)系的用例,為參與者提供間接服務(wù),例如賬號(hào)登錄時(shí),需要輸入賬號(hào)、輸入密碼等,這些用例直接鼓舞于賬號(hào)登錄這個(gè)用例,間接為參與者提供登錄服務(wù)。

3)其余說明

  • 延伸用例與基礎(chǔ)用例相互獨(dú)立,兩者之間不包含對(duì)方用例的內(nèi)容。
  • 歸納(泛化)的子用例包含基礎(chǔ)用例所有內(nèi)容、基礎(chǔ)用例與其他用例的關(guān)系以及基礎(chǔ)用例與參與者之間的關(guān)系;例如賬號(hào)登錄是登錄系統(tǒng)的子用例,但賬號(hào)登錄包含了登錄系統(tǒng)的內(nèi)容、登錄系統(tǒng)與展示首頁的關(guān)系以及登錄系統(tǒng)與參與者的關(guān)系。

三、用例描述

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

用例的描述針對(duì)不同業(yè)務(wù)系統(tǒng),描述的重點(diǎn)可能會(huì)存在差異,因此用例描述的重點(diǎn)在于清晰表達(dá)用例需求,不必拘泥于表達(dá)形式。

最后

不管用例圖與表格畫得多么酷炫,最終目的也是為了團(tuán)隊(duì)同事可以用最短的時(shí)間及精力完成對(duì)需求的理解。因此扎實(shí)的文檔能力是產(chǎn)品的基礎(chǔ)要求,希望這份總結(jié)能給到對(duì)用例說明無從下手的童鞋一點(diǎn)幫助。

如有錯(cuò)誤,希望各位指正;共勉!

 

本文由 @龐龐? 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 圖五,依賴是否畫上指向被依賴的用例的箭頭更好?

    來自香港 回復(fù)
    1. 是的,同問作者。

      回復(fù)
  2. 太棒了,通俗易懂

    來自浙江 回復(fù)
  3. profession

    來自中國 回復(fù)
  4. 看了好幾篇終于找到專業(yè)的文章了

    來自廣東 回復(fù)
  5. 專業(yè)

    來自廣東 回復(fù)
  6. 專業(yè),終于在這篇文章找到答案了

    來自浙江 回復(fù)
  7. 用例需要細(xì)致和耐心,想好團(tuán)隊(duì)同事所知道的前提。

    回復(fù)
  8. 簡單易懂,比書上好懂多了

    來自江蘇 回復(fù)