本书是一本关于UML统一建模的实用教程,对UML体系结构、UML元素语义、语法和UML应用进行了详细的讲解,表述通俗易懂,同时配备大量的实例加以说明,便于自学。
全书共分3篇15章。第1篇介绍了UML语言的特点、UML语言的体系结构、UML组成元素、UML包含的图形种类、UML图的表示方法、UML图的作用、UML的应用领域和建模方法等;第2篇介绍了RUP统一过程及UML的应用、UML工具Rational Rose的使用;第3篇以图书管理系统为例,介绍了系统开发的各个阶段,以及如何应用UML对系统进行建模。通过对本书的学习,读者可以系统地掌握UML语言的阅读方法和建模方法。
本书重点突出了UML语言的表示方法和建模方法,内容精练,表达简明,实例丰富,适合作为高等院校计算机专业及相关专业的教材,也可以作为培训机构相关专业的培训教材。
感谢您阅读本书,为了能更好地帮助您理解和掌握本书的知识,请仔细阅读下面内容。
读者对象
本书既适合UML语言初学者阅读,也适合系统分析员、设计者和系统测试者阅读。在写作上,本书以UML设计元素为主线,以系统建模为目标,运用实例系统地阐明了UML语言体系结构、组成、语义、语法和用UML元素表示系统的方法。本书理论与应用配合紧密,知识表达通俗易懂,既可作为高等院校计算机专业及相关专业的教材,也可以作为培训机构相关专业的培训教材。
本书特色
市场上有许多关于UML统一建模的图书,它们各有特点,本书与这些图书的不同之处在于强调了领域的表示方法和建模方法。本书体系结构安排合理,知识组织风格统一,知识表达通俗易懂,知识讲解由易到难,具体特点如下:
1.在体系结构的安排上强调内容的系统性、连贯性、逻辑性和实用性。对UML元素的语义、语法和建模方法的讲解由易到难逐层展开,便于读者学习和理解。
2.在对UML元素的讲解上充分体现文字描述和图形描述的结合。通过文字描述,详细地定义了UML元素的语义、语法;通过图形将UML元素可视化、规范化;对每个UML元素进行讲解,采用实例对UML元素的语义和使用方法进行演示,帮助读者学以 致用。
3.知识组织风格统一,对每个UML元素的讲解采用的格式为:UML元素定义→UML元素表示法→图形的使用方法。这种对知识进行描述的方法符合人们对问题的理解和运用习惯,使读者可以快速上手。
编者情况
本书主编曾经在大型软件公司从事应用系统的分析和设计工作多年,在开发系统过程中积累了丰富的系统建模方法及经验,能熟练地运用UML语言把系统需求分析和系统设计形式化为标准的需求分析文档和设计文档。近几年来,编者一直从事高校计算机教学工作,既有丰富的系统开发经验,又有丰富的教学经验,是主讲软件工程、UML统一建模、Java技术和Jsp技术的一线教师。
本书第1~12章由王先国编写,第13章由刘烨(黄冈职业技术学院教师)编写,第14章由方鹏(长江职业学院教师)编写,第15章由曾碧卿编写。全书由王先国统稿。
致谢
感谢李利强副教授、杜作阳副教授、肖应旺博士、张承忠老师、杨桂芝老师、刘刚博士、冼广铭博士、邓虹老师、邹竞辉老师、吴莘莼老师、蔡妍老师、彭丰平老师为本书提出了许多建设性的意见和指导。同时感谢我的学生韩超、凌彩欣、张富宇、李妙珍、王娥英为本书的文字编辑所付出的心血和努力。
联系方式
书中实例虽然经过多次检查,但难免会存在疏漏和错误,恳请读者批评指正。如有好的建议或在学习中遇到疑难问题,欢迎大家发电子邮件与本书作者联系(wangxg288@tom.com)。本书配备了教学大纲和课件,如有需要,请到清华大学出版社网站(www.tup.com.cn)下载。
编者
2008年12月
第1篇 UML语言基础
第1章 UML概述2
1.1 什么是UML2
1.1.1 UML的发展历史2
1.1.2 UML的定义4
1.1.3 UML中的图4
1.1.4 UML的主要特点6
1.1.5 UML的应用领域6
1.2 什么是模型7
1.2.1 为什么建模8
1.2.2 建模的目标和原则8
1.2.3 为什么要用UML建模9
1.2.4 用UML可以建立的模型种类9
1.3 UML工具10
1.3.1 主要UML工具介绍10
1.3.2 如何选择UML工具10
1.4 小结11
1.5 习题12
第2章 UML语言体系13
2.1 UML语言组成13
2.2 基本元素14
2.2.1 结构元素14
2.2.2 行为元素17
2.2.3 分组元素18
2.2.4 注释元素18
2.3 关系元素18
2.4 图和视图21
2.5 规则22
2.6 公共机制23
2.6.1 规格描述23
2.6.2 修饰24
2.6.3 通用划分24
2.6.4 扩展机制24
2.7 用视图表示系统体系结构25
2.8 小结26
2.9 习题26
第3章 类图28
3.1 类图的概念28
3.2 UML中的类29
3.2.1 类的表示29
3.2.2 类的种类31
3.3 类图中的关系34
3.3.1 关系分类34
3.3.2 关联的属性36
3.4 阅读类图38
3.4.1 电子商务网站业务38
3.4.2 阅读类图39
3.5 如何建立对象模型43
3.5.1 问题陈述43
3.5.2 寻找分析类43
3.5.3 确定类关系44
3.6 小结46
3.7 习题47
第4章 对象图49
4.1 什么是对象49
4.2 对象图的概念50
4.3 对象的表示50
4.4 链接的表示51
4.5 阅读对象图的方法52
4.6 小结52
4.7 习题52
第5章 包图54
5.1 包图的概念54
5.2 包的表示55
5.2.1 包的名称55
5.2.2 包的元素56
5.2.3 包的可见性56
5.2.4 包的构造型57
5.3 包图中的关系57
5.3.1 依赖关系57
5.3.2 泛化关系58
5.4 阅读包图58
5.5 创建包图59
5.5.1 寻找包60
5.5.2 消除循环包依赖60
5.6 包图建模61
5.6.1 对成组元素建模61
5.6.2 对体系结构建模62
5.7 小结62
5.8 习题63
第6章 用例图64
6.1 需求技术64
6.2 RUP开发过程64
6.3 用例图的概念65
6.4 用例图的表示66
6.4.1 参与者的表示66
6.4.2 用例的表示67
6.5 参与者之间的关系68
6.5.1 识别参与者68
6.5.2 参与者间的泛化关系68
6.6 用例之间的关系69
6.6.1 识别用例69
6.6.2 标识用例间的关系70
6.7 参与者与用例之间的关系73
6.8 阅读用例图73
6.8.1 用例描述模板74
6.8.2 用例描述举例75
6.8.3 用例粒度77
6.9 用例图应用78
6.9.1 问题描述78
6.9.2 定义术语表79
6.9.3 标识参与者80
6.9.4 标识系统用例80
6.10 建模要点82
6.11 小结82
6.12 习题82
第7章 交互图84
7.1 顺序图84
7.1.1 顺序图的概念84
7.1.2 顺序图的表示85
7.1.3 表示循环和分支88
7.1.4 绘制顺序图93
7.2 通信图94
7.2.1 通信图的概念95
7.2.2 通信图的表示95
7.2.3 表示循环和分支97
7.2.4 阅读通信图98
7.3 绘制交互图98
7.3.1 寻找分析类99
7.3.2 构建交互图101
7.4 顺序图与通信图的关系102
7.5 定时图103
7.6 小结104
7.7 习题104
第8章 活动图107
8.1 活动图的概念107
8.2 活动图的表示108
8.3 活动图分类110
8.3.1 简单活动图110
8.3.2 标识泳道的活动图110
8.3.3 标识对象流的活动图111
8.3.4 标识信号的活动图112
8.3.5 标识参数的活动图113
8.3.6 标识扩展区的活动图114
8.3.7 嵌套活动图115
8.4 构建活动图115
8.4.1 对工作流程建模116
8.4.2 对操作流程建模116
8.5 小结117
8.6 习题117
第9章 交互概述图118
9.1 交互概述图的概念118
9.2 如何绘制交互概述图118
9.2.1 策略选择119
9.2.2 选择绘制主线120
9.2.3 细化重要节点120
9.3 小结121
9.4 习题121
第10章 状态机图122
10.1 状态机图的概念122
10.1.1 状态机图122
10.1.2 状态机图的作用123
10.1.3 状态机图的组成元素123
10.1.4 状态机123
10.2 状态图的表示123
10.2.1 状态的表示123
10.2.2 转换的表示124
10.2.3 分支的表示126
10.3 转换的分类127
10.4 状态的分类128
10.4.1 简单状态128
10.4.2 复合状态129
10.4.3 历史状态131
10.4.4 子状态机间实现通信132
10.5 建立状态机图132
10.5.1 寻找主要状态133
10.5.2 确定状态间的转换133
10.5.3 详细描述每个状态和转换134
10.5.4 把简单状态图转换为复合状态图135
10.6 状态机图应用范围135
10.7 小结136
10.8 习题136
第11章 构件图138
11.1 构件的概念138
11.1.1 构件138
11.1.2 构件与类138
11.1.3 构件分类139
11.2 构件图的概念139
11.2.1 构件图的作用140
11.2.2 构件图的组成元素140
11.3 构件的表示140
11.3.1 没有标识接口的构件表示法140
11.3.2 标识接口的构件表示法141
11.4 构件间的关系141
11.5 构件图分类142
11.5.1 简单构件图142
11.5.2 嵌套的构件图143
11.6 构件图应用143
11.6.1 对可执行程序建模144
11.6.2 对源代码进行建模144
11.7 小结145
11.8 习题145
第12章 部署图146
12.1 部署图的概念146
12.1.1 部署图的作用147
12.1.2 部署图的组成元素147
12.2 部署图的表示147
12.2.1 节点147
12.2.2 连接149
12.3 部署图应用150
12.3.1 设计阶段150
12.3.2 实现阶段150
12.3.3 嵌入式系统建模151
12.3.4 客户机/服务器和分布式系统建模151
12.4 小结151
12.5 习题152
第2篇 RUP软件过程及双向工程
第13章 RUP(统一软件过程)154
13.1 当前流行的软件过程154
13.2 统一软件过程(RUP)概述155
13.2.1 RUP的核心工作流156
13.2.2 RUP的4个阶段158
13.2.3 RUP中的迭代模型159
13.3 RUP中的核心工作流160
13.3.1 需求工作流160
13.3.2 分析工作流163
13.3.3 设计工作流166
13.3.4 实现工作流169
13.3.5 测试工作流172
13.4 RUP裁剪177
13.5 RUP的十大要素177
13.6 小结180
13.7 习题180
第14章 Rose的双向工程181
14.1 双向工程简介181
14.2 正向工程181
14.3 逆向工程184
14.4 实例应用185
14.5 小结190
14.6 习题190
第3篇 UML应用实例
第15章 图书管理系统192
15.1 软件需求分析192
15.1.1 需求捕获193
15.1.2 软件需求工程194
15.2 图书馆管理系统的需求分析195
15.2.1 标识参与者195
15.2.2 标识用例195
15.2.3 实现用例的时序图198
15.2.4 实现用例的协作图203
15.2.5 对象的状态图205
15.2.6 参与者的活动图207
15.3 系统中的类211
15.3.1 系统中主要的类211
15.3.2 各个类之间的关系213
15.4 系统的配置与实现214
15.4.1 系统的组件图214
15.4.2 系统的配置图215
15.5 小结216
15.6 习题216
附录A UML图总结217
附录B OCL概述223