目    录

第1章  UML概述	1
1.1  面向对象开发	1
1.1.1  理解面向对象开发	1
1.1.2  面向对象的主要特征	4
1.1.3  面向对象的层和模型	7
1.2  认识UML	8
1.2.1  UML的发展历程	8
1.2.2  UML统一的作用	9
1.2.3  UML体系结构	10
1.2.4  UML建模流程和工具	10
1.3  UML核心元素	12
1.3.1  UML视图	12
1.3.2  UML图	13
1.3.3  事物	15
1.3.4  关系	17
1.3.5  通用机制	18
1.4  思考与练习	19
第2章  用例图	21
2.1  用例图的构成	21
2.1.1  系统	22
2.1.2  参与者	23
2.1.3  用例	25
2.1.4  关系	27
2.2  用例关系和描述	28
2.2.1  泛化关系	28
2.2.2  包含关系	29
2.2.3  扩展关系	31
2.2.4  用例描述	33
2.3  实例:创建BBS论坛用例图	35
2.3.1  确定系统信息	35
2.3.2  前台功能概述	37
2.3.3  构造用例模型	39
2.4  思考与练习	41
第3章  类图	43
3.1  类图的概念	43
3.1.1  类图概述	44
3.1.2  类	45
3.1.3  定义类	49
3.1.4  接口	50
3.2  泛化关系	51
3.2.1  泛化的含义和用途	51
3.2.2  泛化的层次与多重继承	52
3.2.3  泛化约束	53
3.3  依赖关系和实现关系	54
3.3.1  依赖关系	54
3.3.2  实现关系	56
3.4  关联关系	56
3.4.1  二元关联	57
3.4.2  关联类	62
3.4.3  或关联与反身关联	63
3.4.4  聚合关系	64
3.4.5  组合关系	64
3.5  实例:创建BBS论坛类图	65
3.5.1  创建实体类	65
3.5.2  创建类与类之间的关系图	67
3.6  思考与练习	69
第4章  对象图和包图	70
4.1  对象图	70
4.1.1  对象和类	71
4.1.2  对象和链	71
4.1.3  对象图概述	73
4.1.4  对象图和类图的区别	75
4.1.5  使用对象图测试类图	75
4.2  包图	77
4.2.1  包	77
4.2.2  导入包	79
4.2.3  包图概述	80
4.2.4  包之间的关系	83
4.2.5  包图和类图的区别	84
4.3  对象图和包图建模	84
4.3.1  使用对象图建模	84
4.3.2  使用包图建模	85
4.4  思考与练习	85
第5章  活动图	87
5.1  活动图概述	87
5.1.1  定义活动图	87
5.1.2  活动图的主要元素	88
5.1.3  了解活动和动作	89
5.2  活动图的组成元素	91
5.2.1  基本组成元素	91
5.2.2  其他元素	94
5.3  控制结点	100
5.3.1  分支与合并	101
5.3.2  分叉与汇合	102
5.4  实例:创建BBS论坛活动图	104
5.4.1  建模步骤	104
5.4.2  创建活动图	104
5.5  思考与练习	105
第6章  顺序图	107
6.1  顺序图概述	107
6.1.1  什么是顺序图	108
6.1.2  顺序图的元素	108
6.2  顺序图的构成元素	108
6.2.1  对象	109
6.2.2  生命线	111
6.2.3  消息	111
6.2.4  激活	117
6.3  建模和执行	118
6.3.1  建模时间	118
6.3.2  执行规范	119
6.3.3  建模迭代	119
6.4  实例:创建BBS论坛顺序图	120
6.4.1  会员用户功能顺序图	120
6.4.2  普通用户功能顺序图	122
6.5  思考与练习	124
第7章  通信图和时序图	126
7.1  通信图概述	126
7.1.1  什么是通信图	127
7.1.2  对象与类角色	127
7.1.3  关联角色与链接	128
7.1.4  消息	129
7.2  操作消息元素	130
7.2.1  消息序列号与控制点	130
7.2.2  创建对象	131
7.2.3  消息迭代	131
7.3  时序图概述	132
7.3.1  什么是时序图	132
7.3.2  时序图中的对象	133
7.3.3  状态	134
7.3.4  时间	135
7.3.5  状态线	135
7.3.6  事件与消息	137
7.4  时间约束和替代	138
7.4.1  时间约束	138
7.4.2  时序图的替代表示法	139
7.5  实例:创建BBS论坛通信图	141
7.5.1  会员用户功能通信图	141
7.5.2  普通用户功能通信图	142
7.6  思考与练习	143
第8章  组合结构图和交互概览图	145
8.1  组合结构图	145
8.1.1  内部结构	145
8.1.2  端口	148
8.1.3  协作	149
8.2  交互概览图	150
8.2.1  组成部分	150
8.2.2  使用交互	151
8.2.3  组合交互	154
8.3  思考与练习	155
第9章  状态机图	156
9.1  状态机概述	156
9.1.1  状态机及其构成	157
9.1.2  状态机图标记符	157
9.2  转移	159
9.2.1  什么是转移	159
9.2.2  事件	160
9.2.3  动作	163
9.2.4  转移的类型	164
9.3  组合状态	165
9.3.1  顺序状态	165
9.3.2  并发子状态	166
9.3.3  同步状态	167
9.3.4  历史状态	167
9.3.5  子状态机引用状态	168
9.4  实例:创建自动取款机
状态机图	169
9.4.1  分析状态机图	170
9.4.2  创建状态机图	170
9.5  思考与练习	172
第10章  组件图和部署图	173
10.1  构造实现方式图概述	173
10.1.1  组件图概述	173
10.1.2  部署图概述	174
10.1.3  组合组件图和部署图	176
10.2  组件图	176
10.2.1  组件	176
10.2.2  接口	178
10.2.3  组件间的关系与
组件嵌套	179
10.2.4  组件图的建模应用	180
10.2.5  组件图的适用情况	182
10.3  部署图	183
10.3.1  结点和连接	183
10.3.2  部署间的关系	185
10.3.3  部署图的适用情况及
如何绘制	185
10.3.4  部署图的建模应用	186
10.4  实例:创建BBS论坛组件图和
部署图	188
10.4.1  模型创建流程	188
10.4.2  实现BBS组件图和
部署图	190
10.5  思考与练习	191
第11章  UML与RUP	193
11.1  RUP概述	193
11.1.1  理解软件开发过程	193
11.1.2  什么是RUP	194
11.1.3  RUP的作用	196
11.1.4  RUP的特点	197
11.2  RUP的二维空间	198
11.2.1  时间维	198
11.2.2  RUP的静态结构	200
11.3  核心工作流程	202
11.3.1  需求获取工作流	202
11.3.2  分析工作流	205
11.3.3  设计工作流	207
11.3.4  实现工作流	210
11.3.5  测试工作流	213
11.4  思考与练习	215
第12章  对象约束语言	217
12.1  对象约束语言概述	217
12.1.1  对象约束语言简介	218
12.1.2  语言结构	218
12.1.3  语言语法	219
12.1.4  表达式	222
12.2  数据类型	223
12.2.1  基本数据类型	223
12.2.2  集合类型	225
12.2.3  OclMessage类型	226
12.2.4  OclVoid和OclAny类型	226
12.2.5  模型元素类型	227
12.3  集合	228
12.3.1  创建集合	228
12.3.2  操作集合	228
12.3.3  Collection类型	230
12.3.4  Set类型	232
12.3.5  Bag类型	233
12.3.6  Sequence类型	234
12.4  语言约束	235
12.4.1  使用约束	235
12.4.2  对象级约束	238
12.4.3  消息级约束	239
12.4.4  约束和泛化	241
12.5  思考与练习	242
第13章   UML扩展机制	244
13.1  UML的体系结构	244
13.1.1  UML扩展机制概述	245
13.1.2  四层元模型体系结构	245
13.1.3  元元模型层	247
13.1.4  元模型层	248
13.2  UML的核心语义	249
13.2.1  模型元素	249
13.2.2  视图元素	250
13.3  构造型	252
13.3.1  表示构造型	252
13.3.2  UML标准构造型	252
13.3.3  UML扩展机制
进行建模	255
13.4  标记值	257
13.4.1  表示标记值	257
13.4.2  UML标准标记值	258
13.4.3  自定义标记值	258
13.4.4  标记值应用元素	259
13.5  约束	259
13.5.1  表示约束	259
13.5.2  UML标准约束	262
13.5.3  自定义约束	263
13.6  思考与练习	263
第14章  UML与数据库设计	265
14.1  数据库设计概述	265
14.1.1  数据库设计与
UML模型	265
14.1.2  数据库接口	266
14.2  类图到数据库的转换	267
14.2.1  基本映射转换	267
14.2.2  类到表的转换	268
14.2.3  关联关系的转换	271
14.2.4  需要避免的映射情况	272
14.3  完整性与约束验证	273
14.3.1  父表的约束	273
14.3.2  子表的约束	276
14.4  数据库实现与转换技术	276
14.4.1  类映射到数据库技术	276
14.4.2  UML模型转换为
数据库	277
14.4.3  SQL语句实现
数据库功能	280
14.5  思考与练习	281
第15章  基于C++的UML模型实现	282
15.1  模型元素的简单实现	282
15.1.1  类	283
15.1.2  实现原理	284
15.2  实现关联	285
15.2.1  基本关联	285
15.2.2  强制对可选或者
强制关联	287
15.2.3  可选对可选关联	287
15.2.4  可选对多关联	288
15.2.5  强制对多关联	289
15.2.6  多对多关联	289
15.2.7  有序关联的实现	290
15.2.8  关联类的实现	291
15.3  受限关联的实现	292
15.3.1  受限关联概述	292
15.3.2  强制或者可选对可选对多受
限关联	293
15.3.3  可选对强制或者可选对多受
限关联	294
15.3.4  多对可选的受限关联	295
15.3.5  多对多受限关联	296
15.4  UML关系的实现	296
15.4.1  泛化关系的实现	296
15.4.2  聚合与组合关系的实现	297
15.5  特殊类的实现	298
15.5.1  接口	298
15.5.2  枚举	299
15.5.3  包	300
15.5.4  模板	300
15.6  思考与练习	301