什麼是組件圖?

UML組件圖用於模擬物件導向系統的物理方面。它們用於視覺化、規格說明和文件化基於組件的系統,以及透過正向和逆向工程建立可執行系統。組件圖本質上是一種專門化的類圖,專注於系統的組件,並用於模擬系統的靜態實現視圖。

Component Diagram Hierarchy

組件圖概覽

組件圖將正在開發的實際系統分解為各種高階功能。每個組件負責系統內明確定義的目標,並僅在需要時與其他核心元件互動。
Component Diagram Overview
上例顯示了一個較大組件的內部組件:
  • 資料(帳戶和支票編號)透過右側的埠流入組件,並轉換為內部組件可用的格式。右側的介面稱為提供的介面,代表組件為履行其職責所需的服务。
  • 資料隨後透過各種連接傳遞至其他組件,並從左側的埠輸出。左側的介面稱為所需介面,代表組件所提供的服務。
  • 需要注意的是,內部組件被封裝在一個較大的「方框」內——這可以是整個系統本身(此時頂右角不會出現組件符號),也可以是系統的子系統/組件(此時「方框」代表組件本身)。

組件圖的基本概念

組件代表系統的一個模組化部分,封裝其內容,且其行為可在環境中被取代。在UML 2中,組件以一個矩形表示,可選的區隔欄垂直堆疊。UML 2中組件的高階抽象視圖可表示為:
  1. 帶有組件名稱的矩形
  2. 帶有組件圖示的矩形
  3. 帶有特徵文字和/或圖示的矩形
Appearance of a Component

介面

下例顯示了兩種組件介面:
提供的介面末端帶有完整圓圈的符號表示組件所提供的介面——「棒棒糖」符號是介面分類器實作關係的簡寫表示法。
所需介面末端帶有半圓形(也稱為插座)的符號表示組件所需的介面(兩種情況下,介面名稱均置於符號附近)。
Required and Provided Interfaces

組件圖範例 – 使用介面(訂購系統)

Component Diagram Example with Interfaces

子系統

子系統分類器是組件分類器的一種特殊版本。因此,子系統符號元素繼承組件符號的所有規則。唯一的差異在於子系統符號元素使用「子系統」一詞,而非「組件」。
Component Diagram with Subsystem

埠以元件或系統邊緣的方塊表示。通常用於公開元件所需的介面與提供的介面。
Component Diagram with Port

關係

圖形上,元件圖是一組頂點與弧線,通常包含元件、介面以及依賴、聚合、約束、泛化、關聯與實作等關係。也可能包含註解與約束。
關係 符號
關聯:

  • 關聯指定兩個類型實例之間可能存在的語義關係。
  • 它至少有兩個端點,每個端點由一個屬性表示,且每個端點都與另一端點的類型相連。多個端點可以具有相同的類型。

Component Diagram: Association




組成:

  • 組成是一種強形式的聚合,要求一個實例最多只能包含在一個組合中。
  • 如果組合被刪除,其部分通常也會被刪除。

Component Diagram: Composition




聚合:

  • 一種關聯形式,其中一端標記為共享聚合,表示具有共享聚合。

Component Diagram: Aggregation




約束:

  • 以自然語言文字或機器可讀語言表達的條件或限制,用以宣告元素的特定語義。

Component Diagram: Constraint




依賴:

  • 一種關係,表示一個或多個模型元素需要另一個模型元素來進行其規格或實作。
  • 這表示依賴元素的完整語義在語義或結構上依賴於供應者元素的定義。

Component Diagram: Dependency




泛化:

  • 較一般分類器與較特定分類器之間的分類關係。
  • 特定分類器的每個實例也是較一般分類器的間接實例。
  • 因此,特定分類器會從較一般分類器繼承特性。

Component Diagram: Generalization




原始碼建模

  • 透過正向或逆向工程識別感興趣的原始碼檔案集合,並將其建模為以檔案構成的元件。
  • 對於較大的系統,使用套件來顯示原始碼檔案的群組。
  • 考慮加入標籤值以表示原始碼檔案的版本號、作者及最後修改日期等資訊。使用工具來管理這些標籤值的內容。
  • 使用依賴關係來建模這些檔案之間的編譯依賴關係。同樣地,使用工具來協助產生和管理這些依賴關係。
