類圖是統一建模語言(UML)的基本組成部分,通過展示類、介面、合作關係及其關係,提供系統的結構視圖。本指南將涵蓋類圖的關鍵概念、組成部分和用途,幫助您理解並有效運用它們進行系統建模。
類圖的目的
類圖是一種結構圖,用於展示一組類、介面和合作關係及其關係。它是建模物件導向系統中最常見的圖表。類圖呈現系統的靜態設計視圖,用於建模系統的詞彙、合作關係或結構模式。它們是組件圖和部署圖的基礎。
範例: 在圖書館管理系統中,類圖可能顯示如下類別:書籍, 作者, 圖書館,以及會員,以及它們之間的關係和屬性。
靜態視圖
類圖代表系統的靜態視圖,意味著它們不顯示與時間相關的行為。它們呈現模型中與時間無關的元素。這些圖表展示可能存在于現實世界、軟體或硬體實現中,或僅存在於抽象中的有意義且有用的觀念。它們可能包含代表現實世界概念、抽象概念、實現概念或電腦概念的元素。
範例: 在電子商務系統中,類圖可能包含如下類別:產品, 客戶, 訂單,以及付款,展示它們的屬性和關係,而不考慮操作的順序。
類別
定義與特徵
類是一組共享相同屬性、操作、關係和語義的物件的描述。它是系統詞彙中事物的抽象。類是UML建模中最常見的元素。其他建模元素則描述一個或多個類的行為、內部結構、配置、關係或組織方式。
範例: 在銀行系統中,類圖可能包括如下類別:帳戶, 客戶, 交易,以及銀行每個類別都有其自身的屬性和操作。
類別的類型
- 軟體類別:代表軟體實體。
- 硬體類別:代表硬體元件。
- 概念類別:代表抽象概念。
範例: 在智慧家庭系統中,類別可能包括感測器(硬體),控制器(軟體),以及房間(概念)。
類別的組成部分
- 屬性:我們感興趣的類別之特性。
- 操作:該類別的物件所能執行的事項。
範例: A 書 類別可能具有如下屬性:標題, 作者,以及ISBN,以及如下操作:借出() 和歸還書籍().
符號表示法
類別的符號表示法是一個矩形,其中包含一個必有的名稱區段。可選的區段可用來顯示類別的屬性。類別也可以有一個可選的區段來顯示其操作。
範例:

抽象層級
類別可以在不同的意義層級上存在,包括分析層級、設計層級和實現層級。
範例: 在一個軟體開發專案中,你可能會有一個分析層級的類別,例如使用者,一個設計層級的類別,例如使用者介面,以及一個實作層級的類別,例如使用者登入表單.
抽象類別與具體類別
- 抽象類別:一個無法直接實例化的類別。其名稱可能以斜體顯示。
- 具體類別: 一個可以擁有獨立實例的類別。
範例: 一個抽象類別 形狀 以及其子類別 圓形 和 矩形.
類別範圍的屬性和操作
類別可被視為一個全域物件。類別範圍的屬性是此隱含物件的屬性。類別範圍的操作作用於類別本身,而非作用於物件。
範例: 一個 數學工具 類別,具有一個類別範圍的操作 階乘(整數 n).
造型
類別可以使用尖括號(« 和 »)以造型顯示。造型表示模型元素的特殊類別或語法中的新術語。類別可能具有建立操作(建構函數),該操作在類別中以底線標示。
範例:

