Skip to content
Read this post in: de_DEen_USes_ESfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW
Home » UML » 區分 UML 中的結構圖與行為圖

區分 UML 中的結構圖與行為圖

在 UML 中,圖表可大致分為兩大類:結構圖與行為圖。以下是 14 種圖表類型及其分類的簡要說明:Overview of the 14 UML Diagram Types

結構圖(靜態建模):

  1. 類圖(結構):
    • 表示系統的靜態結構,包括類別、屬性與關係。
  2. 物件圖(結構):
    • 顯示特定時間點的實例快照,呈現物件及其關係。
  3. 套件圖(結構):
    • 將元素組織成套件,提供系統組織的高階視圖。
  4. 元件圖(結構):
    • 著重於系統元件及其互動,對系統架構非常有用。
  5. 組合結構圖(結構):
    • 表示類別的內部結構,包括部分、埠與連接器。
  6. 部署圖(結構):
    • 描述系統中元件與節點的實際部署情況。

行為圖(動態建模):

  • 用例圖(行為):
    • 從使用者的觀點展示系統功能,顯示參與者與用例。
  • 活動圖(行為):
    • 模擬系統內活動與動作的流程,包括平行與條件行為。
  • 狀態機圖 (行為):
    • 以有限狀態機的狀態與轉移來表示物件或系統的行為。
  • 順序圖 (行為):
    • 顯示物件之間在時間上的互動,強調訊息的順序。
  • 通訊圖 (行為):
    • 強調物件之間的關係以及它們如何協作以完成任務。
  • 互動概觀圖 (行為):
    • 結合活動圖與順序圖,以提供複雜互動的概觀。
  • 時序圖 (行為):
    • 著重於互動的時序限制,包括生命線與事件。
  • 外觀圖  (結構)
    • 一種特殊的UML圖,用於透過定義自訂的樣式、標籤值與約束來擴展UML元模型。外觀圖是UML擴展機制的一部分,可讓您根據特定的建模需求或領域客製化UML。

這些UML圖在建模軟體系統時具有不同的用途,結構圖著重於靜態面向,而行為圖則處理動態面向。選擇適當的圖形類型,取決於您希望呈現或溝通系統的特定面向。

區分結構圖與行為圖

結構圖提供系統的靜態視圖,強調其元件、關係與組織,而行為圖則提供動態視圖,著重於系統內的執行時期行為、互動與流程。這兩類圖形各有不同的用途,對於全面建模與文件化軟體系統至關重要,能同時涵蓋其靜態與動態面向。

以下表格將14種UML圖形分類於這兩大類別,並為每一種提供簡要範例:

結構圖(靜態建模):

圖形類型 描述 範例
類別圖 表示靜態類別結構與關係。 範例:以類別如書籍, 作者,以及圖書館.
物件圖 顯示特定時刻的實例及其關係。 範例:顯示特定的書籍以及會員物件在圖書館系統中。
套件圖 將元素組織成套件或命名空間。 範例:將相關類別分組至一個圖書館管理套件。
元件圖 描述系統的實體或邏輯元件及其連接。 範例:說明網頁系統中的軟體元件,例如資料庫、網頁伺服器和客戶端應用程式。
組合結構圖 詳細說明類別的內部結構,包含零件、埠與連接器。 範例:顯示電腦系統的內部結構,包含 CPU、記憶體與主機板等元件。
部署圖 顯示元件在節點或伺服器上的實體部署。 範例:表示網頁伺服器軟體元件如何部署在實體伺服器上。

行為圖(動態建模):

圖表類型 描述 範例
用例圖 定義參與者及其透過用例與系統的互動。 範例:模擬客戶如何與自動櫃員機系統互動以提領現金。
活動圖 描述系統中的工作流程、程序和動作,包括分支與平行處理。 範例:說明處理線上訂單所涉及的步驟。
狀態機圖 將物件或系統的行為表示為具有狀態與轉移的有限狀態機。 範例:模擬交通信號系統的狀態與轉移。
序列圖 透過訊息在時間軸上顯示物件或元件之間的互動。 範例:顯示使用者與資料庫系統在登入過程中訊息傳遞的順序。
通訊圖 著重於系統中物件之間的互動與協作。 範例:呈現聊天應用程式中物件如何交換訊息。
互動概觀圖 結合活動圖與序列圖的元素,以提供複雜互動的整體概觀。 範例:簡化零售系統中複雜的訂單處理工作流程。
時序圖 指定互動的時序限制,包括生命線與事件。 範例:顯示網路中設備之間資料傳輸的時序。

這些表格將每個UML圖表分類為「結構圖」(靜態建模)或「行為圖」(動態建模)類別,並附上每種類型的簡要描述與範例情境。

UML圖表在軟體設計中的多面向角色

軟體設計中的不同類型圖表具有特定用途,並提供對軟體系統的多種觀點。以下是我們需要不同類型圖表的主要原因:

  1. 清晰度與溝通:軟體專案中的不同利害關係人,包括開發人員、架構師、測試人員與業務分析師,對系統的理解需求各不相同。使用不同類型的圖表有助於針對其特定角色調整資訊,使溝通更有效。
  2. 抽象層級:軟體系統相當複雜,不同面向需在不同抽象層級上考量。某些圖表(如類別圖)提供高階的結構視圖,而其他圖表(如序列圖)則提供詳細的行為洞察。
  3. 問題解決:軟體設計與開發中的不同問題需要不同的解決方法。例如,在模擬系統的靜態結構時,類別圖較為合適,而序列圖則適合用來理解動態行為。
  4. 系統理解:不同的圖表提供了觀察系統的不同視角。這有助於全面理解系統,包括其架構、行為、互動以及部署。
  5. 文件:全面的文件對於軟體專案至關重要。使用各種類型的圖表可以建立結構良好且易於參考的視覺化文件,讓開發團隊在不同開發階段都能輕鬆查閱。
  6. 需求分析:用例圖和活動圖對於捕捉和分析系統需求與工作流程非常有價值。它們有助於確保軟體符合使用者需求。
  7. 架構設計:組件圖和部署圖對於架構設計至關重要。它們有助於規劃系統的結構以及其在現實環境中的部署方式。
  8. 測試與驗證:序列圖和狀態機圖有助於設計測試案例,並根據需求驗證系統的行為。
  9. 決策:不同類型的圖表提供不同的洞察。在決策過程中,架構師和專案經理可以利用這些圖表來評估取捨,做出明智的選擇。
  10. 維護便利性:圖表有助於維護和演進軟體。當開發人員需要修改或擴展系統時,這些視覺化表示可作為理解現有結構與行為的寶貴參考。

總結

軟體設計中UML圖表的多樣性迎合了軟體系統的多面向特性。每種圖表類型都有其特定用途,並提供獨特的視角,使其成為軟體開發各個階段——從初步設計到實作、測試與維護——不可或缺的工具。

 

發佈留言