大象-Thinking in UML早知道

转自:http://blog.csdn.net/coffeewoo/archive/2008/10/13/3069355.aspx
写给读者的话

近几年来,面向对象几乎成为软件技术的代名词。不论是学校设置的计算机课程,还是时下最流行的编程语言、设计方法,还是新兴的概念、标准和新思想莫不被冠以面向对象的标志。而UML是面向对象方法的一面旗帜,谈到面向对象的分析和设计就不能不谈到UML。如今UML也成为了面向对象分析和设计事实上的行业标准。然而什么是UML?怎样使用UML?UML仅仅是一组符号吗?可以说,UML是面向对象思想和方法的具体化和符号化。学习UML的过程就是掌握面向对象思想和方法的过程。相对学习UML的符号含义而言,掌握它们背后的方法和思想则是更为重要的。古人将知识分为“技”和“道”,习技固然可以成为人杰,而悟道才能羽化升仙。希望读者不满足仅仅于学会使用UML,而能够从中悟道。

不论是面向对象的方法,还是面向对象的杰出代表UML,许多朋友在现实中并不能真正掌握它们。虽然用着面向对象的工具,采用面向对象的语言,却做不出一个真正符合面向对象思想的软件。笔者在工作中发现许多使用了多年UML的人其实并不真正理解UML的意义,常常用着UML却做出了并非面向对象的设计。就像一个不知道诗歌格律的人,不论采用什么文字都写不出诗歌一样;没有真正理解面向对象的思想,没有真正掌握面向对象的方法,仅仅使用UML符号并不等于可以做出面向对象的分析和设计。

人类自从有思想以来,就在不断的探寻和认识自己所生活的这个世界。本质上说,面向过程和面向对象都是人们认识这个世界的方法;而具体的技术,则是在采用这种方法认识世界的过程中被发明、总结和归纳出来的最佳实践。对于学习者而言,掌握这些技术是重要的;掌握这些技术表示你已经继承了前人的经验积累,并且是一个捷径,一如设计模式。但是,作者更建议把学习提升一个层次,超越具体技术细节去思考其背后蕴含的思想和方法。这正是本书要冠名以Thinking in UML的原因。然而本书并不是一本讲述哲学和方法论的书籍,相反,本书中将以大量的实例来进行阐述,同时把作者在面向对象分析和设计领域的经验溶入其中,更像是一本实战手册。本书除了讲解面向对象的基本概念和UML语言之外,将采用更大篇幅现身说法,深入浅出的把面向对象思想的精髓、分析思路、推导方法传授给读者。本书的讲解均来自实际工作,乃作者多年工作经验和最佳实践的总结和归纳。这些经验和最佳实践来源于实际,更贴近于实际。

本书中某些实例或许正好与读者正面临的问题相同或相似,读者当然可以照葫芦画瓢,举一反三地去解决现实中的问题,然而这并非作者的本意。作者在思考这本书的时候,是希望以实例为线索,将思考方法和分析过程传达给读者,让读者理解某个具体解决方案背后的思考过程、分析过程和推导过程。哪怕读者经过思考得出与作者完全不同的结果,甚至证明出作者所给出的解决方案并非一个好方案,这也是作者所期望的。

希望读者在阅读本书的过程中,关注并思考作者在面对一个问题领域时的思考和分析过程,而不要沉迷于书中给出的具体事例。本书的核心是Thinking,UML只是表达的载体。如果读者能从作者的分析方法中获得灵感,对面向对象的分析和设计有所感触,开始有恍然大悟的感觉,那么作者将最大程度的感到欣慰。另外,作者的分析方法和推导过程只是作者本人在工作中自己总结出的经验,不是标准答案,更不是圣经。期望读者能够从作者的这些经验中经过思考,结合自己的实际,获得自己的方法。如果真是这样,作者的这些文字工作就真正劳有所值了。

为了让读者方便阅读,本文中的绝大部分示例图中的UML元素都是用中文命名的。在实际工作中作者建议除了业务模型部分,其他模型都最好使用英文,这是因为一方面Rose对中文的支持不太好,另一方面毕竟最终代码实现是英文的,模型与实现都用英文会避免很多歧义。

最后,感谢您购买此书,希望在本书中能够找到那些正在困扰着您的问题的答案。祝大家阅读愉快!

你可能感兴趣的:(设计模式,编程,工作,领域模型,UML)