關係
類別圖也顯示類別之間的關係。這些關係包括:
關聯
關聯描述特定類別中個別物件之間的語義連結。它們提供了不同類別物件之間互動的連結。
範例: 一個 顧客 類別與一個 訂單 類別關聯,表示顧客可以下訂單。
泛化
泛化將父分類器(超類)的通用描述與更專門的子分類器(子類)相關聯。它促進了使用逐步聲明來描述分類器,這些聲明會在繼承自祖先的描述基礎上增加內容。
範例: 一個 車輛 類別,包含子類別 汽車 和 自行車.
依賴關係
依賴關係顯示元素之間的關係,例如抽象層級、模板參數、權限或使用方式。
範例: 一個 記錄器 類別,依賴於一個 檔案寫入器 類別來寫入日誌檔案。
實例與物件
定義
物件是類別的一個實例。它是一個具有身份的個體,其結構與行為由類別描述。物件具有狀態,即其屬性的當前值。
範例: 一個 書籍 類別,書名為「UML入門」。
符號表示
UML實例規格(物件)的符號表示是一個方框,包含一個必填的名稱欄位,其中包含物件名稱、「:」以及實例化類別的名稱。可選的第二個欄位可用來顯示槽位,即屬性及其當前值。實例的名稱會被底線標示。
範例:

在圖表中的呈現
實例可以出現在類別圖和物件圖中。類別可以透過虛線箭頭連接到其對應的實例,以表示依賴關係。類別圖可以包含實例,以視覺化實例的(可能動態的)類型。
範例: 顯示一個類別的類別圖圖書館 類別與一個實例主圖書館 透過虛線箭頭連接。
圖示內容
類別圖包含類別、介面、合作關係與關係。它們也可能包含註解與限制。類別圖可以包含套件或子系統,以將模型元素分組成較大的單元。
範例: 一個大學系統的類別圖可能包含像學生管理, 課程管理,以及教職員管理.
類別圖的使用
類別圖用於模擬系統的靜態設計視圖。它們可用於模擬系統的詞彙、模擬類別的合作關係,以及模擬邏輯資料庫結構。
範例: 使用類別圖來模擬線上商店的資料庫結構,包含像產品, 類別,以及顧客.
與其他圖示的關係
類別圖與其他圖示相關,例如:
物件圖
物件圖顯示類別的實例及其關係。
範例: 一個物件圖,顯示實例的客戶 和 訂單 類別及其關係。
元件圖與部署圖
元件圖與部署圖與類別圖類似,但分別包含元件與節點。
範例: 一個顯示電子商務系統軟體元件的元件圖,以及一個顯示這些元件如何部署在伺服器上的部署圖。
抽象
類別圖是一種抽象形式,提供系統的簡化視圖,在保留必要細節的同時隱藏不必要的複雜性。
範例: 一個銀行系統的高階類別圖,僅顯示主要類別及其關係,隱藏個別屬性和操作的細節。
多個圖表
通常需要多個類別圖來呈現系統的完整靜態視圖。每個圖表應專注於系統的特定方面。
範例: 一個用於系統使用者管理方面的類別圖,另一個用於訂單處理方面的類別圖。
圖表作為投影
類別圖是對模型的一種投影,是對一組元素的圖形化呈現。
範例: 一個顯示零售系統中與庫存管理相關的類別子集的投影的類別圖。
正向與逆向工程
類別圖可用於模型與程式碼的正向與逆向工程。
範例: 使用類別圖來為一組類別產生 Java 程式碼,然後利用逆向工程根據程式碼的變更來更新類別圖。
元模型
UML 的抽象語法使用 MOF 模型來呈現 UML 語法。這些 MOF 模型使用 UML 結構圖的一個子集。抽象語法圖中的方框為 «元類別»。UML 的元素是這些 «元類別» 的實例。
範例: 一個顯示 UML 類別圖抽象語法的元模型,其中包含 «元類別» 如類別, 屬性,以及操作.
這些概念是理解並有效運用UML中的類圖進行系統建模的基礎。透過掌握這些元素,您可以建立全面且準確的類圖,有效傳達系統內部的結構與關係。
範例 1:圖書館管理系統
類圖:

範例 2:電子商務系統
類圖:

範例 3:銀行系統
類圖:

範例 4:智慧家庭系統
類圖:

範例 5:抽象類別與具體類別
類圖:

範例 6:元模型
類圖:

