第1章 UML与面向对象 1
1.1 面向对象开发 2
1.1.1 理解面向对象开发 2
1.1.2 面向对象的主要概念 5
1.1.3 OO开发的优点 8
1.2 OO开发中的三层设计 8
1.3 UML简介 9
1.3.1 为什么对系统建模 9
1.3.2 UML的发展 10
1.3.3 UML的构成 10
1.3.4 “统一”的意义 11
1.4 UML视图 11
1.5 UML图 13
1.6 模型元素 15
1.6.1 事物 15
1.6.2 关系 17
1.7 通用机制 18
1.8 使用UML建模 19
1.9 思考与练习 20
第2章 用例图 21
2.1 用例图的构成 21
2.1.1 系统 22
2.1.2 参与者 22
2.1.3 用例 24
2.1.4 关系 26
2.2 泛化 27
2.2.1 泛化用例 27
2.2.2 泛化参与者 29
2.3 描述用例 30
2.4 用例之间的关系 33
2.4.1 包含关系 33
2.4.2 扩展关系 34
2.5 用例建模 36
2.5.1 确定系统涉及的总体信息 36
2.5.2 确定系统的参与者 36
2.5.3 确定用例与构造用例模型 37
2.6 思考与练习 40
第3章 类图、对象图和包图 41
3.1 类图 41
3.1.1 概述 41
3.1.2 类及类的表示 42
3.1.3 定义类 47
3.2 关联关系 47
3.2.1 二元关联 48
3.2.2 关联类 53
3.2.3 或关联与反身关联 54
3.2.4 聚合 55
3.2.5 组成 55
3.3 泛化关系 56
3.3.1 泛化的含义和用途 56
3.3.2 泛化的层次与多重继承 57
3.3.3 泛化约束 58
3.4 依赖关系和实现关系 59
3.5 构造类图模型 61
3.6 抽象类 63
3.7 接口 64
3.8 对象图 65
3.8.1 对象和链 65
3.8.2 使用对象图建模 66
3.9 包图 67
3.9.1 理解包图 67
3.9.2 导入包 68
3.9.3 使用包图建模 70
3.10 思考与练习 70
第4章 活动图 72
4.1 定义活动图 72
4.2 认识活动图标记符 73
4.2.1 活动 74
4.2.2 状态 75
4.2.3 转移 75
4.2.4 控制点 76
4.2.5 判断节点与合并节点 77
4.2.6 综合应用 79
4.3 其他标记符 79
4.3.1 事件和触发器 79
4.3.2 分叉和汇合 80
4.3.3 泳道 81
4.3.4 对象流 82
4.4 建造活动图模型 83
4.4.1 建模活动图步骤 83
4.4.2 标识用例 84
4.4.3 建模主路径 84
4.4.4 建模从路径 85
4.4.5 添加泳道 86
4.4.6 改进高层活动 87
4.5 思考与练习 87
第5章 顺序图 89
5.1 定义顺序图 89
5.2 顺序图的组成 90
5.2.1 对象与生命线 90
5.2.2 消息 91
5.2.3 激活 94
5.3 创建对象和分支、从属流 95
5.3.1 创建对象 95
5.3.2 分支和从属流 96
5.4 建模时间 97
5.5 建模迭代 98
5.6 消息中的参数和序号 99
5.7 管理复杂交互的顺序图片段 100
5.8 创建顺序图模型 101
5.8.1 确定用例与工作流 101
5.8.2 布置对象与添加消息 101
5.9 思考与练习 104
第6章 通信图 105
6.1 通信图的构成 105
6.1.1 对象和类角色 105
6.1.2 关联角色 106
6.1.3 通信链接 107
6.1.4 消息 107
6.2 对消息使用序列号和控制点 108
6.3 在通信图中创建对象 109
6.4 迭代 110
6.5 顺序图与通信图 110
6.6 思考与练习 112
第7章 时序图 113
7.1 时序图构成 113
7.1.1 时序图中的对象 113
7.1.2 状态 115
7.1.3 时间 115
7.1.4 状态线 116
7.1.5 事件与消息 116
7.2 时间约束 117
7.3 时序图的替代表示法 118
7.4 思考与练习 119
第8章 交互概况图和组合结构图 120
8.1 交互概况图的组成 120
8.2 为用例建模交互概况图 121
8.2.1 交互 122
8.2.2 组合交互 124
8.3 组合结构图 125
8.3.1 内部结构 125
8.3.2 使用类 127
8.3.3 合作 128
8.4 思考与练习 129
第9章 状态机图 130
9.1 定义状态机图 130
9.1.1 状态机 130
9.1.2 对象、状态和事件 131
9.1.3 状态机图 131
9.2 认识状态机图中的标记符 132
9.2.1 状态 132
9.2.2 转移 132
9.2.3 决策点 135
9.2.4 同步 135
9.3 指定状态机图中的动作和事件 136
9.3.1 事件 136
9.3.2 动作 138
9.4 组成状态 141
9.4.1 顺序子状态 141
9.4.2 并发子状态 142
9.4.3 子状态机引用状态 143
9.4.4 同步状态 144
9.4.5 历史状态 145
9.5 建造状态机图模型 146
9.5.1 分析状态机图 146
9.5.2 完成状态机图 146
9.6 思考与练习 147
第10章 构造实现方式图 148
10.1 组件图概述 148
10.2 组件及其表示 149
10.3 接口和组件间的关系 149
10.4 组件图的应用 150
10.5 部署图 151
10.5.1 节点 152
10.5.2 关联关系 153
10.5.3 部署图的应用 153
10.6 组合组件图和部署图 155
10.7 建模实现方式图 156
10.7.1 添加节点和关联关系 156
10.7.2 添加组件、类和对象 157
10.7.3 添加依赖关系 157
10.7.4 图书管理系统的实现方式图 158
10.8 思考与练习 160
第11章 UML与RUP 162
11.1 理解软件开发过程 162
11.2 Rational统一过程(RUP) 163
11.2.1 理解RUP 163
11.2.2 为什么要使用RUP 164
11.3 RUP的二维空间 165
11.3.1 时间维 165
11.3.2 RUP的静态结构 167
11.4 核心工作流程 169
11.4.1 需求获取工作流 169
11.4.2 分析工作流 172
11.4.3 设计工作流 174
11.4.4 实现工作流 176
11.4.5 测试工作流 179
11.5 思考与练习 182
第12章 UML与数据库设计 183
12.1 数据库结构 183
12.2 数据库接口 183
12.3 数据库结构转换 184
12.3.1 类到表的转换 184
12.3.2 关联关系的转换 186
12.4 完整性与约束验证 188
12.4.1 父表的约束 188
12.4.2 子表的约束 191
12.5 关于存储过程和触发器 191
12.6 铁路系统UML模型到数据库的转换 192
12.7 用SQL语句实现数据库功能 194
12.8 思考与练习 195
第13章 对象约束语言 197
13.1 OCL概述 197
13.2 OCL结构 198
13.2.1 抽象语法 198
13.2.2 具体语法 198
13.3 OCL表达式 199
13.4 OCL语法 200
13.4.1 固化类型 200
13.4.2 数据类型、运算符和操作 201
13.5 深入固化类型 202
13.5.1 属性约束建模 202
13.5.2 对操作约束建模 203
13.6 使用集合 204
13.6.1 创建集合 204
13.6.2 操作集合 205
13.7 使用消息 206
13.8 元组 208
13.9 OCL标准库 209
13.9.1 OclVoid和OclAny类型 209
13.9.2 OclMessage类型 210
13.9.3 集合类型 210
13.9.4 模型元素类型 215
13.9.5 基本类型 216
13.10 思考与练习 218
第14章 UML扩展机制 220
14.1 UML的体系结构 220
14.1.1 四层体系结构 220
14.1.2 元元模型层 222
14.1.3 元模型层 223
14.2 UML核心语义 224
14.3 构造型 226
14.3.1 表示构造型 226
14.3.2 UML标准构造型 226
14.3.3 数据建模 229
14.3.4 Web建模和业务建模扩展 230
14.4 标记值 231
14.4.1 表示标记值 231
14.4.2 标记值应用元素 231
14.4.3 自定义标记值 232
14.4.4 UML标准标记值 233
14.5 约束 233
14.5.1 表示约束 233
14.5.2 UML标准约束 234
14.5.3 自定义约束 236
14.6 思考与练习 236
第15章 UML模型的实现 237
15.1 类的实现 237
15.2 关联关系的实现 239
15.2.1 一般关联的实现 240
15.2.2 有序关联的实现 244
15.2.3 关联类的实现 244
15.2.4 受限关联的实现 246
15.3 聚合与组合关系的实现 249
15.4 泛化关系的实现 250
15.5 接口类和包的实现 251
15.6 思考与练习 252
第16章 图书管理系统的分析与设计 256
16.1 系统需求 256
16.2 需求分析 257
16.2.1 识别参与者和用例 257
16.2.2 用例描述 259
16.3 静态结构模型 262
16.3.1 定义系统中的对象和类 262
16.3.2 定义用户界面类 266
16.3.3 类之间的关系 269
16.4 动态行为模型 271
16.4.1 建立顺序图 271
16.4.2 建立状态图 280
16.5 物理模型 281
第17章 嵌入式系统设计 283
17.1 嵌入式系统的技术特点 283
17.2 嵌入式系统的开发技术 285
17.2.1 嵌入式系统开发过程 285
17.2.2 软件移植 286
17.3 嵌入式系统的需求分析 286
17.3.1 MP3播放器的工作原理 287
17.3.2 外部事件 287
17.3.3 识别用例 289
17.3.4 使用顺序图描述用例 290
17.4 系统的静态模型 293
17.4.1 识别系统中的对象或类 293
17.4.2 绘制类图 294
17.5 系统的动态模型 298
17.5.1 状态图 298
17.5.2 协作图 300
17.6 体系结构 302
第18章 Web应用程序设计 303
18.1 Web应用程序的结构 303
18.1.1 瘦客户模式 304
18.1.2 胖客户模式 306
18.1.3 Web传输模式 307
18.1.4 程序结构模式对程序的影响 307
18.2 Web应用系统的UML建模方法 308
18.3 UML在学生成绩管理系统建模中的运用 311
18.3.1 系统需求分析 311
18.3.2 系统设计 311
18.4 系统详细设计 318
18.5 系统部署 320