Lld - 使用案例圖
使用案例圖(Use Case Diagram)是統一建模語言(UML)中的一種圖形化表示方法,用於描述系統的功能需求和行為。它主要展示系統的使用者(Actors)與系統之間的互動,以及系統提供的各種功能(Use Cases)。
使用案例圖的主要目的是幫助開發者和設計者理解系統的功能需求,並作為需求分析和系統設計的工具。它可以用於需求分析、系統設計和文檔編寫等階段。
使用案例圖的核心概念
使用案例圖是一種從使用者角度描述系統功能的圖表,它展示了使用者(稱為參與者 Actor)如何與系統互動以達成特定目標。它著重於「系統能做什麼」,而不是「系統如何做」。使用案例圖常用於需求分析階段,幫助開發團隊和客戶溝通、確認系統的功能範圍。
參與者 (Actor):代表與系統互動的外部實體,可以是人、其他系統或硬體裝置。以小人圖示表示。參與者位於系統邊界之外,並與使用案例互動。
使用案例 (Use Case):代表系統提供的特定功能或服務,是參與者與系統之間的一次完整互動。以橢圓表示,橢圓內寫上簡潔的動詞片語,描述該功能。 如:「登入系統」、「查詢商品」、「下單」、「處理退款」。
系統邊界 (System Boundary):用矩形框表示,框內包含系統的所有使用案例,框外則是參與者。系統邊界清楚地劃分了系統的內外部。
關聯 (Association):表示參與者與使用案例之間的互動關係,用直線連接參與者和使用案例。例如: 「顧客」與「查詢商品」之間有一條線,表示顧客可以執行查詢商品的功能。
包含 (Include):表示一個使用案例的行為包含另一個使用案例的行為。使用帶有
<<include>>
標籤的虛線箭頭,箭頭從包含者指向被包含者。 例如: 「下單」使用案例可能包含「驗證庫存」和「處理付款」兩個使用案例,因為下單的過程中需要先驗證庫存,然後處理付款。擴展 (Extend):表示一個使用案例在特定條件下擴展另一個使用案例的行為。使用帶有
<<extend>>
標籤的虛線箭頭,箭頭從擴展者指向被擴展者,並在箭頭旁標註擴展條件。例如: 「下單」使用案例可能在「使用優惠券」的條件下擴展「套用優惠券」使用案例。泛化 (Generalization):表示使用案例之間的繼承關係,子使用案例繼承父使用案例的行為。使用帶有空心三角形箭頭的實線,箭頭從子使用案例指向父使用案例。此關係較少在一般的使用案例圖中使用,多用於更複雜的系統建模。例如:「線上支付」可以泛化為「信用卡支付」和「行動支付」。
使用案例圖的注意事項
著重於使用者目標: 使用案例應該描述使用者想要達成的目標,而不是系統的內部運作細節。
使用簡潔的動詞片語: 使用案例的名稱應該清晰易懂,使用動詞片語描述功能。
區分包含和擴展: 正確使用包含和擴展關係可以更準確地表達使用案例之間的關係。
保持圖表的簡潔和清晰: 避免在一個圖中包含過多的使用案例和參與者,可以將複雜的系統分解成多個較小的圖表。
搭配使用案例描述: 使用案例圖通常會搭配使用案例描述,以更詳細地說明每個使用案例的步驟和流程。
使用案例圖實踐
以使用者目標為中心:
專注於「使用者想要做什麼」: 使用案例圖的核心是描述使用者 (Actor) 如何透過系統達成其目標。因此,每個使用案例都應該代表一個完整的使用者目標,而不是系統內部的技術細節。
從使用者的角度命名: 使用案例的名稱應使用使用者容易理解的語言,例如:「訂購商品」、「查詢餘額」,而不是「執行訂單處理程序」、「呼叫帳戶查詢API」。
避免過於技術性的描述: 使用案例圖的目的是溝通,過多的技術細節會讓非技術人員難以理解。
清楚定義參與者 (Actor):
區分主要參與者和次要參與者: 主要參與者是啟動使用案例並從系統獲得價值的角色,而次要參與者則支援主要參與者完成目標,例如:外部系統或硬體裝置。
避免將系統本身視為參與者: 參與者應該是系統外部的實體,而不是系統本身。
為每個參與者定義角色和職責: 清楚地描述每個參與者在系統中的角色和職責,有助於釐清他們與系統的互動方式。
使用簡潔且具體的動詞片語命名使用案例:
使用動詞開頭: 使用案例的名稱應該以動詞開頭,清楚地表達一個動作,例如:「登入系統」、「新增商品」、「產生報表」。
避免使用模糊的詞彙: 使用具體的詞彙,避免使用含糊不清的詞語,例如:「系統管理」、「資料處理」。
保持名稱簡短: 使用案例的名稱應該簡短扼要,方便閱讀和理解。
恰當地使用關係:
關聯 (Association): 簡單地表示參與者與使用案例之間的互動。
包含 (Include): 用於將多個使用案例共用的行為提取出來,提高程式碼的重用性。例如,「登入系統」可能被多個使用案例包含。
擴展 (Extend): 用於描述在特定條件下發生的可選行為。例如,「下單」可能在「使用優惠券」的條件下擴展「套用優惠券」。
避免過度使用泛化 (Generalization): 泛化關係較少在一般的使用案例圖中使用,多用於更複雜的系統建模,且容易造成混淆,應謹慎使用。
區分系統邊界:
清楚地劃分系統內外: 使用矩形框清楚地表示系統的邊界,將使用案例包含在框內,參與者則位於框外。
避免將參與者放在系統邊界內: 參與者是系統外部的實體,不應該放在系統邊界內。
保持圖表的簡潔和清晰:
避免在一個圖中包含過多的元素: 如果系統功能複雜,可以將其分解成多個較小的使用案例圖。
使用清晰的佈局和排版: 使圖表易於閱讀和理解。
搭配使用案例描述:
撰寫詳細的使用案例描述: 每個使用案例都應該搭配一個詳細的描述文件,說明該使用案例的目的、前置條件、主要流程、替代流程和後置條件。
使用案例描述的格式: 可以使用表格或文字描述的方式,包含以下內容:
使用案例名稱
參與者
目的
前置條件
主要流程 (基本路徑)
替代流程 (例外情況)
後置條件
與利害關係人共同審閱:
與使用者和客戶確認: 與利害關係人共同審閱使用案例圖,確保其準確地反映了使用者需求。
及早發現並解決問題: 透過共同審閱,可以及早發現潛在的問題和誤解,減少後續開發過程中的返工。