UML中的使用案例:如何撰寫有效的使用案例規格

僅使用顯示使用案例圖UML符號不足以說明。每個使用案例都需搭配文字,說明使用案例的目的以及執行使用案例時完成的功能。使用案例規格通常在分析與設計階段以迭代方式建立。

  • 首先,僅針對使用案例的正常流程所需步驟撰寫簡要描述(也就是使用案例所提供的功能)。
  • 隨著分析的進行,這些步驟會進一步詳述。
  • 最後,將替代流程與例外流程加入使用案例中。
  • 每個專案可採用標準的使用案例範本來建立使用案例規格。

使用案例與使用案例規格

使用案例描述由參與者執行、能帶來商業價值的任務。使用案例可視化為使用案例圖和/或結構化文字規格格式:

Use Case vs. Use Case Specification

使用案例(客戶希望執行的任務)可以是:

  • 互動 — 系統使用案例描述參與者如何與系統互動,以達成明確的商業目標。
  • 手動 — 參與者執行的一連串動作。
  • 自動化 — 由程式或指令碼執行的一連串步驟。

使用案例的特徵

使用案例具有:

  • 僅有一個目標
  • 一個起點
  • 一個終點
  • 從起點到終點有多條路徑
    • 也就是說,它針對各種可能的條件指定行為
    • 每種條件可能需要特定的動作

Characteristics of a Use Case

例如 — 客戶支付帳單:

Customer Pays a Bill

達成目標有多種途徑達成目標:

  • 透過電話
  • 通過郵件
  • 親自
  • 通過支票
  • 現金等

通往目標的路徑無法通往目標:

  • 信用卡被拒絕

敏捷用例方法

用例模型及其個別用例會隨著時間逐步演進。模型中的所有用例並不需要以相同細節層次進行說明。

即時且恰到好處

用例可以以不同細節層次和範圍撰寫,每一種都有其用途:

  • 概要:對系統功能或業務流程的整體描述與高階概覽。
  • 使用者目標層級:與任務相關的描述,包括使用者的目標以及他們如何與系統互動;具體業務流程的描述。使用者目標用例通常被視為與使用者主要工作任務層級相當。

範例:從自動櫃員機提領現金是一個有用的任務,會被視為核心層級的用例,但輸入您的密碼則不在此層級,因為它僅支援主要任務。

  • 子功能:對較低層級活動的描述,這些活動完成核心用例的部分內容。

Agile Use Case Approach

注意:某些用例可能需完整說明至第二層級。當你已取得足夠且及時的細節時,即可停止。

詳細用例規格

詳細用例是一種文字表述,以特定格式描述事件序列及其他相關用例資訊。人們通常會採用標準用例範本來記錄詳細用例資訊。

Detailed Use Case Specification

用例範本 – 自動櫃員機提領現金範例

如前所述,用例具有多種符號風格(例如:圖示、UML、文字格式)。無論使用何種符號,都應易於理解。你可以使用如艾利斯泰爾·柯本的範本,或選擇最適合你團隊的範本。

用例規格
用例名稱: 提取現金
參與者: 客戶(主要),銀行系統(次要)
簡要描述: 允許任何銀行客戶從其銀行帳戶中提取現金。
優先級: 必須具備
狀態: 中等詳細程度
前置條件: 銀行客戶有一張卡可插入ATM
ATM已連線且正常運作
後置條件:
  • 銀行客戶已收到現金(及可選收據)
  • 銀行已從客戶的銀行帳戶扣款並記錄交易詳情
基本流程:
  1. 客戶將其卡片插入ATM
  2. ATM驗證該卡片為有效的銀行卡
  3. ATM要求輸入PIN
  4. 客戶輸入其PIN
  5. ATM將銀行卡與PIN進行驗證
  6. ATM顯示服務選項,包括「提款」
  7. 客戶選擇「提款」
  8. ATM顯示金額選項
  9. 客戶選擇金額或輸入金額
  10. ATM確認機器內有足夠現金
  11. ATM確認客戶未超過提款上限
  12. ATM確認客戶銀行帳戶中有足夠資金
  13. ATM從客戶的銀行帳戶扣款
  14. 自動櫃員機歸還客戶的銀行卡
  15. 客戶取走自己的銀行卡
  16. 自動櫃員機向客戶發放現金
  17. 客戶取走自己的現金
替代流程: 2a. 銀行卡無效
2b. 銀行卡插入方向錯誤
5a. 被盜的銀行卡
5b. PIN 碼無效
10a. 機器內現金不足
10b. 機器內現金面額錯誤
11a. 提款金額超出提款上限
12a. 客戶銀行帳戶內資金不足
14a. 銀行卡卡在機器內
15a. 客戶未取走銀行卡
16a. 現金卡在機器內
17a. 客戶未能取走現金

  • 自動櫃員機無法與銀行系統通訊
  • 客戶未回應自動櫃員機的提示
業務規則: B1:PIN 碼格式
B2:PIN 碼重試次數
B3:服務選項
B4:金額選項
B5:提款上限
B6:現金發放前必須先取走銀行卡
非功能需求: NF1:完成交易所需時間
NF2:PIN 碼輸入的安全性
NF3:取走卡片與現金的允許時間
NF4:語言支援
NF5:支援視障及部分視力受損使用者

Leave a Reply