第2版前言


自2013年出版后,本书第1版被多所高校选用,得到了大家的认可。随着UML语言自身的发展和广泛应用,以及在这期间部分使用者反馈的意见,我们发现有必要对书中的内容进行修订。本次修订除了修改书中的差错外,对书中的部分内容也进行了调整,主要包括以下几个方面。
(1) 增加了200道练习题。在每一章的最后新增了数量不等的练习题,题型包括选择题、简答题和应用题。这些习题主要来自编者多年来的教学实践积累。其中,选择题主要涉及书中的重要概念和典型应用,可用于课堂教学过程中的随堂测试; 简答题涵盖了每个章节的核心知识点,可用于学生课后复习; 而应用题则为案例实践和部分课外调研,可用于学生课外综合实践。读者可联系出版社或编者本人获取习题答案。
(2) 更新部分内容。结合UML 2.5和建模领域的新发展与应用,更新了书中的部分内容,包括第2章UML组成结构、第3章UML活动图等内容。
(3) 更新有关建模工具的使用。本书第1版中建模实践的内容主要是围绕Rational Rose工具开展的。新版在保留原有的内容基础上,增加了目前流行的Enterprise Architect 12工具使用的介绍,对书中涉及的案例模型同时提供了这两个工具的版本。
(4) 增加了多媒体教学资料。除了第1版提供的教学PPT和课程案例模型外,新版还配套录制了一些教学视频,主要讲解各类建模操作实践,欢迎读者观看。
当然,书中还难免存在一些不足或者疏漏之处,欢迎各位读者批评指正; 如有疑问或问题,请随时与编者联系,电子邮箱: thbin@buaa.edu.cn,编者在博客园上的个人博客主页会发布图书相关信息,网址为http://www.cnblogs.com/thbin/。
编者2018年9月










第1版前言

毋庸置疑,面向对象的方法已成为现代软件开发中最主流的方法,即便是SOA、云计算等概念也均是建立在面向对象方法基础之上的进一步抽象。与此同时,自1997年UML正式诞生,到2011年发布的UML 2.4.1,经历了多个版本的发展和完善,UML已成为建模语言的国际标准(ISO 19501和ISO 19505),基于UML的面向对象分析设计方法也日益成熟。然而,UML只是提供了一种标准的表示法,在分析设计过程中,什么时候以什么方式使用什么UML模型等具体的建模实践并没有在UML中定义,而这才是广大软件开发人员所要掌握的实践技能,也是本书所关注的内容。
本书目标
本书系统地介绍了利用UML 2进行面向对象分析与设计的过程,主要目标包括以下3个方面。
 ◆
OO(面向对象): 建立对象的思维方式,对面向对象思想和理论有深入的理解。
 ◆UML(统一建模语言): 能够熟练地使用UML表达面向对象的设计思想。
 ◆Model(建模): 运用面向对象的一般原则和模式进行应用系统的分析和设计建模。
