介紹
一個 使用案例圖 是一種由 統一模型語言 (UML) 定義的行為圖類型。它用於描述使用者(參與者)與系統之間的互動,以達成特定目標。使用案例圖對於從使用者觀點理解與記錄系統的功能需求至關重要。本教程將引導您建立並理解使用案例圖,以 Wheels 自行車租借系統為例。
什麼是使用案例圖?
一個 使用案例圖 包含以下關鍵元件:
- 參與者:代表與系統互動的使用者或外部系統。參與者可以是人類、其他系統或硬體裝置。
- 使用案例:代表系統提供給參與者的特定功能或服務。每個使用案例描述參與者透過與系統互動所希望達成的目標。
- 關係:
- 通訊關聯:一條連接參與者與使用案例的線,表示該參與者參與該使用案例。
- 包含:一種使用案例之間的關係,其中一個使用案例包含另一個使用案例的行為。
- 延伸:一種使用案例之間的關係,其中一個使用案例在特定條件下延伸另一個使用案例的行為。
建立使用案例圖
步驟 1:識別參與者
識別所有將與系統互動的參與者。對於 Wheels 自行車租借系統,參與者包括:
- 管理員
- 接待員
步驟 2:識別使用案例
識別系統所提供的主要功能或服務。每個 使用案例應代表一個角色想要達成的具體目標。對於 Wheels 系統,使用案例包括:
- 維護自行車清單
- 維護客戶清單
- 處理查詢
- 發放自行車
- 處理自行車歸還
- 查找自行車
- 列印收據
步驟 3:繪製使用案例圖
- 繪製參與者:以人形圖示代表參與者。
- 繪製使用案例:以橢圓形代表使用案例。
- 連接參與者與使用案例:使用線條將參與者與他們參與的使用案例連接。
- 新增關係:使用虛線箭頭表示「包含」與「延伸」關係。
範例:Wheels 自行車租借系統
讓我們根據提供的圖示,為 Wheels 自行車租借系統建立一個使用案例圖。
參與者:
- 管理員
- 接待員
使用案例:
- 維護自行車清單
- 維護客戶清單
- 處理查詢
- 發放自行車
- 處理自行車歸還
- 查找自行車
- 列印收據
用例圖:

