用例圖與序列圖互為補充UML 工具能夠協同運作,以提供對系統功能與行為的全面理解。本指南將帶您逐步了解如何有效地結合使用這些圖表,並提供實用範例與詳細說明。
如何一起使用用例圖與序列圖
用例圖:捕捉功能需求
用例圖代表系統的高階功能(用例)以及與這些功能互動的外部參與者(使用者或其他系統)。它們有助於識別什麼系統從使用者觀點應執行的內容。用例以橢圓形表示,參與者以人形圖示表示,而關係則顯示互動或依賴關係。
範例:考慮一個線上銀行系統。用例圖可能包含如客戶、銀行管理員與外部支付網關等參與者。用例可能包括「登入」、「轉帳」、「檢視帳單」與「管理帳戶」。關係將顯示哪些參與者與哪些用例互動,從而提供系統功能範圍的清晰概覽。
序列圖:詳述動態互動
序列圖模擬如何透過顯示物件(類別的實例)之間在時間上交換訊息的順序,以實現特定用例。它們呈現物件的生命線,以及執行用例行為所需的互動時間順序流程。
範例:針對線上銀行系統中的「轉帳」用例,序列圖將顯示客戶、銀行帳戶、交易處理器與外部支付網關等物件之間的互動。圖表將呈現訊息的順序,例如「請求轉帳」、「驗證帳戶」、「處理交易」與「確認轉帳」,提供實現功能所需的動態行為與協作的詳細視圖。
結合使用兩種圖表的實務流程
1. 從用例圖開始
識別並建立系統中關鍵用例與參與者的模型。這能提供系統功能範圍與使用者互動的清晰概覽。
範例:針對圖書館管理系統,用例圖可能包含圖書館員、會員與管理員等參與者。用例可能包括「借書」、「還書」、「搜尋目錄」與「管理庫存」。關係將顯示哪些參與者與哪些用例互動,有助於定義系統的功能需求。
2. 選擇一個用例進行詳述
選擇一個特定的用例(例如「借書」),以進一步探討。此用例將作為您序列圖的基礎。
範例:在圖書館管理系統中,選擇「借書」用例需識別會員借書所需的關鍵互動與步驟。這包括檢查書籍的可借閱狀態、更新會員帳戶,以及記錄交易。
3. 為該用例建立序列圖
模擬用例情境中涉及的物件(例如會員、書籍、圖書館資料庫、交易日誌)。依序展示這些物件之間的互動(訊息),以完成用例。這能清楚說明實現功能所需的動態行為與協作。
範例: 對於「借書」用例,序列圖將展示成員、書籍、圖書館資料庫和交易日誌之間的互動。該圖將展示訊息的順序,例如「請求書籍」、「檢查可用性」、「更新會員帳戶」和「記錄交易」,提供實現功能所需的動態行為與協作的詳細視圖。
4. 使用序列圖表示變異與例外情況
除了主要流程外,還應建立額外的序列圖,以表示用例內的替代流程或例外流程。
範例:對於「借書」用例,替代流程可能涉及書籍不可用的情況。此替代流程的序列圖將展示如「請求書籍」、「檢查可用性」、「通知不可用」和「建議替代品」等互動,提供系統如何處理例外情況的詳細視圖。
5. 連結圖表以確保可追溯性
透過將序列圖連結回其對應的用例,維持可追溯性,確保在高階需求與詳細互動之間能清晰導航。
範例:在圖書館管理系統中,將「借書」用例的序列圖連結回用例圖,可確保利益相關者能輕鬆在高階概覽與詳細互動之間導航。這種可追溯性有助於在整個開發過程中維持清晰與一致性。
總結表
| 圖表類型 | 目的 | 關鍵元素 | 在開發中的角色 |
|---|---|---|---|
| 用例圖 | 捕捉系統功能與參與者 | 參與者、用例、關係 | 定義 什麼 系統所做的內容 |
| 序列圖 | 模擬物件在時間上的互動 | 物件(生命線)、訊息 | 定義 如何 系統動態行為的方式 |
來自線上書店的範例
用例圖
線上書店的用例圖識別出如顧客與管理員等參與者,以及「下訂單」和「管理庫存」等用例。關係顯示哪些參與者與哪些用例互動,提供系統功能範圍的清晰概覽。
範例:
- 角色: 客戶,管理員
- 使用案例: 下訂單,管理庫存,瀏覽目錄,查看訂單歷史
- 關係: 客戶與下訂單和瀏覽目錄互動;管理員與管理庫存和查看訂單歷史互動。
順序圖
順序圖透過展示客戶、購物車、訂單和庫存物件之間的互動順序,來模擬「下訂單」使用案例。這清楚地說明了實現功能所需的動態行為與協作。
範例:
- 物件: 客戶,購物車,訂單,庫存
- 互動: 請求訂單,驗證購物車,處理付款,更新庫存,確認訂單
- 順序: 客戶請求訂單 → 購物車驗證項目 → 訂單處理付款 → 庫存更新庫存 → 訂單確認交易。
透過結合使用案例圖與順序圖,您既能獲得系統功能的高階概觀,也能深入了解實現這些功能所需的互動細節,從而促進清晰的溝通與有效的系統設計。
額外範例
醫療管理系統
使用案例圖:
- 角色: 病患,醫生,護士,管理員
- 使用案例: 預約就診,開立處方,更新醫療紀錄,管理人員
- 關係: 病患與預約就診互動;醫生與開立處方和更新醫療紀錄互動;管理員與管理人員互動。
「開立處方」的順序圖:
- 物件: 醫生,病患,醫療紀錄,藥房
- 互動: 請求處方,驗證醫療歷史,生成處方,傳送至藥房,通知病患
- 序列: 醫生請求處方 → 醫療記錄核實病史 → 生成處方 → 藥房接收訂單 → 患者收到通知。
電子商務平台
用例圖:
- 參與者: 顧客、賣家、管理員
- 用例: 瀏覽商品、加入購物車、結帳、管理上架、處理付款
- 關係: 顧客與瀏覽商品、加入購物車和結帳互動;賣家與管理上架互動;管理員與處理付款互動。
「結帳」的序列圖:
- 物件: 顧客、購物車、支付網關、訂單、庫存
- 互動: 請求結帳、驗證購物車、處理付款、更新庫存、確認訂單
- 序列: 顧客請求結帳 → 購物車驗證商品 → 支付網關處理付款 → 庫存更新庫存 → 訂單確認交易。
結論
透過結合使用用例圖和序列圖,您可以全面理解系統的功能與行為。用例圖提供系統應執行功能的高階概覽,而序列圖則提供系統動態行為的詳細視圖。這種組合確保了清晰的溝通、有效的系統設計,以及複雜系統的成功實現。
參考資料:
[1] https://www.visual-paradigm.com/support/documents/vpuserguide/94/2577
[2] https://www.visual-paradigm.com/support/documents/vpuserguide/94/2577_sequencediag.html
[3] https://www.visual-paradigm.com/support/documents/vpuserguide/94/2575/6362_drawinguseca.html
[4] https://www.visual-paradigm.com/learning/handbooks/software-design-handbook/sequence-diagram.jsp
[5] https://www.visual-paradigm.com/VPGallery/diagrams/Sequence.html
[7] https://www.visual-paradigm.com/support/documents/vpuserguide/124_interoperabi.html
[8] https://www.visual-paradigm.com/support/documents/vpuserguide/94/2575_usecasediagr.html