元件範例 – Java 原始碼
Component Diagram Example: Java Source Code
元件圖範例 – 帶有版本控制的 C++ 程式碼
Component Diagram Example: C++ Code with Versioning

可執行版本的建模

  • 識別您想要建模的元件集合。這通常涉及節點上的部分或全部元件,或這些元件在系統中所有節點上的分佈。
  • 考慮此集合中每個元件的特徵標記。對於大多數系統,您會發現少數幾種不同的元件類型(例如:可執行檔、函式庫、資料表、檔案和文件)。您可以使用 UML 的可擴充機制為這些特徵標記提供視覺提示(提示)。
  • 針對此集合中的每個元件,考慮其與鄰近元件的關係。通常涉及某些元件所匯出的介面(實作)以及其它元件所匯入的介面(使用)。如果您希望揭露系統中的縫合點,請明確地建模這些介面。如果您希望獲得更高層次的抽象,則可透過僅顯示元件之間的依賴關係來消除這些關係。
Component Diagram for Modeling Executable Release

實體資料庫建模

  • 識別模型中代表邏輯資料庫結構的類別。
  • 選擇將這些類別對應至資料表的策略。您也必須考慮資料庫的實體分佈。您的對應策略將受到您希望資料在部署系統中持久化的位置所影響。
  • 為了視覺化、指定、建構和記錄對應關係,建立一個包含以資料表構成的元件的元件圖。
  • 在可能的情況下,使用工具協助您將邏輯設計轉換為實體設計。
Component Diagram for Modeling Physical Database


現在就試著繪製一個 UML 元件圖

您現在已經了解元件圖是什麼以及如何繪製它。是時候建立屬於您自己的圖了。取得 Visual Paradigm 社群版,一個免費的 UML 工具,並使用免費的 元件圖工具來建立您自己的圖。它容易使用且直覺。
  1. 什麼是統一模型語言?
  2. 專業的 UML 工具
  3. Visual Paradigm。(n.d.)。如何繪製組件圖?Visual Paradigm。https://www.visual-paradigm.com/support/documents/vpuserguide/94/2581/7292_drawingcompo.html 42.
  4. Visual Paradigm。(2018年5月11日)。什麼是組件圖?Visual Paradigm。https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-component-diagram/ 43.
  5. Visual Paradigm。(n.d.)。如何在UML中繪製組件圖?Visual Paradigm。https://www.visual-paradigm.com/tutorials/how-to-draw-component-diagram-in-uml/ 44.
  6. Visual Paradigm。(n.d.)。組件圖 – UML 2 圖 – UML 建模工具。Visual Paradigm。https://www.visual-paradigm.com/VPGallery/diagrams/Component.html 45.
  7. Visual Paradigm。(n.d.)。在Visual Paradigm中的組件圖。Visual Paradigm。https://www.visual-paradigm.com/support/documents/vpuserguide/94/2581_componentdia.html 46.
  8. Visual Paradigm 社區圈。(2018年5月11日)。7. 組件圖。Visual Paradigm。https://circle.visual-paradigm.com/docs/uml-and-sysml/component-diagram/ 47.
  9. Visual Paradigm Online。(n.d.)。免費組件圖工具。Visual Paradigm。https://online.visual-paradigm.com/diagrams/solutions/free-component-diagram-tool/ 48.
  10. Visual Paradigm Online。(n.d.)。組件圖教程。Visual Paradigm。https://online.visual-paradigm.com/tutorials/component-diagram-tutorial/ 49.
  11. Visual Paradigm。(2022年9月2日)。UML 類圖教程。Visual Paradigm。https://www.visual-paradigm.com/guide/uml-unified-modeling-language/uml-class-diagram-tutorial/ 50.
  12. Visual Paradigm Online。(n.d.)。線上UML圖表工具。Visual Paradigm。https://online.visual-paradigm.com/diagrams/features/uml-tool/ 51.

Leave a Reply