UML 精華第三版
UML Distilled Third Edition
物件模型語言標準簡介
Martin Fowler 原著
趙 光 正 編譯
Cris Kobryn、Grady Booch、
Ivar Jacobson 與 Jim Rumbaugh 序
UML 精華第三版 — 物件模型語言標準簡介
想了解什麼是類別圖中最重要的東西嗎?(請參見第 3 章)
想一賭新的 UML 2.0 版中,循序圖裡面為流程控制而新增的互動框表示法嗎?
本書也介紹了許多人愛用的非正式表示法。(請參見第 4 章)
想知道 UML 各個版本間有哪些變化嗎?(請參見附錄)
想擁有一份 UML 中最常用表示法的快速對照表嗎?(請參見書本內頁)
想知道 UML 2.0 版中新加入了哪幾種圖,卻不想費力去K規格書嗎?(請參見
第 1 章)
UML精華前兩版讓 30 萬名以上的開發人員受惠。第三版同樣也是 UML 2.0 版與 1.x
版的最佳資訊來源,它引導大家快速、精確地了解 UML 並使用它。
對本書讀者來說,有些人是想要快速跟上 UML 2.0 版的腳步,學習其中的必要內容。
其他人則是希望把本書當作手邊方便好用的參考書,快速找到 UML 中最常用的部
分。本書作者以簡短、扼要、專注的呈現方式,達到上述兩項要求。
本書介紹 UML 中所有最主要的圖、說明它們的用途,並教導大家在畫或讀這些圖時,
一些用得上的基本表示法。這些圖包括類別圖、循序圖、物件圖、套件圖、配置圖、
使用案例圖、狀態機圖、活動圖、通訊圖、合成結構、元件圖、互動概圖與時序圖。
作者並舉了一些簡單易懂的例子,適時說明基本設計邏輯。
如果你跟大多數開發人員一樣,沒時間跟上軟體工程方面的改革創新,那麼 Fowler
的這本新版經典書,正好可以讓你熟悉一些最佳思維。協助大家用最適當的方式,以
UML 來做出有效的物件導向軟體設計結果 ─ 對專業的軟體設計人士來說,這是一
種非常必要的能力。
作者 Martin Fowler 是 ThoughWorks 的首席科學家,這家公司從事企業應用程式的
開發與移轉工作。作者把物件導向技術應用於企業軟體的開發工作上,已經有十年以
上的經驗了。此外,在樣式、UML、重構與敏捷方法論上,他也頗為知名。Martin
2
跟他的妻子 Cindy,還有一隻不可思議的貓,居住在美國馬薩諸塞州 Melrose 市。個
人網頁為http://martinfowler.com。
譯者 趙光正 政治大學資管系碩士斑畢業。他也是 UML精華第二版、Rational統一
(開發)流程第二版、UML 與樣式徹底研究第二版,以及使用案例寫作實務等書的
譯者。
3
UML 精華第三版 — 物件模型語言標準簡介
目錄
譯序........................................................................................................................................................9
編輯範例 .........................................................................................................................................12
三版序..................................................................................................................................................13
一版序..................................................................................................................................................16
自序......................................................................................................................................................18
為何對 UML 感到困擾?...............................................................................................................20
本書結構 .........................................................................................................................................21
第三版所做的改變 .........................................................................................................................22
致謝 .................................................................................................................................................23
CHAPTER 1 簡介...............................................................................................................................26
什麼是 UML?................................................................................................................................26
UML 的不同用法............................................................................................................................27
UML 的發展歷程............................................................................................................................35
表示法與超模型 .............................................................................................................................37
UML 中所包含的圖........................................................................................................................40
什麼才是合法的 UML....................................................................................................................43
UML 所代表的含意........................................................................................................................45
只靠 UML 是不夠的.......................................................................................................................45
UML 要從何學起............................................................................................................................47
如何獲得更多資訊 .........................................................................................................................48
CHAPTER 2 開發流程.......................................................................................................................50
反覆式與瀑布式的開發流程..........................................................................................................52
預測式或調整式的規劃方式..........................................................................................................57
敏捷式開發流程 .............................................................................................................................59
RATIOANL 統一(開發)流程 ........................................................................................................60
裁減開發流程以適合專案需要......................................................................................................62
在開發流程中使用 UML................................................................................................................66
需求分析.....................................................................................................................................66
設計.............................................................................................................................................67
寫文件.........................................................................................................................................69
了解前人所遺留的程式碼.........................................................................................................72
4
選擇開發流程 .................................................................................................................................72
如何獲得更多資訊 .........................................................................................................................73
CHAPTER 3 類別圖:基本概念.......................................................................................................75
(類別)性質 .................................................................................................................................76
屬性.............................................................................................................................................77
關聯.............................................................................................................................................79
多重性 .............................................................................................................................................80
寫程式時對(類別)性質的詮釋..................................................................................................83
雙向關聯 .........................................................................................................................................86
操作 .................................................................................................................................................89
一般化關係 .....................................................................................................................................91
便條符號與註釋 .............................................................................................................................93
相依性 .............................................................................................................................................93
限制規則 .........................................................................................................................................98
何時使用類別圖 ...........................................................................................................................102
如何獲得更多資訊 .......................................................................................................................103
CHAPTER 4 循序圖.........................................................................................................................104
參與物件的產生與刪除動作........................................................................................................ 110
迴圈與條件式邏輯等互動框........................................................................................................ 112
同步與非同步呼叫 .......................................................................................................................121
何時使用循序圖 ...........................................................................................................................122
CHAPTER 5 類別圖:高等概念...........................................................................................................
關鍵字 .................................................................................................................................................
責任 .....................................................................................................................................................
靜態操作與屬性 .................................................................................................................................
聚合關係和合成關係 .........................................................................................................................
衍生(類別)性質 .............................................................................................................................
介面與抽象類別 .................................................................................................................................
唯讀與凍結不變 .................................................................................................................................
參考物件與值物件 .............................................................................................................................
限定關聯 .............................................................................................................................................
類別化關係與一般化關係..................................................................................................................
多重與動態類別化關係 .....................................................................................................................
關聯類別 .............................................................................................................................................
範本類別(參數化類別)..................................................................................................................
列舉型態 .............................................................................................................................................
主動類別 .............................................................................................................................................
可見性 .................................................................................................................................................
5
UML 精華第三版 — 物件模型語言標準簡介
訊息 .....................................................................................................................................................
CHAPTER 6 物件圖...............................................................................................................................
何時使用物件圖 .................................................................................................................................
CHAPTER 7 套件圖...............................................................................................................................
套件與相依性 .....................................................................................................................................
套件構面 .............................................................................................................................................
套件間的實作關係 .............................................................................................................................
何時使用套件圖 .................................................................................................................................
如何獲得更多資訊 .............................................................................................................................
CHAPTER 8 配置圖...............................................................................................................................
何時使用配置圖 .................................................................................................................................
CHAPTER 9 使用案例...........................................................................................................................
使用案例的內容 .................................................................................................................................
使用案例圖 .........................................................................................................................................
不同目標等級的使用案例..................................................................................................................
使用案例與系統特性(或使用者故事)..........................................................................................
何時用使用案例 .................................................................................................................................
如何獲得更多資訊 .............................................................................................................................
CHAPTER 10 狀態機圖.........................................................................................................................
內部活動 .............................................................................................................................................
活動狀態 .............................................................................................................................................
超狀態 .................................................................................................................................................
並行狀態 .............................................................................................................................................
狀態機圖的實作 .................................................................................................................................
何時使用狀態機圖 .............................................................................................................................
如何獲得更多資訊 .............................................................................................................................
CHAPTER 11 活動圖.............................................................................................................................
將動作分解開來 .................................................................................................................................
分割 .....................................................................................................................................................
信號 .....................................................................................................................................................
(令)符 .............................................................................................................................................
活動流/活動前緣 ................................................................................................................................
接腳與轉型 .........................................................................................................................................
擴張區 .................................................................................................................................................
活動流結束 .........................................................................................................................................
6
會合規格 .............................................................................................................................................
本書沒提到的活動圖內容..................................................................................................................
何時使用活動圖 .................................................................................................................................
如何獲得更多資訊 .............................................................................................................................
CHAPTER 12 通訊圖.............................................................................................................................
何時使用通訊圖 .................................................................................................................................
CHAPTER 13 合成結構.........................................................................................................................
何時使用合成結構 .............................................................................................................................
CHAPTER 14 元件圖.............................................................................................................................
何時用元件圖 .....................................................................................................................................
CHAPTER 15 合作情形.........................................................................................................................
何時用合作情形 .................................................................................................................................
CHAPTER 16 互動概圖.........................................................................................................................
何時用互動概圖 .................................................................................................................................
CHAPTER 17 時序圖.............................................................................................................................
何時用時序圖 .....................................................................................................................................
APPENDIX UML 各版本間的改變 ................................................................................................126
UML 的修正版..............................................................................................................................126
UML 精華一書的改變..................................................................................................................128
UML 從 1.0 版到 1.1 版的改變....................................................................................................129
型態與實作類別.......................................................................................................................129
完整和不完整的辨別子限制...................................................................................................130
合成關係...................................................................................................................................130
不可變限制與凍結不變限制...................................................................................................131
循序圖上的訊息回覆...............................................................................................................131
「角色」這個術語的使用.......................................................................................................131
UML 從 1.2 版(包括 1.1 版)到 1.3 版 (包括 1.5 版)的改變 ............................................132
使用案例...................................................................................................................................132
活動圖.......................................................................................................................................133
UML 從 1.3 版到 1.4 版的改變....................................................................................................134
UML 從 1.4 版到 1.5 版的改變....................................................................................................136
UML 從 1.X 版到 2.0 版的改變....................................................................................................136
類別圖:基本概念(第3 章)...............................................................................................137
循序圖(第4 章)...................................................................................................................138
7
UML 精華第三版 — 物件模型語言標準簡介
類別圖:高等概念(第5 章)...............................................................................................138
狀態機圖(第10 章).............................................................................................................138
活動圖(第11 章).................................................................................................................139
參考書目............................................................................................................................................140
英文索引............................................................................................................................................146
8