使用 Visual Paradigm 學習統一建模語言
「一張圖勝過千行程式碼」— UML 類圖可幫助您在撰寫任何程式碼之前,視覺化、設計並溝通物件導向系統。

🔹 什麼是 UML?
統一建模語言(UML)是一種標準化的圖形符號,用於視覺化、規格化、建構和文件化物件導向軟體系統。
一種 類圖是一種 靜態結構圖透過展示以下內容來描述系統:
-
✅ 類別 – 物件的藍圖
-
✅ 屬性 – 類別的資料/屬性
-
✅ 操作(方法) – 行為/功能
-
✅ 關係 – 物件之間如何互動
💡 為什麼要學習 UML?它能彌補需求與程式碼之間的差距,提升團隊溝通效率,並幫助早期發現設計缺陷。
🔹 理解類別與物件
什麼是類別?
一種 類別 是用來建立物件的藍圖。它定義了:
-
狀態 (屬性/特性)
-
行為 (操作/方法)
什麼是物件?
一個 物件 是類別的一個 實例 類別的實例——根據類別藍圖建立的具體實體。

🐕 實際世界範例:狗類別
類別:狗
├─ 屬性:顏色、名字、品種
└─ 行為:搖尾巴()、吠叫()、吃東西()
每個 狗 物件(例如 我的寵物, 鄰居的狗) 具有相同的結構,但儲存獨特的資料。
🔹 UML 類別符號說明
UML 類別以一個 三格矩形:

1️⃣ 類別名稱(頂部分區)
-
必要 – 唯一必需的元素
-
以 純文字,居中,粗體
-
抽象類別以 顯示斜體
2️⃣ 屬性(中間區段)
-
格式:
可見性 名稱 : 類型 = 預設值 -
對應至 成員變數 在程式碼中
-
範例:
- 年齡 : 整數 = 0
3️⃣ 操作/方法(底端區段)
-
格式:
可見性 方法名稱(參數 : 類型) : 回傳類型 -
對應至 類別方法 在程式碼中
-
範例:
+ 計算總額() : 雙精度

🔹 類別可見性與參數
🔐 可見性修飾詞
前置符號表示存取層級:
| 符號 | 可見性 | 可存取來源 |
|---|---|---|
+ |
公開 | 任何地方 |
- |
私有 | 僅限於類別內部 |
# |
受保護 | 類別及子類別內 |

➡️ 參數方向性
指定方法參數中的資料流動方式:
| 方向 | 含義 |
|---|---|
in |
僅輸入(預設) |
out |
僅輸出 |
inout |
輸入與輸出 |

💡 小提示:大多數程式語言預設為
in參數。在建模 API 或複雜資料流時,請使用方向性。
🔹 類別圖的三個觀點
根據您的開發階段,選擇圖表的詳細程度:

| 觀點 | 何時使用 | 重點 |
|---|---|---|
| 概念性 | 早期分析、領域建模 | 商業概念、現實世界實體 |
| 規格 | 設計階段、介面定義 | 抽象資料類型(ADTs)、方法簽章 |
| 實作 | 程式撰寫階段、技術設計 | 具體類別,語言特定細節 |
🎯 最佳實務: 從概念開始 → 演進至實作。不要在早期圖表中過度堆疊技術細節。
🔹 類別之間的關係
UML 精確定義類別之間如何互動。掌握這六種核心關係:

1️⃣ 繼承(泛化)→ 「是—一種」
-
代表特殊化:
子類別是父類別 -
符號:實線搭配空心三角形箭頭指向父類別
-
抽象類別以斜體

📐 範例:形狀層次結構

// 程式碼對應
抽象類別 Shape { ... }
類別 Circle 繼承 Shape { ... }
類別 Rectangle 繼承 Shape { ... }
2️⃣ 關聯 → 「使用—一種」(結構連結)
-
代表同級類別之間的持久性關係
-
符號:實線類別之間
-
通常以動詞片語標示:
放置,管理,包含
簡單關聯範例:

🔢 基數(多重性)
定義有多少個實例參與:
| 符號表示 | 含義 | 範例 |
|---|---|---|
1 |
恰好一個 | 一位客戶下一個訂單 |
0..1 |
零個或一個 | 使用者可能有一個個人檔案 |
*或0..* |
零個或多個 | 一個部門有許多員工 |
1..* |
一個或多個 | 一個訂單至少包含一個項目 |

3️⃣ 聚合 → 「擁有」(弱擁有)
-
特殊關聯:「部分與整體」關係
-
零件可以獨立存在獨立地於整體之外
-
符號表示:實線搭配空心菱形於「整體」一端

// 範例:部門聚合教授
class Department {
private List<Professor> professors; // 即使部門解散,教授仍存在
}
4️⃣ 組合 → 「強擁有」(強擁有)
-
聚合的更強形式
-
零件無法存在沒有整體就無法存在;生命週期相互關聯
-
符號:實線搭配實心菱形位於「整體」端

