UML精華第三版--標準物件模型語言
— UML Distilled Third Edition  UML精華第三版–標準物件模型語言 — UML Distilled Third Edition
 ———————————–
 作者/Marting Fowler/著
 譯者/趙光正/譯
 出版社/碁峰出版
 ISBN/9861540393

內容簡介:

*想了解類別圖中,哪些是最重要的東西嗎?

*想一賭新的UML 2.0版中,循序圖部分是如何針對流程控制,新增互動框(interaction frame)表示法的嗎?除此之外,我們也介紹了許多人愛用的非正式表示法。

*想知道UML各個版本間有什麼變化嗎?*想擁有一份UML最常用表示法的快速對照表嗎?

*想知道UML 2.0版中新加了哪幾種圖,卻不想費力K規格書嗎?

  UML精華前兩版嘉惠了30萬名以上的開發人員。第三版同樣也是UML 2.0版與1.x版的最佳資訊來源,它可以引導大家快速、精確地了解UML並使用它。對讀者來說,有些人想要快速跟上UML 2.0版的步伐,學習其中的必要內容。其他人則希望把本書當作手邊方便好用的參考書,快速找到UML中最常用的部分。

  本書作者以簡短、扼要、專注的呈現方式,達到上述兩項要求。

  本書介紹UML中所有最主要的圖、說明它們的用途,並教導大家在畫或讀這些圖時,用得上的一些基本表示法。這些圖包括類別圖、循序圖、物件圖、套件圖、配置圖、使用案例圖、狀態機圖(state machine diagram)、活動圖、通訊圖(communication diagram)、合成結構(composite structure)、元件圖、互動概觀圖(interaction overview diagram)與時序圖(timing diagram)。作者並舉了一些簡單易懂的例子,適時說明基本的設計邏輯。

在「好書分享」中還沒推薦過軟體設計類的書籍。
而「UML 精華」這本書,可以說是軟體設計類的箇中翹處! 我極強烈地推薦只要是軟體開發、設計人員,都應該要買這一本書來研讀。

作者 Marting Fowler 是我個人在軟體設計領域的 “偶像”,也可以說是在整個軟體設計界中,最佳的典範(Paragon)。
他所出版的書籍,涵蓋了廣度與深度,從 “Analysis Pattern”、”Refactoring(重構)”、”Patterns of Enterprise Application Architecture” 以及此本 “UML Distilled” 等。
在沒聽過 Fowler 之前,從不敢想像有這種 “天縱英才”,可以在軟體層次從最抽象面至最底層的實做機制面,都能有最深刻的研究與發表。
我個人把 Martin Fowler 視為 “軟體業界的達文西”

至今,他的一句話:「Keeping Software Soft — 把軟體做軟」,是影響我最深遠的一句話。
(試想,若軟體設計人員的思維不夠柔軟,又如何能夠把軟體 “做” 軟呢?)

「UML 精華」這本書已經出到第三版了,基本上,書中的主結構並沒有變,當然,主要也是因應 UML 規格(UML 2.0)的演進而隨著改版。
不過,我覺得,Fowler 在第三版的內容感覺是更加地 “柔軟”。

這本書完全是 Fowler 以口語化的方式來 “敘述” UML,所以,書中其實是充滿他的 “主觀”。但是,卻不會讓人感覺不舒服,Fowler 於書中從不措辭強硬來批判與他觀點不同的論點。甚至,他會站在其他人的角度來看待同一件事。

這本書與 Craig Larman 的 “Applying UML and Patterns” 一書,可說是軟體設計入門學習者的兩本最佳參考書籍。
這本書我整個 “抽象” 出來,所表達就是 “觀點” 問題;相較於 Larman 那本書,最重要的就是 “Responsibility assign”。

例如,Fowler 把 UML 分為三個層次的 “觀點”:草稿、藍圖、程式語言。

而他這本書,比較偏向於 “草稿” 的方式來表達 UML 設計。也就是,盡量發揮創意與表達,並非嚴謹地來規劃設計的 UML 語法問題。

而藍圖,則會開始定義較 “工程化” 的面向,可使 UML 圖依 “正向工程” 來產出程式。所以,語法上的定義相對就要嚴謹許多。

而程式語言,則把 UML 直接當作程式語言。亦即,圖畫完就可以直接利用工具來產出可執行的應用程式。這也是 UML 2.0 所力推的 “MDA – Model Driven Architecture” 所想走的方向。
(Fowler 在本書似乎比較不認同也不看好這個方向。我個人在還沒研究 MDA 之前,也思考過這條方向並不理想)

薄薄的一本書,卻又能涵蓋整個 UML 的 “精髓”,其實,Fowler 也是藉由 UML 來說明及敘述軟體設計的本質性思維及基本必備的設計觀念。

入門者非常適合研讀這本書。但相對地,即使許多 “老手” 也不一定能體會這本書的 “精髓”。(尤其是 “觀點” 問題)。
這本書就是如此有趣。不管是否是新手、老手,每看一次,都能有不同層次的 “體會”。

另,譯者趙光正先生,他在國內軟體設計領域的翻譯功力,已經是無庸置疑的了。從中文版的內容當中,可以很明顯感受到趙先生翻譯的用心。尤其,他還會加上他個人的 “譯註”,很值得參考。

我建議英文版及中文版都要各買一本來保存。當然,要隨時能以欣賞的角度來閱讀,那是一件非常愉快的事。