第1篇 UML语言基础 2
第1章 UML概述 2
1.1 什么是UML 2
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软件过程及双向工程 154
第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应用实例 192
第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