// 範例:房屋組成房間
class House {
private List<Room> rooms; // 房間會在房屋拆除時一同被銷毀
}
⚠️ 關鍵差異:
聚合:
汽車擁有輪子→ 輪子可以重複使用組成:
房屋擁有房間→ 房間無法在沒有房屋的情況下存在
5️⃣ 依賴 → 「暫時使用」
-
一個類別依賴於另一個類別以進行實作(例如:方法參數)
-
並非結構性關係;供應者變更可能影響客戶
-
符號:虛線搭配開放箭頭

實際範例:個人閱讀書籍

class Person {
boolean hasRead(Book book) { ... } // 書籍是參數 → 依賴關係
}
6️⃣ 實作 → 「實作」
-
介於一個與其之間的關係介面及其實作類別
-
符號:虛線搭配空心三角形箭頭

// Java 範例
介面 Owner {
void acquireProperty();
void disposeProperty();
}
類別 Person 實作 Owner { ... }
類別 Corporation 實作 Owner { ... }
🔹 實際應用範例
🛒 範例 1:訂單管理系統

重點摘要:
-
顧客下訂單訂單(關聯,1..*) -
訂單由…組成訂單項目(組合) -
訂單項目參考產品(關聯) -
付款實作IPayment介面 (實作)
💻 範例 2:帶有註解的 GUI 應用程式

重點摘要:
-
註解(黃色方框)提供說明,而不會使類別變得雜亂
-
JFrame包含JPanel(組成) -
事件監聽器使用依賴關係
🔹 推薦的 UML 工具
| 工具 | 最適合 | 價格 | 平台 |
|---|---|---|---|
| 🥇 Visual Paradigm Community Edition | 初學者、學生、完整的 UML 支援 | ✅ 免費 | Windows/macOS/Linux |
| Lucidchart | 協作、基於網頁 | 免費增值 | 網頁 |
| draw.io (diagrams.net) | 快速繪製圖表、簡單易用 | ✅ 免費 | 網頁/桌面 |
| StarUML | 輕量級、可擴展 | 付費(免費試用) | Windows/macOS/Linux |
| Enterprise Architect | 大型團隊、複雜系統 | 付費 | 贏 |
🏆 為什麼選擇 Visual Paradigm 社區版?
✅ 100% 免費 用於學習及非商業用途
✅ 所有 UML 2.x 圖表類型 支援(類別、用例、序列等)
✅ 直覺的拖放介面 – 無需編碼
✅ 程式碼工程:從圖表生成程式碼並反向工程
✅ 跨平台:Windows、macOS、Linux
✅ 獲獎肯定:全球大專院校與專業人士的信賴之選
🔹 開始使用 Visual Paradigm:5 分鐘快速設定
-
下載與安裝
→ 前往visual-paradigm.com/download/community.jsp
→ 選擇您的作業系統 → 安裝(不到 2 分鐘) -
建立新專案
→ 啟動 VP →專案→新增→ 選取「類別圖」 -
新增您的第一個類別
→ 從工具箱拖曳「類別」→ 雙擊編輯名稱
→ 右鍵按一下類別 →新增→屬性/作業 -
繪製關係
→ 使用工具列中的關係工具(繼承、關聯等)
→ 點選來源類別 → 拖曳至目標類別 -
匯出與分享
→圖形→匯出→ PNG/PDF/SVG
→ 或產生 Java/C# 程式碼:工具→程式碼工程
🎬 專業提示: 使用 模型 → 模型報告自動從您的圖表生成文件!
🎯 快速參考速查表
類圖語法摘要
+---------------------+
| 類別名稱 | ← 上方:名稱(必需)
+---------------------+
| - 屬性 : 類型 | ← 中間:屬性
| + 名稱 : 字串 |
+---------------------+
| + 方法() : 類型 | ← 下方:操作
| - 計算(x: 整數):整數|
+---------------------+
關係符號快速指南
| 關係 | 符號 | 關鍵字 |
|---|---|---|
| 繼承 | ───▷ | 「是-a」 |
| 關聯 | ─── | 「有-a」/「使用」 |
| 聚合 | ───◇ | 「部分-a」(弱) |
| 組合 | ───◆ | 「部分-a」(強) |
| 依賴 | – – -> | 「暫時使用」 |
| 實作 | – – ▷ | 「實作」 |
🚀 UML 初學者的下一步
-
✅ 練習: 建立一個簡單系統的模型(圖書館、銀行帳戶、購物車)
-
✅ 逆向工程: 將現有的 Java/C# 程式碼匯入 Visual Paradigm,以查看自動產生的圖表
-
✅ 協作: 與團隊成員分享圖表,進行設計審查
-
✅ 迭代: 從概念開始 → 在編碼過程中逐步精煉為實作
-
✅ 探索: 接下來學習用例圖、順序圖和活動圖
💬 記住: UML 是一種溝通工具,而不是繁文縟節。讓圖表保持足夠簡單——但不要更簡單。
✨ 你已經準備好以專業水準進行設計了!
今天就開始使用 Visual Paradigm Community Edition — 免費、強大且適合初學者。
祝你建模愉快! 🎨🔧🚀













