理解用例圖:概念、範例與關係

用例圖統一模型語言 (UML),從使用者的觀點提供系統功能需求的視覺化表示。本文深入探討用例圖的核心概念,透過範例說明其組成部分,並解釋基本用例、擴展與包含用例如何與用例範本及順序圖相關聯。

用例圖的關鍵概念

參與者

參與者代表與系統互動的使用者或外部系統。他們可以是人類使用者、其他系統或硬體裝置。參與者以人形圖示或系統邊界外的標籤方框來表示。

用例

用例代表系統提供的功能或服務。它們描述參與者與系統之間為達成特定目標而進行的互動。用例以系統邊界內的橢圓形來表示。

關係

關係顯示參與者與用例之間的互動,以及用例之間的依賴關係。用例圖中的主要關係包括:

  • 關聯:一條連接參與者與用例的線,表示該參與者參與該用例。
  • 包含:一條從基本用例指向包含用例的虛線箭頭,表示包含用例是基本用例的必要部分。
  • 擴展:一條從擴展用例指向基本用例的虛線箭頭,表示在特定條件下,擴展用例會向基本用例添加可選行為。

範例:自動櫃員機系統

讓我們以自動櫃員機(ATM)系統為例,說明用例圖的概念及其與用例範本和順序圖的關係。

用例圖

ATM系統的用例圖如下所示:

Use Case Diagram notations guide - Visual Paradigm

參與者:

  • 使用者

用例:

  • 登入
  • 提款
  • 查詢餘額
  • 向慈善機構捐款
  • 轉帳
  • 支付帳單

關係:

  • 「登入」用例是一個基本用例,包含其他用例,例如「提款」、「查詢餘額」、「向慈善機構捐款」、「轉帳」和「支付帳單」。
  • 「登入」用例具有處理無效密碼和會話超時的擴展點。

用例範本

用例範本提供每個用例的詳細文件,包括其描述、參與者、前置條件、後置條件和事件流程。

範例:「登入」用例範本

  • 用例名稱:登入
  • 參與者:使用者
  • 前置條件:使用者位於自動櫃員機前。
  • 後置條件:使用者已登入,或顯示錯誤訊息。
  • 事件流程:
    1. 使用者插入ATM卡。
    2. 系統提示輸入密碼。
    3. 使用者輸入密碼。
    4. 系統驗證密碼。
    5. 如果密碼正確,系統將使用者登入。
    6. 如果密碼錯誤,系統處理無效密碼(擴展)。
    7. 如果會話超時,系統處理會話超時(擴展)。

擴展點:

  • 無效密碼:
    • 條件: 輸入的密碼不正確。
    • 流程:
      1. 系統顯示錯誤訊息。
      2. 系統再次提示輸入密碼。
  • 會話逾時:
    • 條件: 使用者在一段時間內未操作。
    • 流程:
      1. 系統登出使用者。
      2. 系統顯示逾時訊息。

順序圖

順序圖透過顯示物件之間如何隨時間互動,來模擬系統的動態行為。它們著重於物件之間交換訊息的順序。

範例:「登入」的順序圖

「登入」使用案例的順序圖如下所示:

物件:

  • 使用者
  • 自動櫃員機
  • 銀行系統

訊息:

  1. 使用者插入自動櫃員機卡片。
  2. 自動櫃員機向銀行系統發送請求以驗證卡片。
  3. 銀行系統驗證卡片,並向自動櫃員機發送回應。
  4. 自動櫃員機提示輸入密碼。
  5. 使用者輸入密碼。
  6. 自動櫃員機向銀行系統發送請求以驗證密碼。
  7. 銀行系統驗證密碼,並向自動櫃員機發送回應。
  8. 如果密碼正確,自動櫃員機將使用者登入。
  9. 如果密碼錯誤,自動櫃員機處理無效密碼(擴展)。
  10. 如果會話逾時,自動櫃員機處理會話逾時(擴展)。

圖表之間的關係

基本使用案例與包含

「登入」使用案例是一個基本使用案例,包含其他使用案例,例如「提款」、「查詢餘額」、「捐贈給慈善機構」、「轉帳」和「支付帳單」。這表示使用者必須先登入才能執行這些動作中的任何一個。包含關係以從基本使用案例指向被包含使用案例的虛線箭頭表示。

擴展

「登入」使用案例具有處理無效密碼和會話逾時的擴展點。擴展關係以從擴展使用案例指向基本使用案例的虛線箭頭表示。擴展使用案例在特定條件下為基本使用案例添加可選行為。

使用案例範本與順序圖

使用案例範本提供使用案例的詳細描述,包括事件流程。順序圖透過顯示物件在時間上的互動來呈現使用案例的動態行為。使用案例範本中的事件流程對應於順序圖中的訊息序列。

結論

使用案例圖對於從使用者觀點捕捉系統的功能需求至關重要。透過理解參與者、使用案例和關係等關鍵概念,並結合使用案例圖與使用案例範本及順序圖,您可以有效模擬系統的行為。ATM系統範例說明了基本使用案例、擴展與包含使用案例如何與使用案例範本及順序圖相互關聯,從而提供系統需求與行為的全面視圖。

參考資料

  1. 順序圖 – Visual Paradigm

    • 本文說明順序圖是一種強調訊息時間順序的互動圖。它詳細說明順序圖如何呈現情境中涉及的物件與類別,以及它們之間交換訊息的順序。
    • 順序圖 – Visual Paradigm 11
  2. 什麼是順序圖?

    • 本指南提供順序圖的概覽,說明它們是詳細描述操作執行方式的互動圖,包括發送哪些訊息以及何時發送。同時也討論順序圖如何根據時間進行組織。
    • 什麼是順序圖? 12
  3. 如何繪製順序圖?

    • 本逐步指南示範如何使用 Visual Paradigm 創建 UML 順序圖。內容包括使用編輯器建立包含生命線與訊息的順序圖的操作說明。
    • 如何繪製順序圖? 13
  4. 如何繪製 UML 順序圖?

    • 本教程提供繪製 UML 順序圖的詳細步驟,從簡單的類別圖開始,並針對控制器類別的動態方法呼叫進行建模。
    • 如何繪製UML順序圖? 14
  5. 順序圖教程 – Visual Paradigm

    • 本教程解釋了順序圖是什麼,並提供逐步說明如何繪製順序圖。同時鼓勵使用者使用Visual Paradigm Online創建自己的順序圖。
    • 順序圖教程 – Visual Paradigm 15
  6. Visual Paradigm中的順序圖

    • 本章專注於Visual Paradigm中的順序圖,解釋如何繪製順序圖,以及其主要用途在於以順序方式展示物件之間的互動。
    • Visual Paradigm中的順序圖 16
  7. 順序圖 – UML圖 – Visual Paradigm

  8. 順序圖範例 – Visual Paradigm社群圈

  9. 使用參考 – Visual Paradigm社群圈

    • 此範例展示了一個引用其他順序圖的順序圖,例如「餘額查詢」和「扣款帳戶」。說明了序列如何開始並透過各種互動逐步進行。
    • 使用參考 – Visual Paradigm社群圈 19

Leave a Reply