tft每日頭條

 > 生活

 > uml的九種圖例詳解

uml的九種圖例詳解

生活 更新时间:2024-11-28 01:35:15

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

uml的九種圖例詳解(詳解UML用例圖畫法)1

一、概述

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

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

uml的九種圖例詳解(詳解UML用例圖畫法)2

二、用例圖

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

2.1 參與者

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

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

2.2 用例

2.2.1 用例的說明

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

2.2.2 用例的特征

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

2.3 關系說明

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

2.3.1 關聯關系

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

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

2.3.2 歸納(泛化)關系

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

uml的九種圖例詳解(詳解UML用例圖畫法)3

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

2.3.3 包含關系

  • 關系說明:表示用例與用例之間的關系
  • 展示形式:用帶有“包含”的箭頭表示,箭頭從基礎用例指向包含用例
  • 舉例說明:用戶在賬号登錄過程中,包括輸入賬号、輸入密碼、确認登錄等操作

uml的九種圖例詳解(詳解UML用例圖畫法)4

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

2.3.4 拓展關系

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

uml的九種圖例詳解(詳解UML用例圖畫法)5

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

2.3.5 依賴關系

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

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

2.3.6 注釋

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

uml的九種圖例詳解(詳解UML用例圖畫法)6

圖6 對用例進行注釋

2.3.7 子系統

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

uml的九種圖例詳解(詳解UML用例圖畫法)7

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

2.3.8 各關系的對比

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

1)用例的使用條件

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

2)直接、間接提供服務

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

3)其餘說明

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

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

uml的九種圖例詳解(詳解UML用例圖畫法)8

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

最後

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

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

本文由 @龐龐 原創發布于人人都是産品經理。未經許可,禁止轉載

題圖來自Unsplash,基于CC0協議

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved