第1章 建模基础知识 1
1.1 软件工程概述 1
1.1.1 软件工程的产生 1
1.1.2 软件工程的内容和基本原理 3
1.1.3 现代软件工程 4
1.2 建模概述 4
1.2.1 什么是模型 4
1.2.2 建模的原理 5
1.2.3 为什么要建模 6
1.2.4 建模的目标和原则 7
1.3 UML概述 7
1.3.1 UML的起源和发展 8
1.3.2 UML的主要特点 9
1.3.3 UML的应用领域 9
1.3.4 UML的模型种类 10
1.4 扩展练习 15
第2章 面向对象技术 16
2.1 面向对象的基本知识 16
2.1.1 类的含义 17
2.1.2 消息和事件 17
2.1.3 面向过程 18
2.2 面向对象的特征 19
2.2.1 抽象 19
2.2.2 封装 20
2.2.3 继承 21
2.2.4 多态 22
2.3 面向对象的开发 22
2.3.1 系统调查和需求分析 23
2.3.2 面向对象分析 23
2.3.3 面向对象设计 26
2.3.4 面向对象实现 27
2.4 基于UML的面向对象建模 29
2.5 扩展练习 29
第3章 建模工具Rational Rose 30
3.1 Rational Rose的基础知识 30
3.2 Rational Rose的安装 32
3.3 Rational Rose的使用 34
3.3.1 Rational Rose的启动界面 34
3.3.2 Rational Rose的主界面 36
3.3.3 Rational Rose的常用操作 41
3.4 Rational Rose的4种视图模型 50
3.4.1 用例视图 51
3.4.2 逻辑视图 55
3.4.3 部署视图 60
3.4.4 构件视图 61
3.5 利用Rational Rose生成代码 63
3.5.1 生成代码的方法 63
3.5.2 逆向工程 68
3.6 扩展练习 69
第4章 初识UML 71
4.1 UML的构成 71
4.1.1 视图 71
4.1.2 图 72
4.2 模型元素 74
4.2.1 事物 74
4.2.2 关系 78
4.3 通用机制 79
4.3.1 规格说明 79
4.3.2 UML的修饰 79
4.3.3 通用划分 80
4.4 UML中的扩展机制 80
4.4.1 体系结构 81
4.4.2 构造型 85
4.4.3 标记值 88
4.4.4 约束 89
4.5 对象约束语言 91
4.5.1 OCL概述 91
4.5.2 OCL的标准类型 92
4.5.3 OCL的表达式 97
4.5.4 OCL的应用 98
4.6 扩展练习 99
第5章 用例图 100
5.1 用例图的概念 100
5.1.1 参与者 100
5.1.2 用例 102
5.2 参与者之间的关系 103
5.3 用例的确定 104
5.3.1 识别用例 104
5.3.2 用例粒度 105
5.3.3 用例规约 105
5.3.4 用例间的关系类型 106
5.4 系统边界 109
5.5 绘制用例图 110
5.5.1 创建用例图 111
5.5.2 绘制参与者 112
5.5.3 绘制用例 114
5.5.4 绘制用例和参与者的关系 115
5.5.5 绘制用例间的关系 116
5.6 用例图建模实例——图书管理系统用例图 117
5.6.1 需求分析 117
5.6.2 识别参与者 117
5.6.3 识别用例 118
5.6.4 构建用例模型 119
5.7 扩展练习 120
第6章 类图和对象图 122
6.1 类图 122
6.1.1 类图的概念 122
6.1.2 类的组成 123
6.1.3 类的类型 128
6.1.4 类的构造型 128
6.2 类图中的关系 130
6.3 图到数据库的转换 134
6.3.1 基本映射转换 134
6.3.2 类到表的转换 136
6.3.3 关系的转换 139
6.3.4 完整性与约束验证 140
6.3.5 父表的约束 140
6.3.6 子表的约束 141
6.4 对象图 141
6.4.1 对象图的概念 141
6.4.2 对象图中的对象 142
6.4.3 对象图中的链 143
6.5 绘制类图 143
6.5.1 类图和类的绘制 143
6.5.2 类关系的绘制 152
6.6 绘制对象图 154
6.7 类图和对象图的建模实例——图书管理系统 155
6.7.1 确定系统中的类 155
6.7.2 确定类的属性和操作 156
6.7.3 确定类的关系 157
6.7.4 根据类图绘制对象图 158
6.8 扩展练习 158
第7章 包图 160
7.1 包图的概念 160
7.1.1 模型的组织结构 160
7.1.2 包和包图 161
7.2 包的构成 162
7.2.1 包的名称 163
7.2.2 包的元素 163
7.2.3 包的可见性 163
7.2.4 包的构造型 164
7.2.5 包的子系统 165
7.3 包图中的关系 166
7.3.1 依赖关系 166
7.3.2 泛化关系 168
7.4 包的嵌套 168
7.5 绘制包图 169
7.5.1 包的创建 169
7.5.2 包中类的添加 171
7.5.3 绘制包的关系 172
7.6 包图的建模实例——图书管理系统包图 172
7.6.1 确定包的分类 172
7.6.2 确定包的关系 173
7.7 扩展练习 173
第8章 序列图 174
8.1 序列图的概念 174
8.2 序列图的组成 175
8.2.1 对象 175
8.2.2 生命线 176
8.2.3 激活 177
8.2.4 消息 177
8.3 序列图的对象行为 179
8.3.1 创建与销毁对象 179
8.3.2 分支与从属流 180
8.4 绘制序列图 180
8.4.1 创建序列图 181
8.4.2 创建对象 182
8.4.3 绘制和设置消息 184
8.4.4 绘制生命线 186
8.4.5 销毁对象 188
8.5 序列图的建模实例——系统管理员添加图书序列图 188
8.5.1 需求分析 188
8.5.2 确定序列对象 189
8.5.3 完成序列建模 190
8.6 扩展练习 190
第9章 协作图 193
9.1 协作图的概念 193
9.2 协作图的组成 195
9.2.1 对象 195
9.2.2 消息 195
9.2.3 链 196
9.3 绘制协作图 196
9.3.1 协作图的创建 197
9.3.2 对象的创建 198
9.3.3 链和消息的创建 200
9.3.4 序列图和协作图的转换 201
9.4 协作图的建模实例——系统管理员添加图书协作图 201
9.4.1 创建协作图的步骤 202
9.4.2 需求分析 202
9.4.3 确定协作图元素 202
9.4.4 确定元素之间的关系 203
9.4.5 创建完整的协作图 203
9.5 扩展练习 204
第10章 活动图 206
10.1 活动图的概念 206
10.2 活动图的组成元素 208
10.2.1 动作状态 208
10.2.2 活动状态 208
10.2.3 组合状态 209
10.2.4 分支与合并 209
10.2.5 分叉与结合 210
10.2.6 泳道 211
10.2.7 对象流 211
10.3 活动图的绘制 213
10.3.1 创建活动图 214
10.3.2 绘制初始和终止状态 215
10.3.3 绘制动作状态 215
10.3.4 绘制活动状态 216
10.3.5 绘制泳道 218
10.3.6 绘制转换 219
10.3.7 绘制分支 220
10.4 活动图的建模实例——借阅者借书活动图 221
10.4.1 确定需求分析 221
10.4.2 确定用例路径 222
10.4.3 完成活动图创建 223
10.5 扩展练习 223
第11章 状态图 225
11.1 状态图的概念 225
11.1.1 状态机 225
11.1.2 状态图 226
11.2 状态图的组成 228
11.2.1 状态 228
11.2.2 转换 231
11.2.3 判定 234
11.2.4 同步 235
11.2.5 事件 236
11.2.6 初始状态和终止状态 237
11.3 状态图的绘制 237
11.3.1 创建状态图 238
11.3.2 绘制初始和终止状态 239
11.3.3 绘制状态 239
11.3.4 绘制转换 240
11.3.5 绘制事件 241
11.3.6 绘制动作 241
11.3.7 绘制监护条件 242
11.4 状态图的建模实例——图书状态图 243
11.4.1 确定状态间的实体 243
11.4.2 确定状态图中实体的状态 243
11.4.3 确定相关事件 244
11.5 扩展练习 244
第12章 构件图和部署图 246
12.1 构件图的概念 246
12.1.1 构件 246
12.1.2 接口 249
12.1.3 关系 250
12.2 构件图的绘制 251
12.2.1 创建构件图 251
12.2.2 创建构件 253
12.2.3 绘制构建关系 254
12.3 部署图的概念 254
12.4 部署图的组成 255
12.4.1 节点 255
12.4.2 连接 256
12.4.3 设备 256
12.5 部署图的绘制 257
12.5.1 绘制节点 257
12.5.2 设置节点 258
12.5.3 绘制连接 260
12.6 构件图和部署图的建模实例——图书管理系统 261
12.6.1 确定系统构件图 261
12.6.2 确定系统部署图 262
12.7 扩展练习 264
第13章 Rational统一过程 265
13.1 软件开发过程的概念 265
13.2 Rational统一过程的概念 266
13.3 Rational统一过程的结构 268
13.3.1 核心工作流 269
13.3.2 迭代开发模式 270
13.4 Rational统一过程的最佳实现 271
13.4.1 软件变更控制 271
13.4.2 软件质量验证 271
13.4.3 建立可视化的软件模型 272
13.4.4 基于构件的架构应用 272
13.4.5 需求管理 273
13.4.6 迭代式软件开发 274
13.5 Rational统一过程的开发模型 275
13.5.1 动态开发 275
13.5.2 静态开发 280
13.5.3 面向架构的过程 281
13.6 Rational统一过程的配置和实现 283
13.6.1 Rational统一过程的配置 284
13.6.2 Rational统一过程的实现 284
13.7 扩展练习 285
第14章 学籍管理系统 286
14.1 系统需求分析 286
14.2 系统建模 288
14.2.1 创建系统用例模型 289
14.2.2 创建系统静态模型 291
14.2.3 创建系统动态模型 294
14.2.4 创建系统部署模型 305
附录A 新闻发布系统 308
A.1 需求分析 308
A.2 系统建模 308
A.3 创建系统动态模型 310
A.4 创建系统部署模型 313
附录B 网上教学系统 315
B.1 需求分析 315
B.2 系统建模 315
B.3 创建系统动态模型 318
B.4 创建系统部署模型 320
附录C 网上购物商店 321
C.1 需求分析 321
C.2 系统建模 322
C.3 创建系统动态模型 324
C.4 创建系统部署模型 326
附录D 汽车租赁系统 328
D.1 需求分析 328
D.2 系统建模 328
D.3 创建系统动态模型 330
D.4 创建系统部署模型 333
附录E 超市管理系统 335
E.1 需求分析 335
E.2 系统建模 335
E.3 创建系统动态模型 338
E.4 创建系统部署模型 340