用例建模快速指南

用例建模是捕獲需求的有用工具。它提供了軟件系統需求的圖形表示。

隨著Ivar Jacobson (1991) 的《面向對象的軟件工程,用例驅動方法》一書的出版,用例建模有效地成為了一種實用的分析技術”。今天,Jacobson 繼續推廣這種系統分析方法,並將其升級到用例 2.0,正式成為14 種 UML 圖類型之一

由於用例模型在概念和外觀上都比較簡單,因此與非技術人員(如客戶)討論其正確性相對容易。

用例不是過程、過程或功能。

用例圖的元素

用例圖的元素是參與者(外部實體)和用例本身。從廣義上講,用例是系統中的一個功能單元(需求)或服務。

演員

參與者是設計系統外部的任何實體,無論是個人還是其他非人類實體。系統的用戶是參與者的典型示例。其他類型的參與者包括與當前系統(例如,數據庫系統)集成的軟件系統、傳感器等外部硬件。演員類型

UML 規範中有兩種表示法:

對演員使用火柴人更具表現力,但如果演員實際上不是人,而是機器或外部設備,則會導致混淆。矩形符號是類的標準UML表示

演員是角色而不是真人 

參與者代表與當前系統交互的實體的角色,而不是實例。 演員符號表示實體是一個類而不是讀取實例(即真實用戶 John 或 Mary)。演員之所以是一類的,是不是演員本人,而是他/她所扮演的角色。

例如,參與者可以代表銀行的客戶,而不是為每個客戶指定單獨的參與者。類似地,可能有另一個參與者代表銀行經理。有趣的是,在現實世界中,一家銀行的經理也可能是同一家銀行的客戶。換句話說,同一個人同時扮演客戶和經理的角色。

主要與次要演員

用例的主要參與者是需要係統提供其服務的利益相關者。它有一個與系統相關的目標——系統運行可以滿足的目標。主要參與者通常(但不總是)是觸髮用例的參與者。

次要角色由系統使用,但它們不與系統交互。換句話說,次要參與者不會啟動任何用例。

用例通常由主要參與者發起。系統通過一組用例使用數據庫等輔助角色。用例和參與者之間的關聯代表了一種雙向通信。

因此,對於由主要參與者發起的每個用例,必須響應連接的用例。類似地,對於次要參與者和用例之間的每個關聯,通信都從用例開始,次要參與者應該響應啟動。

用例

用例代表系統預期實現的功能(通常是需求)。用例的細節,除了其唯一的名稱,在圖中沒有直觀的表達;這些細節在用例描述中給出。

用例通常由關鍵參與者發起。系統通過一組用例使用數據庫和其他輔助參與者。

用例和參與者之間的關聯代表了雙向通信。因此,對於主要參與者發起的每個用例,都必須響應後者。類似地,對於次要參與者和用例之間的每個關聯,通信都從用例開始,次要參與者應該響應啟動。

系統邊界

系統邊界定義了與周圍世界相關的感興趣系統。

用例圖示例:航空公司預訂系統

用例定義外部參與者和系統之間的交互,以實現特定目標。用例圖包含四個主要組件

在票務預訂系統的用例圖中,系統由包含許多不同用例的框表示。主要參與者是客戶,次要參與者是管理員。客戶啟動用例,例如預訂、瀏覽和取消航班,而管理員啟動用例,例如更新航班記錄,但在取消航班用例中被視為次要參與者,因為她只是幫助完成客戶發起的用例。

編輯這個 UML 用例圖示例

構建用例

根據應用領域和設計者的選擇,一個用例可以分解成多個用例,通過<<include>>或<<extend>>關係連接起來。

關聯鏈接表示參與者和用例之間的雙向通信,因此是二元關係。由於它是雙向通信,因此對於由主要參與者發起的每個用例,該參與者必須從用例中獲得響應。

客戶支付賬單

類似地,對於用例和次要參與者(由用例發起)之間的每次通信,次要參與者必須將響應發送回用例。

概括

泛化表示之間的關係

  • 角色或
  • 用例。

編輯這個 UML 用例圖模板

如果兩個參與者通過這種關係連接,那麼箭頭末端(連接到三角形底部)的參與者(或用例)是另一端參與者(或用例)的特殊版本。

通常,底端(連接到三角形底部)的參與者(或用例)被稱為另一端參與者(或用例)的專用版本。

泛化意味著專用版本具有通用版本的所有功能,甚至可能更多。

包含  是兩個用例之間的一種特殊關係。如果一個用例 A 包含另一個用例 B,那麼 A 的實現需要 B 的實現來完成它的任務。但是,B 是獨立於自身的。也就是說,B 不需要知道關於 A 的任何信息。B 也可以包含在任何其他用例中。

編輯此用例圖示例

擴展是兩個用例之間的另一種特殊關係。如果一個用例 B 擴展了另一個用例 A,那麼 A 的實現可以有條件地包括 B 的實現以完成其任務。也就是說,在某些情況下,A 可以在沒有 B 的情況下完成其任務。但是,取決於所描述的條件。

編輯此用例圖示例

用例圖符號

用例圖教程

在線編輯此用例圖示例

執行用例分析的 9 個簡單步驟

  1. 確定誰將直接使用該系統。這些人就是演員。
  2. 選擇這些演員之一。
  3. 定義該參與者想要對系統做什麼。參與者想要對系統做的每一件事都成為一個用例。
  4. 對所有其他用例重複步驟 2-3 為您
    確定的用例確定次要角色和非人工角色支持。
  5. 繪製用例的初始版本,此時不要過度複雜化用例關係
  6. 與用戶討論和審查以驗證每個用例的目標(提議功能的好處) 修改後,您可以繼續在步驟 8 – 10 中詳細說明用例
  7. 對於每個用例,確定參與者在使用系統時將遵循的最常見流程。通常會發生什麼。
  8. 在用例描述中描述這個基本過程。
  9. 一旦您對基本流程感到滿意,現在考慮替代方案並將其添加為擴展用例。