组织结构
本书总体结构可以分为三大部分。
第一部分为基础概念,包括第1章和第2章。其中,第1章为上升到面向对象,通过案例引出面向对象的方法,并重点介绍了对象技术中的几个核心概念; 第2章为可视化建模技术基础,全面介绍了有关UML 2的组织结构和内容。这些基础概念将在后续的分析设计中被广泛使用。
第二部分为面向对象的分析,包括第3~5章。其中,第3章为业务建模,原始业务是需求分析的出发点,本章简要地介绍了业务建模的基本概念和方法,并提供了一些实践指南; 第4章为用例建模,系统地介绍了利用UML用例模型进行需求定义的过程和实践; 第5章为用例分析,介绍了如何围绕第4章所建立的用例模型进行面向对象分析的方法和实践。
第三部分为面向对象的设计,包括第6~10章。其中,第6~7章为设计基础,分别介绍了有关面向对象设计的基本原则和模式,这些原则和模式将有效地指导后续的设计过程; 第8章为架构设计,介绍了如何在系统的全局范围内,基于分析活动的成果定义设计元素、设计机制等内容,从而构造系统的组织结构; 第9章为构件设计,介绍了如何在系统的局部设计各个细节,包括用例设计、子系统设计、类设计和数据库设计等方面的内容; 第10章为从模型到代码,简单地介绍了设计模型和代码之间的映射,为后续编码做准备。
在案例设计方面,本书设计了两个贯穿全书的案例: 旅店预订系统和旅游业务申请系统。这两个案例各有侧重,通过它们,读者不仅可以掌握UML建模的基本方法,还可以全面了解在整个系统开发过程中从分析模型到设计模型不断演化的过程。此外,在各个章节中,针对一些特定的知识点,设计了各种小的案例进行阐述,这些案例包括第1章开篇的素数问题、第2章的图书馆管理系统、第3章的饭店系统、第6章的咖啡机系统、第7章的可复用按钮等。
有关UML内容,本书从两个层面进行介绍: 首先在第2章中对UML基本概念、组织结构和各种模型进行了系统、初步的介绍; 然后在后续的分析设计实践中针对一些重点UML模型的使用进行详细、深入的论述,使读者在掌握UML基本概念后,能够在需要的地方进行应用。有关各章节中涉及的UML模型和核心概念如下表所示。




章节章 节 名 称章 节 性 质UML模型核 心 概 念


第1章上升到面向对象基础面向对象技术、类、对象
第2章可视化建模技术基础*(全部)UML组织结构
第3章业务建模业务活动图业务参与者、业务用例、活动
第4章用例建模需求用例图用例、参与者、用例关系
第5章用例分析分析顺序图、类图用例实现、分析类(边界类、控制类和实体类)
第6章面向对象的设计原则设计基础通信图设计原则
第7章面向对象的设计模式设计基础模式、设计模式、GRASP
第8章架构设计设计包图、部署图构架、设计元素、设计机制、
进程、线程
第9章构件设计设计类图、状态机图、构件图接口、子系统、组合结构操作、方法、状态、关系
第10章从模型到代码实现正向工程、逆向工程

有关UML工具的选择,也是读者所关心的问题。市面上有很多商业的或开源的UML工具,这些工具各有特点,但核心建模功能都相差不大。工具本身只是一种实现手段,选择哪款UML工具,并不影响对本书概念的理解和实践。本书中的UML模型绘制主要采用IBM Rational Rose 2003和Sparx Systems Enterprise Architect 7.5工具,都不算最新的工具,够用即可。选择Rose是因为编者从最早学习UML开始就一直使用该工具,虽然有点老,但能满足大部分建模需求; 不过由于Rose 2003不支持最新的UML 2,因此针对UML 2中的新概念选择了Enterprise Architect(没有选择IBM Rational的后续版本RSA是因为这个工具集过于庞大,更倾向于一个集成开发平台,不适合作为一个普通的UML工具进行介绍; 此外,其默认的图形样式颜色较淡,不适合放在书中展示)。当然,这两个工具也无法覆盖到所有的UML概念,因此书中有些模型是选择其他的UML工具或一些绘图工具完成的。
致谢

本书是编者在北京航空航天大学软件学院近10年的研究生面向对象分析与设计课程教学基础上编写而成的,非常感谢软件学院的领导、教师和学生提供这样的交流平台,书中大部分内容和案例都是通过此课程的教学不断形成和完善的。在此,还要特别感谢在课程教学和教材编写过程中提供帮助的姚淑珍教授、林广艳副教授、杨文龙教授、孟岩老师等学院教师和企业导师。此外,编者还曾参加过IBM组织的面向对象分析与设计课程培训、UML China公开课等,也曾为一些软件企业进行过有关方面的培训,这些来自企业的经历也充实了课程和教材内容,在此一并表示感谢。最后,还需要感谢我的家人,正是因为她们无私的奉献才使得我有更多的精力投入到课程教学和教材编写中。
编者
2012年10月