範例 7:銀行系統的高階類圖
類圖:

結論
類圖是統一模型語言(UML)中不可或缺的工具,能提供系統元件及其關係的清晰且結構化的視圖。透過理解並有效運用類圖,開發人員與架構師可以建模系統的靜態設計視圖,捕捉類別的詞彙與合作關係,並設計邏輯資料庫結構。
在本指南中,我們探討了類圖的關鍵概念、組成部分及其應用。我們看到如何透過類別、屬性、操作與關係的表示,來建模現實世界、抽象概念與實作層面的內容。透過使用造型、泛化、關聯與依賴,進一步提升了建模能力,使系統結構得以全面且詳細地呈現。
所提供的範例及其對應的類圖,展示了類圖在各個領域中的實際應用,從圖書館管理系統到電子商務平台與銀行系統。這些範例說明了如何利用類圖來建模複雜系統,捕捉關鍵細節,並有效地向利益相關者傳達設計內容。
此外,類圖並非孤立的實體,而是與其他UML圖表相互關聯,例如物件圖、組件圖與部署圖。這種互連性使得系統能夠獲得整體性的視圖,確保所有面向都得到正確建模與理解。
總而言之,類圖是UML中強大且多功能的工具,對於建模系統的靜態結構至關重要。透過掌握本指南中討論的概念與技巧,您可以建立準確且有效的類圖,作為系統設計與開發的基礎。無論您是設計新系統、記錄現有系統,或向利益相關者傳達設計理念,類圖都能提供所需的清晰度與細節,以確保成功成果。
參考文獻
- UML 類圖教學
- UML 類圖教學
- 這份全面指南深入介紹了UML類圖,包括如何有效創建和使用它們。它還突出了Visual Paradigm社區版的功能,這是一款免費的UML軟體。
- 免費類圖工具
- 免費類圖工具
- Visual Paradigm Online提供免費版本,用於創建類圖及其他UML圖。此工具使用者友善,支援多種圖表類型,且不限制圖表或形狀的數量。
- 什麼是類圖?
- 什麼是類圖?
- 本文解釋了UML中類圖的基本概念,包括其結構和組成部分。同時也提供了使用Visual Paradigm創建這些圖表的見解。
- 如何繪製類圖?
- 如何繪製類圖?
- 使用Visual Paradigm繪製類圖的逐步指南,包括建立枚舉和連接成員的技巧。
- 線上類圖軟體
- 線上類圖軟體
- Visual Paradigm的線上類圖工具設計快速且直覺,讓使用者能快速且協作地創建專業的UML圖。
- UML圖表:一份全面指南
- UML圖表:一份全面指南
- 本指南涵蓋了各種類型的UML圖表,包括類圖,以及它們在軟體工程中的重要性。它探討了類圖如何呈現系統的靜態結構及類別之間的關係。
- UML類圖的全面指南
- UML類圖的全面指南
- 本文提供了UML類圖的詳細概述,包括其組成部分,以及它們在系統設計不同階段的應用。同時也提及使用Visual Paradigm來創建這些圖表。
- Visual Paradigm中UML圖表的介紹
- Visual Paradigm中UML圖表的介紹
- 本文介紹了Visual Paradigm支援的各種UML圖表類型,重點在於類圖及其在建模系統靜態結構中的角色。
- 使用Visual Paradigm學習類圖
- 使用Visual Paradigm學習類圖
- 使用Visual Paradigm創建類圖的逐步指南,包括保持圖表簡潔清晰的最佳實務。
- 探索UML:14種圖表類型的概覽及其在敏捷環境中的相關性
- 探索UML:14種圖表類型的概覽及其在敏捷環境中的相關性
- 本概覽探討了各種UML圖表類型,包括類圖,以及它們在敏捷軟體開發環境中的相關性。
這些參考資料提供了對類圖和UML的全面理解,以及使用Visual Paradigm創建這些圖表的實用指南。