說明:
- 參與者:
管理員(管理員)接待員(接待員)
- 用例:
維護自行車清單(用例1)維護客戶清單(用例2)處理查詢(用例3)發放自行車(用例4)處理自行車歸還(用例5)尋找自行車(用例6)列印收據(用例7)
- 關係:
- 該
接待員參與於處理查詢,發放自行車,以及處理自行車歸還. - 該
管理員參與維護自行車清單以及維護客戶清單. - 該
發放自行車用例包含處理查詢用例。 - 該
處理自行車歸還用例包含列印收據用例。 - 該
發放自行車用例延伸自維護客戶清單用例。 - 該
尋找自行車用例包含在維護自行車清單,維護客戶清單,處理查詢,以及發放自行車.
- 該
用例描述
除了圖表之外,用例的描述也非常重要。用例描述通常包括:
- 用例名稱:用例的名稱。
- 參與者:參與用例的參與者。
- 目標:用例的目標或目的。
- 概要:對用例中發生的事情的簡要描述。
- 典型事件流程:對事件正常流程的逐步描述。
- 替代流程:對任何替代或異常事件流程的描述。
範例:發放自行車用例描述
用例:發放自行車
參與者:接待員
目標:出租自行車
概覽:當顧客走進商店時,他們會選擇一輛自行車租用。接待員在系統中查詢自行車,並告知顧客租用指定期間的費用。顧客付款後獲得收據,然後帶著自行車離開。
典型事件流程:
- 顧客選擇一輛自行車。
- 接待員輸入自行車編號。
- 系統顯示自行車詳情,包括每日租用費用和押金。
- 顧客指定租用時間長度。
- 接待員輸入租用時間長度。
- 系統顯示總租用費用。
- 顧客同意價格。
- 接待員輸入顧客資料。
- 系統顯示顧客資料。
- 顧客支付總費用。
- 接待員記錄已支付金額。
- 系統列印收據。
替代流程:
- 步驟 8 和 9:顧客資料已在系統中,因此接待員只需輸入識別碼,系統就會顯示顧客資料。
- 步驟 7-12:顧客可能不滿意價格,並終止交易。
發放自行車用例:詳細說明
Wheels 自行車租賃系統中的「發放自行車」用例代表將自行車租給顧客的過程。此用例涉及接待員與系統之間的多次互動,以達成發放自行車的目標。以下將說明「發放自行車」用例中的事件流程,以及其與「包含」和「擴展」用例的關係。
參與者:
- 接待員:主要參與者,與系統互動以發放自行車。
目標:
- 將自行車租給顧客。
概覽:
當顧客走進商店時,他們會選擇一輛自行車租用。接待員在系統中查詢自行車,並告知顧客租用指定期間的費用。顧客付款後獲得收據,然後帶著自行車離開。
典型事件流程:
- 客戶選擇自行車: 客戶從可用選項中選擇一輛自行車。
- 接待員輸入自行車編號: 接待員將自行車編號輸入系統。
- 系統顯示自行車詳情: 系統顯示自行車詳情,包括每日租賃費用和押金。
- 客戶指定租賃時長: 客戶表明他們希望租賃自行車的時長。
- 接待員輸入租賃時長: 接待員將租賃時長輸入系統。
- 系統顯示總租賃費用: 系統計算並顯示租賃自行車的總費用。
- 客戶同意價格: 客戶確認他們同意租賃費用。
- 接待員輸入客戶資料: 接待員將客戶資料輸入系統。
- 系統顯示客戶資料: 系統顯示輸入的客戶資料以供核對。
- 客戶支付總費用: 客戶完成付款。
- 接待員記錄已支付金額: 接待員在系統中記錄付款。
- 系統列印收據: 系統為客戶生成並列印收據。
與其他使用案例的關係:
- 包含關係:
- 處理查詢: 「發放自行車」使用案例包含「處理查詢」使用案例。這表示每次發放自行車時,系統都必須處理有關自行車可用性與費用的查詢。在「發放自行車」使用案例的流程中,必定會包含處理查詢的步驟。
- 尋找自行車: 「發放自行車」用例包含「尋找自行車」用例。這意味著接待員將使用系統根據輸入的自行車編號查找自行車詳情。這是發放自行車的必要步驟。
- 擴展關係:
- 維護客戶清單: 「發放自行車」用例擴展了「維護客戶清單」用例。這意味著在發放自行車的過程中,系統可能需要新增一名新客戶或更新現有客戶的資料。此擴展是條件性的,僅在必要時才發生。
包含與擴展用例的事件流程:
- 客戶選擇一輛自行車: 客戶選擇一輛自行車。
- 接待員輸入自行車編號: 接待員輸入自行車編號。
- 包含:尋找自行車: 系統根據輸入的編號查找自行車詳情。
- 系統顯示自行車詳情: 系統顯示自行車詳情,包括每日租賃費用和押金。
- 包含:處理查詢: 系統處理有關自行車可用性與費用的查詢。
- 客戶指定租賃時長: 客戶表明租賃時長。
- 接待員輸入租賃時長: 接待員輸入租賃時長。
- 系統顯示總租賃費用: 系統計算並顯示總租賃費用。
- 客戶同意價格: 客戶確認租賃費用。
- 接待員輸入客戶資料: 接待員輸入客戶的資料。
- 擴展:維護客戶清單: 如果客戶是新客戶,或其資料需要更新,系統將新增或更新客戶資訊。
- 系統顯示客戶資料: 系統顯示輸入的客戶資料以供核對。
- 客戶支付總費用:客戶完成付款。
- 接待員記錄已支付金額:接待員記錄付款資訊。
- 系統列印收據:系統為客戶生成並列印收據。
「發放自行車」用例是一個全面的流程,涉及接待員與系統之間的多次互動。透過與「尋找自行車」及「處理查詢」用例之間的「包含」關係,確保尋找自行車資訊與處理查詢的必要步驟始終得以執行。與「維護客戶清單」用例之間的「擴展」關係,允許根據條件新增或更新客戶資料,為自行車發放流程提供彈性。理解這些關係有助於建立穩健且以使用者為中心的系統,有效滿足Wheels自行車租借系統的功能需求。
結論
用例圖是軟體開發過程中不可或缺的工具,特別是在物件導向開發領域中。它們提供了一種清晰且簡明的視覺化方式,展示使用者(參與者)如何與系統互動以達成特定目標(用例)。透過識別參與者、用例及其關係,開發人員能有效建模並傳達系統的功能需求。
在Wheels自行車租借系統的背景下,我們已示範如何建立用例圖以捕捉不同參與者(接待員與管理員)與系統功能(例如維護自行車與客戶清單、處理查詢、發放自行車及處理還車)之間的互動。我們也示範了如何融入「包含」與「擴展」等關係,分別代表共用行為與額外行為。
用例圖及其說明,作為進一步開發活動的基礎,包括其他UML模型的建立以及系統的最終實現。透過遵循本教程所列步驟,開發人員可確保對系統需求有全面的理解,並能有效地與利益相關者溝通這些需求。
總而言之,掌握用例圖的建立與解讀用例圖對任何致力於建立穩健且以使用者為中心系統的軟體開發人員而言都至關重要。透過不斷練習,這些圖表將成為建模、文件化與驗證任何軟體專案功能需求的無價工具。












