第1部分 UML和统一过程简介 1
第1章 信息系统简介 3
1.1 信息系统分类 4
1.2 传统的信息系统开发 6
1.2.1 需求阶段 6
1.2.2 分析阶段 6
1.2.3 设计阶段 6
1.2.6 报废 7
1.3 为什么没有计划阶段 7
1.2.5 维护阶段 7
1.2.4 实现阶段 7
1.4 为什么没有测试阶段 8
1.5 为什么没有文档编制阶段 9
1.6 系统分析和设计 9
1.7 维护 10
1.8 信息技术专业人员 11
关键术语 14
复习题 16
习题 16
参考书目 17
第2章 如何开发信息系统 18
2.1 理论上的信息系统开发 18
2.2 Winburg小型案例研究 19
2.3 Winburg小型案例研究的教训 21
2.4 Teal Tractor小型案例研究 23
2.5 迭代和增量 24
2.6 迭代:Newton-Raphson算法 27
2.7 再次探讨Winburg小型案例研究 28
2.8 迭代和增量的其他方面 30
2.9 管理迭代和增量 31
2.10 再论维护 32
关键术语 33
复习题 33
参考书目 34
习题 34
第3章 面向对象范型、UML和统一过程 36
3.1 传统程序与面向对象程序 37
3.2 对象和类 38
3.3 继承 41
3.4 泛化、聚合和关联 43
3.5 UML类建模的示例 45
3.6 信息隐藏 48
3.7 统一过程 49
3.8 统一过程中的迭代和增量 50
关键术语 51
参考书目 52
复习题 52
习题 52
第2部分 UML和统一过程 55
第4章 需求工作流Ⅰ 57
4.1 确定客户需要什么 57
4.2 需求工作流概述 58
4.3 理解领域 59
4.4 领域的初始理解:Osbert Oglesby案例研究 59
4.5 业务模型 60
4.5.1 采访 61
4.5.3 用例 62
4.5.2 其他技术 62
4.6 初始业务模型:Osbert Oglesby案例研究 64
4.7 初始需求 66
4.8 初始需求:Osbert Oglesby案例研究 67
4.9 继续执行需求工作流:Osbert Oglesby案例研究 68
4.10 尚无定论 74
关键术语 76
案例研究关键术语 76
复习题 77
习题 77
参考书目 78
5.2 初步理解领域:MSG基金会案例研究 79
第5章 需求工作流Ⅱ 79
5.1 MSG基金会案例研究 79
5.3 初始业务模型:MSG基金会案例研究 81
5.4 初始需求:MSG基金会案例研究 84
5.5 继续执行需求工作流:MSG基金会案例研究 85
5.6 修订需求:MSG基金会案例研究 86
5.7 细化修订过的需求:MSG基金会案例研究 96
关键术语 100
案例研究关键术语 100
复习题 100
系统分析和设计项目 101
习题 101
学期项目 102
第6章 面向对象分析工作流Ⅰ 103
6.1 分析工作流 104
6.2 提取实体类 105
6.3 初始功能性模型:Osbert Oglesby案例研究 105
6.4 初始类图:Osbert Oglesby案例研究 108
6.5 初始动态模型:Osbert Oglesby案例研究 113
6.6 提取边界类 115
6.7 提取控制类 116
6.8 改进用例 116
6.9.1 Buy a Masterpiece用例 119
6.9 用例实现 119
6.9.2 Buy a Masterwork用例 123
6.9.3 Buy Other Painting用例 125
6.9.4 余下的5个用例 127
6.10 增加类图 129
6.11 规范文档在哪里 130
关键术语 131
复习题 132
习题 132
参考书目 133
第7章 面向对象分析工作流Ⅱ 134
7.1 提取实体类:MSG基金会案例研究 135
7.2 初始功能性模型:MSG基金会案例研究 135
7.3 初始类图:MSG基金会案例研究 136
7.4 返回到需求工作流 137
7.5 初始动态模型:MSG基金会案例研究 139
7.6 修订实体类:MSG基金会案例研究 140
7.7 提取边界类:MSG基金会案例研究 142
7.8 提取控制类:MSG基金会案例研究 142
7.9 用例实现:MSG基金会案例研究 143
7.9.1 Estimate Funds Available for Week用例 143
7.9.2 Manage an Asset用例 148
7.9.3 Update Estimated Annual Operating Expenses用例 151
7.9.4 Produce a Report用例 152
7.10 增加类图 156
7.11 进一步了解参与者 159
7.12 关于用例的进一步说明 160
7.13 风险 160
7.13.1 快速原型法 160
7.13.2 方案和客户的需求 162
关键术语 162
学期项目 163
系统分析和设计项目 163
习题 163
复习题 163
参考书目 164
第8章 面向对象设计工作流 165
8.1 设计工作流 165
8.2 传统的与面向对象设计 167
8.3 属性的格式 167
8.3.1 Osbert Oglesby案例研究的属性的格式 168
8.3.2 MSG基金会案例研究的属性的格式 169
8.4 分配操作给类 171
8.4.1 职责驱动型设计 171
8.4.2 继承 172
8.5.1 职责驱动型设计 173
8.5 操作分配:Osbert Oglesby案例研究 173
8.5.2 继承 174
8.6 CRC卡 176
关键术语 178
复习题 179
习题 179
系统分析和设计项目 179
学期项目 180
参考书目 180
第9章 统一过程的工作流和阶段 181
9.1 统一过程的工作流 181
9.1.2 分析工作流 182
9.1.1 需求工作流 182
9.1.3 设计工作流 183
9.1.4 实现工作流 183
9.1.5 测试工作流 183
9.2 统一过程的阶段 183
9.2.1 初始阶段 184
9.2.2 细化阶段 187
9.2.3 构造阶段 187
9.2.4 移交阶段 188
9.3 为什么是一个二维模型 189
关键术语 191
习题 192
复习题 192
参考书目 193
学期项目 193
第10 章关于UML的更多知识 194
10.1 UML不是一种方法学 194
10.2 类图 195
10.2.1 聚合 196
10.2.2 多重性 197
10.2.3 复合 198
10.2.4 泛化 199
10.2.5 关联 199
10.5 构造型 200
10.3 便条 200
10.4 用例图 200
10.6 交互图 201
10.7 状态图 203
10.8 活动图 205
10.9 程序包图 206
10.10 组件图 207
10.11 部署图 207
10.12 UML图回顾 207
10.13 UML和迭代 208
关键术语 208
复习题 209
习题 210
参考书目 210
第3部分 系统分析和设计中的主题 211
第11章 CASE 213
11.1 CASE的分类 213
11.2 CASE的作用范围 216
11.3 版本 217
11.3.1 修订版 217
11.3.3 版本控制工具 218
11.3.2 变体 218
11.4 配置控制 221
11.5 生成工具 222
11.6 CASE环境 223
11.7 用于信息系统的环境 224
11.8 环境的潜在问题 225
11.9 CASE技术的生产率收益 226
11.10 CASE和美学 226
关键术语 234
复习题 235
习题 235
参考书目 236
学期项目 236
第12章 团队 237
12.1 团队组织 237
12.2 传统的首席程序员团队 238
12.3 现代的分级团队 240
12.4 组织团队的其他方式 241
12.4.1 同步和稳定团队 242
12.4.2 极限编程团队 243
关键术语 246
复习题 246
习题 246
参考书目 247
学期项目 247
第13章 测试 248
13.1 测试简介 248
13.2 质量问题 250
13.2.1 质量保证 250
13.2.2 质量保证术语 251
13.2.3 管理独立性 251
13.3 基于非执行的测试 252
13.3.1 检查原则 252
13.3.2 如何执行检查 254
13.4.1 基于执行的测试的相关性 255
13.4.2 基于执行的测试的原则 255
13.4 基于执行的测试 255
13.5 两种基本类型的测试用例 256
13.6 基于执行的测试应该测试什么 256
13.6.1 实用性 256
13.6.2 可靠性 257
13.6.3 稳健性 257
13.6.4 性能 257
13.6.5 正确性 257
13.7 谁应该执行基于执行的测试 258
13.8 何时停止测试 259
复习题 260
关键术语 260
习题 261
学期项目 262
参考书目 262
第14章 管理问题 263
14.1 成本-效益分析 263
14.2 风险分析 264
14.3 改进过程 265
14.3.1 能力成熟度模型 266
14.3.2 其他过程改进先导计划 268
14.4 指标 269
14.3.4 CMM和CASE 269
14.3.3 过程改进的成本和效益 269
14.5 CPM/PERT 271
14.6 编程语言的选择 273
14.7 重用 275
14.7.1 重用概念 275
14.7.2 重用的障碍 277
14.8 重用案例研究 279
14.8.1 Raytheon导弹系统分部 279
14.8.2 东芝软件工厂 279
14.8.3 NASA软件 280
14.8.5 惠普 281
14.8.4 GTE数据服务 281
14.8.6 欧洲航天局 282
14.9 可移植性 282
14.9.1 硬件不兼容性 283
14.9.2 操作系统不兼容性 283
14.9.3 编译器不兼容性 284
14.10 为什么需要可移植性 284
关键术语 286
复习题 287
习题 288
学期项目 289
参考书目 289
15.1 计划和信息系统生命周期 292
第15章 计划和估计 292
15.2 估计持续时间和成本 294
15.2.1 信息系统规模的度量 295
15.2.2 成本估计方法 297
15.2.3 COCOMO 299
15.2.4 COCOMOⅡ 300
15.2.5 跟踪持续时间和成本估计 300
15.3 项目管理计划的组成 300
15.4 项目管理计划框架 302
15.5 IEEE项目管理计划框架 304
15.6 项目管理计划:Osbert Oglesby案例研究 306
15.7 测试计划 309
15.8 培训需求 310
15.9 文档编制标准 311
15.10 用于计划和估计的CASE工具 311
15.11 测试项目管理计划 311
关键术语 312
复习题 313
习题 314
学期项目 314
参考书目 314
16.1 为什么维护是必要的 316
第16章 维护 316
16.2 开发和维护 317
16.3 对维护人员的要求 318
16.4 温带水果委员会小型案例研究 320
16.5 维护的管理 321
16.5.1 错误报告 321
16.5.2 授权对信息系统的更改 322
16.5.3 确保可维护性 323
16.5.4 反复维护的问题 323
16.6 维护与面向对象范型 324
16.8 逆向工程 325
16.7 维护技能与开发技能 325
16.9 维护期间的测试 326
16.10 用于维护的CASE工具 327
关键术语 327
复习题 328
习题 328
参考书目 328
第17章 用户界面设计 330
17.1 输入和输出设备 331
17.2 一致性 332
17.3 校正错误 332
17.4 比喻说法 333
17.5 布局和美感 336
17.6 动态界面 337
17.7.1 需求工作流 338
17 7 2 为用户界面构造原型 338
17.7.3 用户界面设计 338
17.7 统一过程与用户界面 338
17.7.4 迭代 340
关键术语 340
复习题 340
习题 341
学期项目 341
参考书目 341
18.1 Web的前奏 342
第18章 基于Web的信息系统简介 342
18.2 安全性问题 348
18.3 网络的分析和设计问题 349
18.4 基于Web的信息系统 350
关键术语 350
复习题 351
习题 351
学期项目 351
第19章 数据库管理系统简介 352
19.1 文件及其问题 352
19.2 表 356
19.3 传统的数据库系统 358
19.4 面向对象的数据库系统 359
19.5 数据库设计与统一过程 360
19.6 面向对象数据库管理系统的未来 360
关键术语 361
复习题 361
习题 361
学期项目 361
第20章 技术性课题 362
20.1 源代码和编译代码 362
20.2 模块化 363
20.3 多态性和动态绑定 366
20.4 多态性和动态绑定的例子 368
20.5 多态性和动态绑定的维护 370
关键术语 370
复习题 371
习题 371
参考书目 371
附录 372
附录A 学期项目:Chocoholics Anonymous 372
附录B 面向对象设计:Osbert Oglesby案例研究 374
附录C 面向对象设计:MSG基金会案例研究 380
附录D C++实现:Osbert Oglesby案例研究 385
附录E Java实现:MSG基金会案例研究 385