基本信息
- 原书名:UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition
- 原出版社: Addison Wesley/Pearson
- 作者: (美)Martin Fowler
- 译者: 徐家福
- 出版社:清华大学出版社
- ISBN:7302108501
- 上架时间:2005-6-16
- 出版日期:2005 年5月
- 开本:185×230
- 页码:235
- 版次:3-1
- 所属分类:计算机 > 软件工程及软件方法学 > UML
编辑推荐
原书首版自1997年间世以来,深受读者欢迎,堪称书中上乘。数年来,内容与时俱进,不断更新,作者一如既往,力求以极小篇幅,讲述重要内容,见地独到,且使用对话文体,讲述技术内容,实用与基础并重;文笔清新,引人人胜。对软件研究者与开发人员亦颇具参考价值。
内容简介
目录
第2版译序
第3版前言
第1版前言
序
为何对UML操心?
本书的结构
第3版的变动
致谢
第1章 引言
何谓UML?
UML的使用方式
UML发展简史
图示法与元模型
UML图
何谓合法UML?
UML的含义
UML并非足够
何处着手使用UML
何处找寻更多资料
译者序
一、内容以UML 2.0为基础,引进若干新图型,如交互概观图、定时图、复合结构图。此外,对类图、顺序图、状态图、活动图等均有更新。
二、继续遵循"俭省原则",力求以极小篇幅,讲述重要内容,而且理气兼备,有血有肉。对类图之基础部分、顺序图、用案等尤为精到,其余内容,亦称简明扼要。
三、作者观点明确,有其独到见地。在UML用作草图绘制语言、蓝图绘制语言、编程语言三种使用方式中,作者特别推重用于草图绘制,并认为,旨在嫁接活动图与顺序图之交互概观图之构思未臻佳境。
四、作者使用对话文体,讲述技术内容,实用与基理并重,辅以典型实例,便于加深理解,文笔幽默清新,颇能引人入胜。
余自今岁五月阅读原书,六月启译,虽数易其稿,然限于水平,错讹欠妥之处,恳请业界贤达,不吝赐正。
第2版之中译本于2002年出版以来,曾接不少读者来函,特别是老友周锡令教授提出有益建议,特致谢意。
清华大学出版社老友张兆琪编审、薛慧编辑大力支持,于此均表谢忱。
徐家福
甲申夏月于金陵不阿斋
前言
认识到利用奥卡姆剃刀(Occam's Razor)剃须的意义,当我在设计与阅读时,总在寻找一些遵循俭省定律的项目和书籍。因此,我对你现在正在阅读的这本书赞赏有加。
你可能起先对我的上述评论感到惊异。我经常接触到定义统一建模语言LIML的冗长而难懂的规范。这些规范使工具卖主得以实现LIML并使方法学学者得以应用UML。七年来,我主持了一些大型国际标准化组,制定了UML 1.1与UML 2.0的规范以及其间若干次较小的修订。这段时期,UML在表现能力与精确程度上已臻成熟,但是,由于标准化过程,也增加了不必要的复杂性。遗憾的是,标准化过程乃是因其"按委员会设计"的折中妥协而不是因其俭省典雅而闻名于世的。
熟悉规范的晦涩难解之细微末节的UML专家能从Martin对UML2.0的精粹提炼中学到什么呢?可以学到很多。一开始,Martin就巧妙地将一种庞大复杂的语言简化成一个颇重实效的子集,后者在实践中已被证明效果不错。他摒弃了对该书的前一版增补篇幅的简易途径。由于这种语言的发展壮大,Martin一直坚持其寻求"UML最为有用的部分"的目标,并且所讲述的也正是这一部分。他所指的这一部分就是帮助你做80%工作的UML中神话般的20%部分。俘获并驯服这匹在逃的野兽乃是一项了不起的成就!
更令人钦佩的是,Martin是以一种精彩动人的对话文体来实现这一目标的。通过与我们共享他的意见及趣闻轶事,他使本书成为一本有趣的读物,并且使我们联想到构建与设计系统应是既有创见又富有成效的。如果我们追求俭省公案到尽善尽美的地步,就应发现,用UML对项目建模就犹如在小学或中学中发现指画班与绘画班那样令人愉快。UML应是我们创造性的一支照明杖,以及"精确指明系统蓝图以致第三方可以索价并构作系统"的一台激光器,后者乃是对任何一种真正蓝图语言的酸性检验。
因此,虽然这可能是一本小书,它却不是一本平凡的书。你可以从Martin的建模途径学到的东西几乎和你从他对UML 2.0的解释所学到的东西一样多。
在和Martin一道工作,以增进本次修订所阐明的UML 2.0的语言特征的选取与纠错上使我感到愉快。我们必须记住,所有有生命的语言(自然语言与人工语言)都必然发展或消亡。Martin的关于新特征的选择连同你的爱好以及其他实践者的爱好,乃是UML修订过程中的重要部分。它们使这种语言保持生气勃勃,并帮助它通过市场中的自然选择而发展。
在模型驱动开发成为主流以前还有很多挑战性的工作要做,但是我却因像这样一本清晰阐明UML建模基本原理并进行实际应用的书籍而感到鼓舞。我希望你和我一样能从中获益,并利用新的深刻了解来改进自己的软件建模实践。
Cris Kobryn
U2伙伴的UML 2.0提交组主席
Telelogic公司首席技术专家
序言
好!这对我来说固然不错,但你是否应该购买这本书呢?
我要强凋的是,这是一本篇幅简短的书。它不指望给出这些年来日益发展的UML每一方面的细节。我的意图是去发现UML中最为有用的部分,并且只对你讲述这一部分。虽然一本篇幅较大的书会使你了解更多的细节,但也会占用你更多的阅读时间。而时间是你对一本书的最大投资。为了保持这本书篇幅不大,我曾经花时间去选择最佳的部分,这样你就不必去自行选择了。(令人难过的是,"更小"并不总是意味着"更便宜",产生一本高质量的技术书是有明确固定成本的。)
购买本书的理由之一是要开始学习UML。由于这是一本小书,它会使你很快抓住UML的基本要点。掌握了这些内容以后,就可以通过一些篇幅较大的书(如《用户指南》[Booch,UML user]或《基准手册》[Rumbaugh,UML Reference])来研究UML的更多细节。
本书亦可用作UML的最常用部分的方便参考书。虽然本书并未涵盖UML的所有部分,但比起很多别的UML读物,它却是一本颇为轻便、易于携带的书。
它也是一本作者有自己见地的书。我已经在对象领域工作了很长一段时间,因而,对什么工作起来得心应手、什么不然,有明确的想法。任何一本书都反映作者的意见,我也不打算隐瞒自己的看法。因此,如果你在找寻带有客观性的东西,你就要去尝试别的书。
虽然很多人曾经告诉我,本书是一本关于对象的良好导论,但这却非我的撰写本意。如果你要找寻一本面向对象设计的导论,我推荐Craig Larman的书[Larman]。
很多对UML感兴趣的人都利用工具。本书集中考虑UML的标准以及通常用法,并未涉及各种工具所支持的细节。虽然UML消解了"前UML"表示法的巴别(Babel)塔,但在绘制UML图时,仍然在工具示明什么和允许什么之间有一些令人烦恼的差异。
在本书中我没有过多谈到模型驱动体系结构(MDA)。虽然很多人把这两者(指UML和MDA--译注)看作一回事,但很多开发人员利用UML而对MDA却并无兴趣。如果你要多学一些MDA,我就应该开始先用这本书使你能了解到UML的梗概,然后再转去阅读一本更为专门的MDA的书。
虽然本书的要点是UML,我也增加了少许像CRC卡那样对面向对象设计有价值的别的技术材料。UML只是你用对象取得成就所需要的一部分,而我认为,向你介绍一些别的技术,还是重要的。
在这样一本简短的书中,不可能涉及到有关UML如何与源代码联系的问题,特别是,尚无一种标准方式去进行这样的对应。但是,我要指出一些实现UML片段的常用编码技术。我的代码例子是用Java与C#书写的,这是因为我发现这些语言通常是最被广泛了解的语言。不要假定我喜欢Java和C#,我用Smalltalk写的代码太多了!
为何对UML操心?
我们使用设计图示法已经有了一段时间。对我来说,其主要价值在于交流与理解。一个好的图往往能帮助你交流设计想法,特别是在你想要避免很多细节时。图也可以帮助你理解一个软件系统或一个业务过程。作为试图明白一些事情的开发组一方,图既能帮助你理解又能帮助你把这些理解在开发组内交流。虽然设计图示法不是(至少还不是)正文编程语言的接替,它们却是一个有益的助手。
很多人相信,在将来,图示技术在软件开发中将起统率作用,我却对此比较怀疑,但是,鉴别这些表示法能做什么,不能做什么,则肯定是有用的。
在这些图示法中,UML的重要性源于它在面向对象开发界的广泛使用与标准化。UML已经成为不只是面向对象界内部的主要图示法,而且在非面向对象界也是一种流行的技术。本书的结构
第l章是对UML的一个简介:UML是什么,对不同的人它所具有的不同含义,以及它源于何处。
第2章谈软件过程。虽然软件过程完全独立于UML,我认为重要的是,了解过程以便看出像UML那样语言的来龙去脉。特别是,重要的是了解迭代开发的作用,对面向对象界的很多人来说,迭代开发是一种基本的过程途径。
我是围绕UML内的各种图型来组织本书的其余部分的。第3章和第4章讨论UML两个最有用的部分:类图(核心)与顺序图。即使本书很小,我相信,利用我在这几章中所讨论的技术,你可以从UML中得到最大的好处。LIML是一头日益增长的大型野兽,但是你却不需要它的全部。
第5章谈论类图的一些比较次要但仍有用的部分的细节。第6章到第8章表述进一步显露系统结构(structure)的三种有用的图:对象图、包图以及部署图。
第9章至第11章示明另外三种有用的行为(behavioral)技术:用案、状态图(虽然正式称作状态机图,它们一般称为状态图)以及活动图。第12章至第17章非常简短,它们描述了一些不太重要的图,对这些图我只提供了一个快速的例子与解释。