引言
類圖是統一建模語言(UML)的基本組成部分,提供系統靜態結構的視覺化表示。它們展示了系統中類、屬性、方法以及物件之間的關係。本指南將深入探討類圖的核心概念,以附帶的圖示為例,並提供創建有效類圖的指導原則、技巧與訣竅。

類圖的關鍵概念
類
類代表創建物件的藍圖。它封裝了資料(屬性)與行為(方法)。在圖中,卡, 里程卡, 乘客,以及里程帳戶都是類的範例。
屬性
屬性是類的屬性或資料成員。例如,里程卡類有一個屬性狀態.
方法
方法是類的函數或行為。例如,乘客類具有如建立里程(), 消耗里程(),以及取消里程().
關係
類別之間的關係可以有各種類型:
- 關聯:類別之間的一般關係。
- 聚合:一種「部分-整體」關係,其中一個類別是另一個類別的一部分。
- 組合:一種強烈的「部分-整體」關係,其中部分的生命週期由整體管理。
- 繼承:一種「是-一種」關係,其中一個類別從另一個類別繼承屬性和方法。
- 依賴:一種其中一個類別使用另一個類別的關係。
多重性
多重性定義了一個類別的實例與另一個類別的單一實例之間可以關聯的數量。例如,「里程卡」與「卡」之間的多重性為「0..1 對 1」,表示一個「里程卡」可以擁有零個或一個「卡.
約束
約束是系統必須滿足的規則或條件。它可以是使用者定義的,也可以是UML預先定義的。在圖中,{mc.number = ma.number}是一個使用者定義的約束,而{owner 是個人或公司}是一個UML預先定義的約束。
理解附圖
抽象類別
這個 卡片這個類別是抽象類別,以斜體名稱表示。它無法直接實例化,並作為其他類別的基底類別。
繼承
這個 里程卡類別繼承自 卡片類別,如實心線搭配空心箭頭所示。這表示 里程卡繼承了 卡片.
多重性
在 里程卡 和 卡片之間的多重性為「0..1 對 1」,表示一個 里程卡可以擁有零個或一個 卡片,但一個 卡片只能擁有一個 里程卡.
組合
這個 乘客 類別與「」之間具有組合關係MilesAccount 類別,以實心菱形表示。這表示一個乘客 擁有一個MilesAccount,且該MilesAccount 的生命週期由乘客.
XOR 約束
「個人」與「公司之間的 XOR 約束表示一個MilesAccount 可由一個個人 或一個公司擁有,但不能同時擁有兩者。
建立有效類圖的指南
1. 識別主要類別
首先識別系統中的主要類別。這些是代表您領域核心概念的核心實體。
2. 定義屬性和方法
針對每個類別,定義其屬性和方法。屬性代表資料,而方法代表類別的行為。
3. 建立關係
確定類別之間的關係。使用適當的 UML 符號來表示關聯、聚合、組合、繼承和依賴關係。
4. 指定多重性
為每個關係指定多重性,以表示一個類別的實例可以與另一個類別的單一實例關聯的實例數量。
5. 添加約束
包含適用於類別或其關係的任何約束。約束可以是使用者定義的,也可以是UML預先定義的。
6. 使用註解以提供澄清
使用註解來提供有關類別、屬性、方法或關係的額外資訊或說明。
技巧與提示
1. 保持簡單
從簡單的圖表開始,並根據需要逐步添加更多細節。避免因過多的類別或關係而使圖表過於複雜。
2. 使用一致的命名
為類別、屬性和方法使用一致且有意義的名稱。這使得圖表更容易理解與維護。
3. 將相關類別分組
將相關的類別聚集在一起,以提升圖表的可讀性。使用套件或命名空間來組織類別。
4. 驗證圖表
根據系統需求驗證圖表,以確保其準確地反映系統的結構與行為。
5. 迭代與精煉
類別圖是迭代式的。從粗略的草圖開始,隨著對系統或問題了解的加深,逐步加以精煉。
6. 與他人合作
與同儕或導師討論你的圖表,以獲得反饋並提升你的技能。合作可以帶來新的觀點與洞見。
結論
類別圖對於視覺化與設計系統的靜態結構至關重要。透過理解類別、屬性、方法、關係、多重性與約束等關鍵概念,你可以建立有效的類別圖,準確呈現系統的架構。遵循本指南所提供的規範、技巧與提示,將幫助你建立清晰、簡潔且有意義的類別圖,促進利益相關者之間的溝通與合作。
範例:里程卡系統
讓我們重新檢視附上的圖表,以強化所討論的概念:

- 抽象類別:
卡類別是一個抽象類別,作為里程卡類別的基礎。 - 繼承:The
MilesCard類別繼承自Card類別具有組合關係。 - 多重性:介於
MilesCard與Card之間的多重性為「0..1 對 1」。 - 組合:The
Passenger類別與MilesAccount類別具有組合關係。 - XOR 約束:The
MilesAccount可以由Person或Company,但不能同時擁有兩者。
透過遵循此份全面指南,您能有效建立並理解類別圖,確保系統架構穩健且設計完善。
參考資料
-
UML 類別圖教學
- 此份全面的教學說明了什麼是類別圖,以及如何使用 Visual Paradigm 繪製類別圖。內容涵蓋類別圖的基本概念,並提供逐步說明以協助您建立自己的圖表。
- UML 類別圖教學
-
免費類圖工具 – Visual Paradigm
- Visual Paradigm Online 提供免費版本,支援建立類圖及其他 UML 圖表。此工具具備簡單但強大的編輯器,讓您能快速且輕鬆地建立類圖。
- 免費類圖工具 – Visual Paradigm
-
什麼是類圖?
- 本指南提供類圖的入門介紹,說明其目的與組成部分。同時也探討類圖如何透過展示系統的類別、屬性、方法與關係來描述系統的結構。
- 什麼是類圖?
-
如何繪製類圖?
- 本逐步指南示範如何使用 Visual Paradigm 建立 UML 類圖。內容包含如何使用圖表工具列與資源目錄來建立類別與關係。
- 如何繪製類圖?
-
線上類圖軟體 – Visual Paradigm
- Visual Paradigm 的線上類圖工具設計為快速、易用且直覺。它讓您能透過拖放介面與協作功能,建立專業的類圖。
- 線上類圖軟體 – Visual Paradigm
-
類圖範本
- 此資源提供多種類圖範本,協助您開始設計。包含可依您特定需求進行客製化的專業範本。
- 類圖範本
-
Visual Paradigm 類圖繪製 – Stack Overflow
- 此 Stack Overflow 討論涵蓋使用 Visual Paradigm 繪製類圖的各個面向,包含建立與自訂圖表的技巧與提示。
- Visual Paradigm 類圖繪製 – Stack Overflow
-
類圖 – UML – 討論 Visual Paradigm
- 此論壇討論探討如何在類圖中使用 UML 類別類型,並提供繪製類圖與物件圖資源的連結。
- 類圖 – UML – 討論 Visual Paradigm
-
如何從 ERD 產生類圖?
- 本教學說明如何使用 Visual Paradigm 從實體-關係圖(ERD)產生類圖。內容涵蓋將實體與關係對應至類別與關聯的方法。
- 如何從 ERD 產生類圖?