用例模型和規範

僅用 UML 表示法顯示用例圖是不夠的。每個用例都附有解釋用例目的和執行用例時完成的功能的文本。

用例描述了由參與者執行的任務,該任務為企業產生業務價值結果。用例可以可視化為用例圖或/和結構化文本規範格式。

用例與用例規範

用例場景

一個用例由許多場景組成,每個場景代表用例的一個特定實例,對應於參與者的特定輸入或環境中的特定條件。每個場景都描述了系統運行的另一種方式,或者它可能描述失敗或異常。

一個用例有:

  • 只有一個目標
  • 單一起點
  • 單一的終點
  • 從頭到尾的多種路徑
    • 即為各種可能的條件指定行為
    • 每個條件可能需要特定的操作

用例的特徵

例如 – 客戶支付賬單:

客戶支付賬單

實現目標有多種途徑 :

  • 電話支付
  • 通過郵寄
  • 親自
  • 通過支票
  • 用現金等

不通向目標的路徑 :

  • 信用卡被拒絕

使用包對用例進行分組

您還可以: 將用於用例邏輯分類的包繪製到相關子系統中。

帶有包的 UML 用例圖

編輯此用例圖示例

詳細的用例規範

詳細用例是一種文本表示,它以特定格式描述事件流和其他相關用例信息。標準用例模板通常用於記錄用例的詳細信息

詳細的用例規範

什麼是用例描述

用例描述是對分析師為完成完整系統事務而執行的一系列步驟的書面描述。它由參與者發起,為參與者提供價值,並且是參與者在系統中工作的目標。

參與者——任何在系統外部使用系統或與系統交互以實現目標的人或系統。每個參與者都被賦予一個角色來代表他們與解決方案的交互。人物演員應該以角色的形式命名,而不應該被分配實際名稱。參與者通常分為主要、次要或利益相關者

主要參與者——啟動用例的參與者。
次要參與者——對主要參與者執行的動作做出反應或響應的參與者。
利益相關者——不直接與用例交互,但對用例的結果感興趣的場外參與者。

事件流(路徑) ——參與者和解決方案執行用例必須採取的步驟序列。通常,用例由主要成功路徑(也稱為基本或主要)、備用路徑和異常路徑組成。

正常路徑——參與者的輸入和系統的響應——代表了實現參與者目標的最常見的成功路徑。

備用路徑——來自參與者和系統響應的輸入,代表完成參與者目標的其他不太常見的路徑

異常路徑——來自參與者和系統響應的輸入,表示參與者的目標無法實現時的不成功路徑。

用例描述
用例名稱: 提取現金
演員: 客戶(主要)、銀行系統(次要)
摘要說明: 允許任何銀行客戶從他們的銀行賬戶中提取現金。
優先: 一定有
狀態: 中等細節水平
前提: 銀行客戶有一張卡要插入 ATM
ATM 正常在線
後置條件:
  • 銀行客戶已收到他們的現金(以及可選的收據)
  • 銀行已從客戶的銀行賬戶中扣款並記錄交易詳情
基本路徑:
  1. 客戶將他們的卡輸入 ATM
  2. ATM 驗證該卡是有效的銀行卡
  3. ATM 要求輸入 PIN 碼
  4. 客戶輸入他們的 PIN 碼
  5. ATM 根據 PIN 碼驗證銀行卡
  6. ATM提供包括“取款”在內的服務選項
  7. 客戶選擇“提款”
  8. ATM 提供金額選項
  9. 客戶選擇金額或輸入金額
  10. 自動櫃員機驗證其儲罐中是否有足夠的現金
  11. ATM 驗證客戶是否低於取款限額
  12. ATM 驗證客戶銀行賬戶中有足夠的資金
  13. 自動櫃員機從客戶的銀行賬戶中扣除
  14. ATM退回客戶的銀行卡
  15. 客戶拿走他們的銀行卡
  16. ATM 發放客戶的現金
  17. 客戶拿走他們的現金
替代路徑:
  1. 2a. 無效卡
  2. 2b。卡倒置
  3. 5a。被盜卡
  4. 5b。PIN 無效
  5. 10a。料斗中現金不足
  6. 10b。料斗中的現金面額錯誤
  7. 11a。提款超過提款限額
  8. 12a。客戶銀行賬戶資金不足
  9. 14a。銀行卡卡在機器裡
  10. 15a。客戶未能取走他們的銀行卡
  11. 16a。現金卡在機器裡
  12. 17a。客戶未能拿走他們的現金
    • ATM 無法與銀行系統通信
    • b 客戶不響應 ATM 提示
商業規則:
  1. B1:密碼格式
  2. B2:PIN 重試次數
  3. B3:服務選項
  4. B4:金額選項
  5. B5:提款限額
  6. B6:取款前必須取走卡
非功能性要求:
  1. NF1:完成交易的時間
  2. NF2:PIN 輸入的安全性
  3. NF3:允許收卡和現金的時間
  4. NF4:語言支持
  5. NF5:盲和部分盲支持

相關鏈接

  1. 什麼是統一建模語言?
  2. 用例幻燈片/講義
  3. 用例在需求和分析建模中的作用
  4. UML 工具列表
  5. 免費試用 Visual Paradigm
  6. 用例 – Training Couse 註釋
  7. 如何編寫有效的用例?
  8. 書籍章節 – PDF – 用例模型:在上下文中編寫需求

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。