【好書分享】Object-Oriented Analysis and Design by Booch

Object-Oriented Analysis and Design with Applications (2nd Edition)
Object-Oriented Analysis and Design with Applications (2nd Edition)

 ———————————–
作者: Grady Booch/著
出版社: Addison-Wesley Professional; 2 edition
ISBN: 0805353402

內容簡介:
The first edition of Object-Oriented Design with Applications was instrumental in making object-oriented technology a practical reality–hundreds of projects applied Booch’s notation and process to complex problems in diverse domains. In this eagerly-awaited new edition, Grady Booch draws upon the rich and varied results of these projects to offer improved methods for object development and a new, unified notation. With numerous examples, all of which are now implemented in C++, Booch illustrates essential concepts, explains the method, and shows successful applications in a variety of fields. You’ll also find pragmatic advice on a host of issues including classification, implementation strategies, and cost-effective project management.

Features of the New Edition:

  • Presents a new, unified notation that incorporates the best ideas from Booch’s notation and other widely-used methods
  • Uses C++, rapidly emerging as a standard programming language for object development, in all programming examples and applications
  • Includes new examples of real world projects, including a client/server architecture and an application framework
  • Distinguishes between good and bad object-oriented analysis and design and shows how to evaluate architectural tradeoffs to manage complexity
  • Includes extensive new detail on the process and pragmatics of object-oriented analysis and design

This is the essential reference for anyone who implements or manages object technologies, or who wishes to begin exploration of this important new paradigm.

我強烈建議,想要紮實的具備軟體設計基礎功夫,這本書是最佳的選擇!

本書絕對是物件導向的經典著作,內容蘊含了深奧的哲理,而 Booch 卻又能深入淺出藉由其它成熟領域以及自然界的生活化例子,再穿插非常精緻又傳神的插圖來解釋。雖然是 1994 年 10 年前的老書,但,這幾年來,太多僅介紹 UML 表面上的語法的書籍,根本無法如本書可以深入至探討軟體的根本與哲理等的本質性觀念。

對於物件導向思維的分析與設計,絕非從 UML 等表面的語法得知,而應該是從軟體的本質去探索與思考。
光是研讀第一章:Complexity,Booch 開宗明義即提到:軟體的複雜是與生所俱來的(The inherent Complexity of Software)。而所謂物件導向與分析與設計,其實就是藉由其它成熟領域的知識以及觀察大自然關於複雜的現象所體悟到如何管理複雜的哲理,再應對至軟體領域來協助管理這種本質性的複雜。

本書提及,因為觀察複雜的現象、思考複雜的核心,而逐漸找出應對的解決方案,這些解決方案包括了:

  • 抽象(Abstraction)
  • 封裝(Encapsulation)
  • Modularity(不容易翻譯,看起來是模組,不過不然,我個人覺得比較接近是元件(Component)的同義字)
  • 階層(Hierarchy)

物件的模型的單位是物件,所以,對於什麼是物件(Objects)與類別(Classes)、分類(Classification)的依據等,這些觀念均是建立物件模型的最基礎,卻也是最不容易所理解的。

Booch 在以上這些軟體設計的基礎知識,花了很多的篇幅與例子,鉅細靡遺地說明與解釋。同時也可以引導讀者來啟發對這些基礎知識的思考。

這本書的印刷非常精美,我是約兩年前在天壠書局買的,精裝的原文書才新台幣 $750,真的是物超所值!
更令人激賞的是,書本內的插圖真是~會讓讀者有一種無名的喜悅及會心的一笑。例如,前兩個章節是以一隻貓做為插圖的主角,然後來解說如抽象與封裝等觀念。實在是有夠傳神與幽默。 😉

Abstraction illustration

Encapsulation illustration