引言
本案例研究專注於銀行ATM系統的用例建模。ATM系統旨在為客戶提供一種便捷的方式來存取其帳戶並執行各種銀行交易,例如提款、存款、資金轉帳、查詢帳戶餘額以及更換PIN碼。本案例研究討論了系統的問題描述與需求,以及為模擬系統功能而建立的用例圖、參與者與情境。此外,本案例研究還探討了如何結合其他類型的UML圖表(如活動圖與序列圖)來提供系統行為與互動的更詳細視圖。在案例研究結束時,讀者將清楚理解用例建模的流程,以及如何將其應用於實際系統,例如ATM系統。用例圖以提供系統行為與互動的更詳細視圖。在案例研究結束時,讀者將清楚理解用例建模的流程,以及如何將其應用於實際系統,例如ATM系統。

開發有效用例與撰寫正確用例情境的指南與技巧
以下是開發用例與撰寫正確用例情境的一些指南、技巧與訣竅:
- 識別參與者:首先識別將與系統互動的參與者。這可能包括使用者、管理員以及其他將使用系統的利益相關者。
- 定義系統的範圍:明確定義系統的範圍及其預期達成的目標。這將有助於確保用例情境能涵蓋所有必要的需求。
- 採用結構化的方法:採用結構化的方法來開發用例情境。這可能包括使用範本或指南,以確保每個情境遵循一致的結構。
- 撰寫清晰且簡潔的情境:撰寫清晰、簡潔且易於理解的用例情境。使用通俗語言,避免使用所有利益相關者可能不熟悉的技術術語或縮寫。
- 使用以行動為導向的語言:使用以行動為導向的語言撰寫用例情境,描述使用者或系統正在執行的動作。這有助於確保情境容易理解與追蹤。
- 著重於使用者的目標與需求:在開發用例情境時,著重於使用者的目標與需求。這將有助於確保情境能捕捉使用者的觀點,並與其需求一致。
- 識別前置條件與後置條件:明確識別情境成功所需的任何前置條件與後置條件。這將有助於確保情境完整且準確。
- 包含例外情境:識別可能發生的任何例外情境,並将其包含在用例情境中。這將有助於確保系統能處理意外情況與錯誤。
- 取得反饋並審查:從利益相關者取得反饋,並定期審查用例情境,以確保其保持準確,並與最新的系統規格與需求同步。
透過遵循這些指南、技巧與訣竅,開發人員可以建立準確捕捉系統功能並滿足所有利益相關者需求的用例情境。
案例研究的問題描述 – ATM
銀行需要為其客戶提供一種便捷的方式來存取帳戶並執行各種銀行交易,例如提款、存款、資金轉帳、查詢帳戶餘額以及更換PIN碼。為解決此問題,銀行計劃實施ATM系統,讓客戶透過ATM卡與PIN碼執行這些交易。
需求:
- 安全性: ATM系統必須透過驗證客戶的ATM卡和PIN來確保客戶交易的安全性。系統必須防止未經授權存取客戶帳戶,並需防範各種詐騙和攻擊形式,例如盜刷和黑客攻擊。
- 可用性: ATM系統必須在所有時間對客戶可用,僅受定期維護和停機影響。系統必須可靠且具備對硬體和軟體故障的韌性,以最小化服務中斷,並確保高水準的客戶滿意度。
- 易用性: ATM系統必須讓所有年齡和背景的客戶都能輕鬆使用和導航。系統必須提供清晰的指示和回饋,引導客戶完成交易流程,並減少錯誤和混淆。
- 交易處理: ATM系統必須準確且高效地處理客戶交易,包括提款和存款現金、資金轉帳、查詢帳戶餘額以及更換PIN。系統必須維持所有交易的準確記錄,並在需要時向客戶提供收據及其他文件。
- 整合: ATM系統必須與銀行現有的IT基礎設施整合,包括其核心銀行系統、網路和資料庫。系統必須與其他系統和組件安全且可靠地通訊,以確保交易和帳戶資訊的準確與即時處理。
使用案例建模與使用案例情境開發
從ATM系統的問題描述開始,下一步是識別為滿足系統使用者需求所必需的各種使用案例。這包括分析系統需求,並定義使用者與系統互動時可執行的具體操作。每個使用案例都將有其獨特的情境組合,用以描述系統與使用者在特定情境下的互動方式。這些情境應以結構化的方式開發,使用清晰且簡潔的語言,確保所有參與專案的利害關係人皆能輕易理解。
識別使用案例並開發使用案例情境的過程,是軟體開發生命週期中的關鍵步驟。它使開發團隊能夠完全理解系統的需求,並設計出符合使用者需求的解決方案。隨著開發過程的推進,可能需要根據需求變更或納入利害關係人的反饋,對使用案例和情境進行調整。這種迭代過程有助於確保最終系統符合所有利害關係人的需求,並能應對各種情境與使用案例。
- 使用案例圖:
ATM系統的使用案例圖可能包含以下參與者:
- 客戶
- 銀行
以及以下使用案例:
- 提款
- 存款
- 查詢餘額
- 資金轉帳
- 更換PIN
該圖將顯示參與者與使用案例之間的關係,表明哪些使用案例可由哪些參與者存取。
- 使用案例情境:
a) 提款:
- 客戶將其ATM卡插入機器中。
- 系統提示客戶輸入其PIN。
- 客戶輸入其PIN。
- 系統驗證PIN。
- 客戶選擇「提款」選項。
- 系統提示客戶輸入他們希望提款的金額。
- 客戶輸入現金金額。
- 系統發放現金。
- 客戶取出他們的ATM卡並拿走現金。
b) 存現金:
- 客戶將其ATM卡插入機器。
- 系統提示客戶輸入其PIN。
- 客戶輸入其PIN。
- 系統驗證PIN。
- 客戶選擇「存現金」選項。
- 系統提示客戶輸入他們希望存入的現金金額。
- 客戶輸入現金金額。
- 系統驗證金額並向客戶顯示。
- 客戶確認金額。
- 系統接受現金並將金額存入客戶帳戶。
c) 查詢餘額:
- 客戶將其ATM卡插入機器。
- 系統提示客戶輸入其PIN。
- 客戶輸入其PIN。
- 系統驗證PIN。
- 系統顯示客戶的帳戶餘額。
d) 轉帳:
- 客戶將其ATM卡插入機器。
- 系統提示客戶輸入其PIN。
- 客戶輸入其PIN。
- 系統驗證PIN。
- 客戶選擇「轉帳」選項。
- 系統提示客戶輸入希望轉帳的帳戶號碼。
- 客戶輸入帳戶號碼。
- 系統提示客戶輸入希望轉帳的金額。
- 客戶輸入資金金額。
- 系統驗證金額並顯示給客戶。
- 客戶確認金額。
- 系統轉帳並向客戶顯示確認訊息。
e) 變更PIN:
- 客戶將其ATM卡插入機器中。
- 系統提示客戶輸入目前的PIN。
- 客戶輸入目前的PIN。
- 系統驗證目前的PIN。
- 系統提示客戶輸入新的PIN。
- 客戶輸入新的PIN。
- 系統提示客戶確認新的PIN。
- 客戶確認新的PIN。
- 系統更新客戶的PIN並顯示確認訊息。
精煉使用案例情境 – 提現現金
隨著開發過程的推進,精煉使用案例情境非常重要,原因如下:
- 確保情境準確並反映系統的當前狀態:隨著開發過程的推進,系統可能會變更,也可能出現新的需求。精煉使用案例情境有助於確保其保持準確,並與最新的系統規格同步。
- 識別任何遺漏或不完整的需求:隨著系統的演進,可能會發現需要額外的需求才能完整捕捉系統的功能。精煉使用案例情境有助於識別任何遺漏或不完整的需要。
- 提升易用性和使用者體驗:精煉使用案例情境有助於提升系統的易用性和使用者體驗。透過精煉情境,開發人員能更深入了解使用者需求,並做出更能滿足這些需求的設計決策。
精煉使用案例情境的過程可能包含多個步驟,包括:
- 審查情境的準確性與完整性: 開發人員應審查情境,以確保其準確反映系統的當前狀態,並確保所有需求均已納入。
- 識別任何遺漏或不完整的需求: 開發人員應識別任何遺漏或不完整的需求,並努力將其納入情境中。
- 優化使用者介面: 開發人員應優化使用者介面,以提升易用性和使用者體驗,並考慮使用者反饋與設計最佳實務。
- 納入反饋: 開發人員應納入利害關係人和使用者的反饋,以優化情境,並確保其滿足所有使用者的需求。
優化使用案例情境的步驟
透過在整個開發過程中持續優化使用案例情境,開發人員可確保系統符合使用者需求與規格,並盡可能易用且使用者友善。
以下是ATM系統「提款」情境的詳細說明,包含正常流程與例外流程,以及插入點以反映真實生活情境:
情境:提款
主要參與者:客戶
前置條件:
- 客戶已將其ATM卡插入機器。
- 客戶已輸入正確的PIN。
基本流程:
- 客戶從主選單中選擇「提款」選項。
- ATM提示客戶輸入欲提款的金額。
- 客戶輸入欲提款的金額。
- ATM確認客戶帳戶中是否有足夠資金支付提款金額。
- ATM發放客戶所要求的現金。
- ATM顯示確認提款成功的訊息,並提示客戶選擇其他交易或結束會話。
- 客戶選擇其他交易或結束會話。
- ATM吐出客戶的ATM卡。
例外流程:
1a. 資金不足
- ATM確認客戶帳戶中資金不足以支付提款金額。
- ATM顯示錯誤訊息,告知客戶資金不足,無法完成交易。
- 自動櫃員機提示客戶輸入較少的提款金額或取消交易。
- 客戶輸入較少的提款金額或取消交易。
2a. 無效金額
- 客戶輸入了無效的提款金額,例如負數或超過每日提款上限的金額。
- 自動櫃員機顯示錯誤訊息,告知客戶輸入的金額無效。
- 自動櫃員機提示客戶輸入有效的提款金額。
- 客戶輸入有效的提款金額。
3a. 卡片被留存
- 由於硬體或軟體錯誤,自動櫃員機無法發放現金。
- 自動櫃員機顯示錯誤訊息,告知客戶其卡片已被留存。
- 自動櫃員機提示客戶聯繫銀行或客戶服務以獲得協助。
- 客戶聯繫銀行或客戶服務以取回其卡片。
插入點:
- 步驟1後:客戶將其自動櫃員機卡插入機器並輸入個人識別碼。
- 步驟2後:客戶輸入希望提款的金額。
- 步驟3後:自動櫃員機驗證客戶是否有足夠資金支付提款金額。
- 步驟5後:自動櫃員機將 requested 現金發放給客戶。
總結
附錄 – 精煉的用例情境 – 自動櫃員機
用例名稱: 提款
參與者: 客戶、自動櫃員機
前提條件: 客戶必須持有有效的自動櫃員機卡和PIN碼。自動櫃員機必須正常運作且連接至銀行網絡。
基本流程:
- 客戶將其自動櫃員機卡插入自動櫃員機的卡槽中。
- 自動櫃員機會提示客戶使用鍵盤輸入其PIN碼。
- 客戶輸入其PIN碼。
- 自動櫃員機驗證PIN碼並顯示主選單選項。
- 客戶從選單中選擇「提款」選項。
- 自動櫃員機提示客戶使用鍵盤輸入希望提款的金額。
- 客戶輸入希望提款的金額。
- 自動櫃員機驗證客戶帳戶中是否有足夠資金完成交易。
- 自動櫃員機將所要求的現金金額發放給客戶。
- 自動櫃員機顯示訊息,表示交易已完成。
- 客戶將其自動櫃員機卡從卡槽中取出。
替代流程:
- 1a. 若自動櫃員機無法讀取客戶的自動櫃員機卡,自動櫃員機會顯示錯誤訊息,並提示客戶重新嘗試或聯繫銀行。
- 4a. 若客戶連續三次輸入錯誤的PIN碼,自動櫃員機將保留其卡片,並顯示訊息說明卡片已被保留。
- 8a. 若客戶帳戶中資金不足,無法完成交易,自動櫃員機會顯示錯誤訊息,並提示客戶輸入較小金額或取消交易。
用例名稱: 查詢帳戶餘額
參與者: 客戶、自動櫃員機
前提條件: 客戶必須持有有效的自動櫃員機卡和PIN碼。自動櫃員機必須正常運作且連接至銀行網絡。
基本流程:
- 客戶將其自動櫃員機卡插入自動櫃員機的卡槽中。
- 自動櫃員機會提示客戶使用鍵盤輸入其PIN碼。
- 客戶輸入其PIN碼。
- 自動櫃員機驗證PIN碼並顯示主選單選項。
- 客戶從選單中選擇「查詢帳戶餘額」選項。
- 自動櫃員機在螢幕上顯示客戶的當前帳戶餘額。
- 客戶將其自動櫃員機卡從卡槽中取出。
替代流程:
- 1a. 若自動櫃員機無法讀取客戶的自動櫃員機卡,自動櫃員機會顯示錯誤訊息,並提示客戶重新嘗試或聯繫銀行。
- 4a. 若客戶連續三次輸入錯誤的PIN碼,自動櫃員機會保留其卡片,並顯示卡片已被保留的訊息。
使用案例名稱:存款現金
參與者:客戶、自動櫃員機
先決條件:客戶必須擁有有效的自動櫃員機卡和PIN碼。自動櫃員機必須正常運作且連接至銀行網路。
基本流程:
- 客戶將其自動櫃員機卡插入自動櫃員機的卡槽中。
- 自動櫃員機提示客戶使用鍵盤輸入其PIN碼。
- 客戶輸入其PIN碼。
- 自動櫃員機驗證PIN碼後,顯示主選單選項。
- 客戶從選單中選擇「存款現金」選項。
- 自動櫃員機提示客戶將欲存款的現金插入自動櫃員機的現金存款槽。
- 客戶將現金插入存款槽。
- 自動櫃員機驗證現金後,顯示已存款金額的訊息。
- 客戶將其自動櫃員機卡從卡槽中取出。












