第一部分 面向对象系统开发基础 3
第1章 面向对象系统开发环境 3
1.1 什么是信息系统分析与设计 4
1.2 系统分析与设计:核心概念 5
1.3 系统 7
1.3.1 系统的定义及其组成部分 7
1.3.2 重要的系统概念 8
1.4 信息系统的分析与设计 10
1.4.1 第1步:项目管理与计划 11
1.4.2 第2步:系统分析 11
1.4.3 第3步:系统设计 11
1.4.4 第4步:系统实现与运转 12
1.5 信息系统和系统开发的类型 13
1.5.1 事务处理系统 14
1.5.2 管理信息系统 14
1.5.3 决策支持系统 15
1.6 分析员在系统开发中的角色 15
1.7 系统开发过程中的系统分析员 17
1.8 系统开发方法的演变 18
1.8.1 系统开发生命周期 19
1.8.2 结构化分析与设计 19
1.8.3 面向数据的方法 20
1.8.4 面向对象的方法 21
1.8.5 敏捷方法 21
1.9 为什么要使用面向对象的系统分析与设计 22
1.10 迭代和增量式开发 24
RUP的增量迭代式OOSAD方法 24
1.11 本书的面向对象系统分析与设计方法 27
1.12 本章小结 28
1.12.1 要点回顾 28
1.12.2 关键术语检查 29
1.12.3 复习问题 31
1.12.4 问题与习题 31
1.12.5 讨论问题 31
1.12.6 案例问题 32
第2章 面向对象导论 34
2.1 面向对象 35
2.1.1 什么是对象 35
2.1.2 类 36
2.1.3 属性 37
2.1.4 操作 37
2.1.5 封装 38
2.1.6 对象本体 38
2.1.7 泛化 38
2.1.8 多态性 39
2.1.9 接口 39
2.1.10 构件 40
2.1.11 包 40
2.1.12 关联 41
2.2 系统建模 42
2.2.1 什么是建模 42
2.2.2 什么是统一建模语言 43
2.3 本章小结 45
2.3.1 要点回顾 45
2.3.2 关键术语检查 45
2.3.3 复习问题 47
2.3.4 问题与习题 47
2.3.5 讨论问题 47
2.4 案例:百老汇娱乐公司——公司背景 47
第二部分 项目管理和计划 59
第3章 管理面向对象的信息系统项目 59
3.1 管理一个OOSAD项目 60
3.1.1 OOSAD项目的特征 63
3.1.2 启动项目 68
3.1.3 计划项目 70
3.1.4 执行项目 76
3.1.5 关闭项目 78
3.2 表示和安排项目计划进度 79
3.2.1 理解网络图的关键路径 81
3.2.2 定义OOSAD项目的工作分解结构 83
3.2.3 用计划评审技术计算预期持续时间 85
3.3 使用Microsoft Project为OOSAD项目构造甘特图和网络图 86
3.3.1 确立项目开始日期 87
3.3.2 输入任务和指定任务关系 87
3.3.3 选择一种进度安排方法审查项目报告 88
3.4 本章小结 90
3.4.1 要点回顾 90
3.4.2 关键术语检查 91
3.4.3 复习问题 92
3.4.4 问题与习题 92
3.4.5 讨论问题 95
3.4.6 案例问题 95
3.5 案例:百老汇娱乐公司——管理面向对象的信息系统项目 98
第4章 选择和计划项目 101
4.1 确认和选择OOSAD项目 102
4.1.1 确认和选择OOSAD项目的过程 103
4.1.2 交付产品和结果 105
4.2 启动、计划和执行OOSAD项目 106
4.2.1 启动、计划和执行OOSAD项目的过程 106
4.2.2 交付产品和结果 109
4.3 松谷家具公司的背景 109
4.3.1 WebStore的确认和选择 110
4.3.2 启动和计划WebStore 110
4.3.3 评估项目可行性 110
4.4 评估经济可行性 112
4.4.1 评估技术可行性 118
4.4.2 评估其他可行性关注 120
4.5 建立和评审基线项目计划 121
4.5.1 建立基线项目计划 121
4.5.2 基线项目计划的引言小节 122
4.5.3 评审基线项目计划 125
4.6 本章小结 129
4.6.1 要点回顾 129
4.6.2 关键术语检查 130
4.6.3 复习问题 131
4.6.4 问题与习题 131
4.6.5 讨论问题 132
4.6.6 案例问题 133
4.7 案例:百老汇娱乐公司——启动和计划一个基于Web的客户关系管理系统 134
第三部分 系统分析 141
第5章 确定面向对象系统的需求 141
5.1 进行需求确定 142
5.1.1 需求是什么 142
5.1.2 确定需求的过程 143
5.1.3 交付产品和结果 143
5.1.4 需求组织 144
5.2 确定需求的传统方法 144
5.2.1 访谈和倾听 145
5.2.2 直接观察用户 148
5.2.3 分析程序和其他文档 149
5.3 确定系统需求的现代方法 154
5.3.1 联合应用程序设计 154
5.3.2 在需求确定期间使用原型法 156
5.3.3 在需求确定期间使用敏捷方法 158
5.3.4 敏捷的以使用为中心的设计 158
5.3.5 来自极限编程的计划游戏 159
5.4 PVF WebStore:确定系统需求 160
确定松谷家具WebStore的系统需求 160
5.5 本章小结 163
5.5.1 要点回顾 163
5.5.2 关键术语检查 164
5.5.3 复习问题 164
5.5.4 问题与习题 164
5.5.5 讨论问题 165
5.5.6 案例问题 165
5.6 案例:百老汇娱乐公司——确定基于Web的客户关系管理系统的需求 167
第6章 组织系统需求:用例描述和图 172
6.1 用例 173
6.1.1 用例是什么 173
6.1.2 交付产品和结果 174
6.2 用例图 175
6.2.1 定义和符号 176
6.2.2 开发用例图:3个例子 178
6.2.3 为松谷家具的WebStore开发用例图 181
6.3 成文的用例 182
6.3.1 层次 182
6.3.2 模板的其余部分 183
6.3.3 为松谷家具的WebStore编写用例 185
6.3.4 开发用例 188
6.4 本章小结 190
6.4.1 要点回顾 190
6.4.2 关键术语检查 190
6.4.3 复习问题 191
6.4.4 问题与习题 191
6.4.5 讨论问题 192
6.4.6 案例问题 192
6.5 案例:百老汇娱乐公司——基于Web的客户关系管理系统的用例建模 194
第7章 概念数据建模 199
7.1 概念数据建模 200
概念数据建模的过程 201
7.2 收集概念数据建模的信息 202
7.3 UML数据建模导论 204
7.3.1 类 204
7.3.2 对象 204
7.3.3 属性 204
7.3.4 标识符 205
7.3.5 选择主键(标识符)的重要考虑 206
7.3.6 多值属性 206
7.3.7 组合属性 207
7.3.8 关系 207
7.3.9 关联 210
7.3.10 聚合关系 213
7.3.11 组合结构图 215
7.3.12 泛化关系 216
7.4 PVF WebStore的概念数据建模的例子 219
7.5 本章小结 220
7.5.1 要点回顾 220
7.5.2 关键术语检查 221
7.5.3 复习问题 222
7.5.4 问题与习题 222
7.5.5 讨论问题 223
7.5.6 案例问题 223
7.6 案例:百老汇娱乐公司——基于Web的客户关系管理系统的概念数据建模 226
第8章 对象关系建模 229
8.1 对象关系数据建模 230
8.2 关系数据模型 231
8.2.1 良构关系 232
8.2.2 规范化 232
8.3 关系数据模型的对象扩充 236
8.3.1 泛化/特化 237
8.3.2 多值属性 237
8.3.3 支持聚合的机制 238
8.3.4 对象标识符 238
8.3.5 引用关系 238
8.3.6 在对象关系中并入方法 238
8.3.7 更丰富的类型集合 239
8.4 将概念数据模型转化为对象关系 239
8.4.1 转化类 240
8.4.2 转化关系 240
8.4.3 合并对象关系 243
8.5 PVF WebStore的逻辑设计 245
8.6 本章小结 245
8.6.1 要点回顾 245
8.6.2 关键术语检查 246
8.6.3 复习问题 247
8.6.4 问题与习题 247
8.6.5 讨论问题 249
8.6.6 案例问题 250
8.7 案例:百老汇娱乐公司——为客户关系管理系统设计对象关系数据模型 250
第9章 分析类 252
9.1 分析类 253
9.2 类型化类 254
9.2.1 实体类 254
9.2.2 边界类 255
9.2.3 控制类 255
9.3 绘制顺序图 256
9.3.1 “订货”用例的顺序图 257
9.3.2 “预定”用例的顺序图 260
9.4 顺序图的健壮性分析 262
9.5 绘制通信图 263
9.6 分析类图 264
9.7 活动图 266
9.7.1 何时使用活动图 267
9.7.2 何时不用活动图 268
9.8 状态(或状态机)图 268
何时使用状态图 269
9.9 对分析类中的业务规则建模 270
9.9.1 约束 270
9.9.2 计算 271
9.9.3 值推断 271
9.9.4 动作激活器 272
9.9.5 对象约束语言 273
9.10 本章小结 275
9.10.1 要点回顾 275
9.10.2 关键术语检查 276
9.10.3 复习问题 277
9.10.4 问题与习题 278
9.10.5 讨论问题 280
9.10.6 案例问题 281
9.11 案例:百老汇娱乐公司为客户关系管理系统设计分析类 282
第10章 选择最佳的设计策略 285
10.1 选择最佳的可选设计策略 286
10.2 选择最佳设计策略的过程 287
交付产品和结果 287
10.3 生成可选设计策略 288
10.4 生成可选方案时考虑的问题 289
10.4.1 外包 289
10.4.2 软件的来源 290
10.4.3 选择成品软件 294
10.4.4 硬件和系统软件问题 296
10.4.5 实现问题 297
10.5 为松谷家具的WebStore选择最佳设计策略 297
10.5.1 选择最可能的方案 298
10.5.2 选定方案的一个描述 299
10.6 更新基线项目计划 301
10.7 PVF的WebStore前后的基线项目计划 303
10.8 本章小结 306
10.8.1 要点回顾 306
10.8.2 关键术语检查 306
10.8.3 复习问题 307
10.8.4 问题与习题 307
10.8.5 讨论问题 308
10.8.6 案例问题 309
10.9 案例:百老汇娱乐公司——为基于Web的客户关系管理系统制定设计策略 310
第四部分 系统设计 317
第11章 物理数据库设计 317
11.1 物理数据库设计 318
11.2 结构化查询语言 320
11.3 设计域 323
11.3.1 选择数据类型 325
11.3.2 控制数据完整性 326
11.4 设计物理表和反规范化 327
11.5 文件组织 330
11.5.1 辅助存储器概念 332
11.5.2 散列文件组织 333
11.5.3 索引文件组织 334
11.6 对象关系特征的设计 340
11.6.1 泛化 340
11.6.2 聚合 340
11.6.3 多值属性 341
11.6.4 对象标识符 342
11.6.5 引用关系 343
11.7 PVF WebStore的物理数据库设计 344
11.8 本章小结 346
11.8.1 要点回顾 346
11.8.2 关键术语检查 347
11.8.3 复习问题 348
11.8.4 问题与习题 348
11.8.5 讨论问题 350
11.9 案例:百老汇娱乐公司——为客户关系管理设计物理数据库 350
第12章 设计元素 353
12.1 设计元素 355
12.2 设计体系结构 355
12.2.1 分层体系结构 356
12.2.2 两层体系结构 356
12.2.3 三层体系结构 357
12.2.4 N层体系结构 358
12.3 分析类到设计元素的映射 359
12.4 构件 360
12.5 构件标准 362
12.5.1 COM、COM+和分布式COM 362
12.5.2 公用对象请求代理体系结构 362
12.5.3 企业Java Beans 363
12.5.4 COM、CORBA和EJB:对比和问题 366
12.5.5 XML/SOAP:一种集成解决方案 366
12.6 框架 369
12.6.1 .NET框架和Visual Studio.NET 369
12.6.2 Java 2企业版 371
12.7 浏览器中的逻辑:脚本语言 372
12.8 数据库端的封装 373
12.9 包 375
12.10 设计类图 376
12.10.1 验证责任分配 376
12.10.2 可见性 377
12.10.3 属性类型 379
12.11 PVF例子 380
12.12 本章小结 381
12.12.1 要点回顾 381
12.12.2 关键术语检查 382
12.12.3 复习问题 385
12.12.4 问题与习题 386
12.12.5 讨论问题 386
12.13 案例:百老汇娱乐公司——为客户关系管理开发设计元素 387
第13章 设计人机界面 389
13.1 设计表单和报表 390
13.1.1 设计表单和报表的过程 391
13.1.2 交付产品和结果 393
13.2 格式化表单和报表 395
13.2.1 一般的格式化指导原则 395
13.2.2 突出显示信息 396
13.2.3 显示文本 398
13.2.4 设计表格和列表 398
13.2.5 纸质报表与电子报表 401
13.2.6 设计Web布局 402
13.3 设计界面和对话 402
13.3.1 设计界面和对话的过程 403
13.3.2 交付产品和结果 403
13.4 设计界面 403
13.4.1 设计布局 404
13.4.2 组织数据录入 406
13.4.3 控制数据输入 407
13.4.4 提供反馈 409
13.4.5 错误和警告信息 410
13.4.6 提供帮助 410
13.4.7 设计Web界面 413
13.5 设计对话 414
13.5.1 设计对话序列 415
13.5.2 构造原型和评估可用性 416
13.6 本章小结 417
13.6.1 要点回顾 417
13.6.2 关键术语检查 418
13.6.3 复习问题 419
13.6.4 问题与习题 419
13.6.5 讨论问题 420
13.6.6 案例问题 421
13.7 案例:百老汇娱乐公司——为客户关系管理系统设计人机界面 422
第五部分 系统实现与运转 431
第14章 OOSAD实现与运转 431
14.1 系统实现与运转 433
14.1.1 程序编码、测试和安装的过程 433
14.1.2 程序开发、测试和安装的交付产品和结果 433
14.1.3 文档化系统、培训用户和支持用户的过程 434
14.1.4 文档化系统、培训用户和支持用户的交付产品和结果 435
14.1.5 维护信息系统的过程 435
14.1.6 维护信息系统的交付产品和结果 436
14.2 编码 437
14.2.1 结合编码与测试 437
14.2.2 复用 438
14.2.3 对象框架 440
14.3 软件应用测试 440
14.3.1 7种不同类型的测试 440
14.3.2 测试过程 442
14.3.3 用户的验收测试 443
14.4 安装 444
计划安装 446
14.5 文档化系统 447
14.5.1 用户文档 447
14.5.2 准备用户文档 449
14.6 培训和支持用户 449
14.6.1 培训信息系统用户 450
14.6.2 支持信息系统用户 451
14.7 为什么实现有时会失败 452
14.8 项目关闭 454
14.9 进行系统维护 454
14.9.1 维护的种类 455
14.9.2 维护的成本 455
14.9.3 度量维护有效性 456
14.9.4 控制维护请求 457
14.9.5 CASE和自动化开发工具在维护中的作用 458
14.10 松谷家具的WebStore的系统实现与运转 459
14.10.1 为WebStore开发测试用例 459
14.10.2 缺陷跟踪和系统演化 460
14.10.3 WebStore的α测试和β测试 460
14.10.4 WebStore的安装 461
14.11 本章小结 461
14.11.1 要点回顾 461
14.11.2 关键术语检查 462
14.11.3 复习问题 464
14.11.4 问题与习题 464
14.11.5 讨论问题 465
14.11.6 案例问题 465
14.12 案例:百老汇娱乐公司——为客户关系管理系统设计一个测试计划 466
缩略术语表 471
术语表 474
索引 487