《UML 2.2面向对象分析与设计》是清华大学出版社出版的图书,作者是(英)班尼特(Bennett, S. ) / (英)麦克罗布(McRobb, S. ) / (英)法默(Farmer, R. )。
基本介绍
- 作者:(英)班尼特(Bennett,S.)/(英)麦克罗布(McRobb,S.)/(英)法默(Farmer,R.)
- 译者:李杨
- ISBN:9787302304241
- 页数:548
- 定价:69.80元
- 出版社:清华大学出版社
- 出版时间:2013-1
- 副标题:UML 2.2面向对象分析与设计
- 原作名:Object-Oriented Systems
内容介绍
本书对前一版进行了修订,反映了信息系统开发中最前沿的方法。Bennett、McRobb和Farmer撰写的这本书是面向对象分析与设计领域的经典图书,是本科生和研究生“系统分析和设计”课程重要的教学用书。
本书为使用UML 2.2中的主要技术进行面向对象分析与设计给出了清晰实用的结构,遵循叠代和增量型方法(它们基于业内标準的统一过程),将系统分析和设计置于整个系统生命周期的背景中。本书分为4部分:第1部分为信息系统的分析和设计以及面向对象提供了背景;第2部分关注需求获取和系统分析活动以及UML的基本标记法;第3部分涉及系统架构和设计活动,以及对象设计的UML标记法;第4部分介绍系统的实现,如何组织系统生命周期,以及如何开发可重用
作者介绍
作者介绍:
本书的作者,Simon Bennett、Steve McRobb和Ray Farmer自从1999年本书第1版付梓的时候就一起工作。他们的合作汇集了各自在信息系统学科丰富的教学研究经验。他们丰富的业界经验也保证了在实际组织中UML知识实践套用的正确性。
Simon Bennett是De Montfort大学技术学院的培训顾问,他在这里提供UML、分析和设计,以及系统架构方面的培训。他是计算机智慧型中心的準会员。之前作为企业架构师供职于Celesio AG,作为ICT主管供职于Leicester议会的复兴和文化事务部,并且在1999年之前作为首席讲师任教于De Montfort大学。Simon是Schaum’s Outline of UML(2nd edition)一书的合着者,该书也由McGraw-Hill出版。
Steve McRobb是De Montfort大学信息学院的首席讲师。他教授面向对象系统分析与设计课程十几年,目前是“计算、信息技术和信息系统管理”研究生课程的课程负责人。他最近的研究範围主要集中在线上隐私以及ICT对权利关係的影响方面。Steve是Yorkshire Dales国家公园的前任首席行政主任。
Ray Farmer是Coventry大学工程和计算学院的副院长。他的研究兴趣包括信息系统分析与设计、面向服务架构以及工程和计算教育方面的教学研究。他定期作为英国和国际上面向对象分析与设计方面的谘询师。Ray之前在De Montfort大学的信息系统学院担任不同的职位。
作品目录
案例A1 Agate公司案例研究——
简介 1
A1.1 Agate公司介绍 1
A1.2 现有计算机系统 2
A1.3 使用当前系统的业务活动 2
A1.4 需求总结 3
案例B1 FoodCo公司案例研究——
简介 5
B1.1 FoodCo公司介绍 5
B1.2 现如今的FoodCo公司 8
B1.3 建议 11
第1章 信息系统 13
1.1 介绍 13
1.2 信息系统的历史 14
1.3 信息系统现状 16
1.4 何为系统 17
1.4.1 系统思考 18
1.4.2 系统思考的益处 21
1.4.3 信息系统发展过程中
的系统 26
1.5 信息与信息系统 27
1.5.1 信息 27
1.5.2 组织中信息系统的工作 27
1.5.3 信息技术 29
1.6 成功战略 30
1.6.1 确认商业战略 30
1.6.2 信息系统的贡献 31
1.6.3 信息系统和信息技术战略 31
1.7 本章小结 33
问题回顾 33
案例研究、练习和项目 33
拓展阅读 34
第2章 信息系统开发面临的挑战 35
2.1 介绍 35
2.2 挑战 36
2.2.1 终端用户的视角 37
2.2.2 客户的视角 39
2.2.3 开发者的视角 41
2.3 出错的原因 42
2.3.1 质量问题 43
2.3.2 生产率问题 45
2.4 道德层面 46
2.4.1 项目内的道德问题 47
2.4.2 更为广泛的道德问题 48
2.5 失败的代价 49
2.6 本章小结 50
问题回顾 50
案例研究、练习和项目 50
拓展阅读 51
第3章 面对挑战 52
3.1 介绍 52
3.2 问题回响 54
3.2.1 质量问题 54
3.2.2 安装和运行问题 55
3.2.3 生产率问题 56
3.3 项目的生命周期 57
3.3.1 瀑布型生命周期模型 58
3.3.2 原型 60
3.3.3 叠代和增量型开发 62
3.4 方法论 62
3.4.1 统一软体开发过程 63
3.4.2 敏捷方法 64
3.5 信息系统开发管理 65
3.6 用户参与 67
3.7 软体开发工具 68
3.7.1 模型和技术支持 68
3.7.2 软体构建 70
3.7.3 使用软体开发工具的益处
和困难 71
3.8 本章小结 71
问题回顾 71
案例研究、练习和项目 72
拓展阅读 72
第4章 面向对象 73
4.1 介绍 73
4.2 基本概念 73
4.2.1 对象 74
4.2.2 类和对象 75
4.2.3 类成员 76
4.2.4 一般化和特殊化 78
4.2.5 封装、信息隐藏和讯息
传递 82
4.2.6 多态 84
4.2.7 对象状态 85
4.3 面向对象的起源 86
4.4 当前的面向对象语言 88
4.5 本章小结 89
问题回顾 90
案例研究、练习和项目 90
拓展阅读 91
第5章 建模的概念 92
5.1 介绍 92
5.2 模型和图 92
5.2.1 模型的含义 93
5.2.2 图 94
5.2.3 模型和图的区别 96
5.2.4 UML中的模型 97
5.2.5 开发模型 98
5.3 绘製活动图 99
5.3.1 活动图的目的 99
5.3.2 活动图的标记法 100
5.4 开发过程 103
5.4.1 基本原则 104
5.4.2 主要活动 105
5.5 本章小结 109
问题回顾 109
案例研究、练习和项目 110
拓展阅读 110
第6章 需求获取 111
6.1 介绍 111
6.2 用户需求 111
6.2.1 当前系统 112
6.2.2 新的需求 113
6.3 事实发现技术 114
6.3.1 背景阅读 114
6.3.2 访谈 115
6.3.3 观察 117
6.3.4 文档抽样 118
6.3.5 调查问卷 119
6.3.6 记住上述技术 121
6.3.7 其他技术 122
6.4 用户参与 122
6.5 文档需求 123
6.6 用例 125
6.6.1 目的 125
6.6.2 标记法 126
6.6.3 使用原型支持用例 130
6.6.4 CASE工具支持 131
6.6.5 使用用例图的业务
模型 131
6.6.6 测试和用例 132
6.7 需求获取和建模 132
6.8 本章小结 133
问题回顾 135
案例研究、练习和项目 135
拓展阅读 136
案例A2 Agate公司案例研究——
需求模型 138
A2.1 介绍 138
A2.2 需求列表 138
A2.3 执行者和用例 139
A2.4 术语表 144
A2.5 最初架构 144
A2.6 需求建模活动 145
第7章 需求分析 147
7.1 介绍 147
7.2 分析模型 148
7.2.1 分析模型和其他模型
的区别 148
7.2.2 好的分析 149
7.3 分析类图:概念和标记法 150
7.3.1 类和对象 150
7.3.2 特性 151
7.3.3 特性和状态 152
7.3.4 实例之间的连结 153
7.3.5 类之间的关联 154
7.3.6 关联和状态 154
7.3.7 多重性 155
7.3.8 操作 156
7.3.9 操作和状态 158
7.3.10 分析类图的稳定性 158
7.4 用例实现 159
7.5 绘製类图 161
7.5.1 健壮性分析 161
7.5.2 分析类stereotype 161
7.5.3 确认类 164
7.5.4 从通信图到类图 168
7.5.5 查找对象和类的其他
方法 169
7.5.6 添加和定位特性 173
7.5.7 添加关联 175
7.5.8 确定多重性 175
7.5.9 寻找操作 175
7.5.10 初始操作分配 175
7.6 CRC卡 176
7.7 整合分析类图 178
7.8 本章小结 179
问题回顾 179
案例研究、练习和项目 180
拓展阅读 183
案例A3 Agate公司案例研究——
需求分析 184
A3.1 介绍 184
A3.2 用例实现 184
A3.3 整合分析类图 189
A3.4 需求分析活动 189
第8章 完善需求模型 191
8.1 介绍 191
8.2 软体和规範重用 192
8.2.1 为何重用 192
8.2.2 难以重用的原因 192
8.2.3 面向对象对重用的贡献 193
8.3 进一步向结构中添加内容 195
8.3.1 寻找和建模一般化 195
8.3.2 寻找和建模组合 199
8.3.3 组合或聚集与一般化
的合併 200
8.3.4 组织分析模型——包
和依赖关係 201
8.4 重用软体组件 202
8.4.1 组件的UML标记法 203
8.4.2 基于组件的开发 204
8.4.3 组件建模实例 205
8.5 软体开发模式 207
8.5.1 模式的起源 207
8.5.2 什幺是软体模式 208
8.5.3 分析模式 209
8.6 本章小结 211
问题回顾 211
案例研究、练习和项目 211
拓展阅读 212
第9章 对象互动 213
9.1 介绍 213
9.2 对象互动和协作 214
9.3 互动顺序图 215
9.3.1 基本概念和标记法 216
9.3.2 管理顺序图 223
9.3.3 分支 226
9.3.4 延续 227
9.3.5 异步讯息 227
9.3.6 时间约束 228
9.3.7 实时系统和并发的建模 229
9.3.8 準备顺序图的指导原则 230
9.4 通信图 230
9.4.1 基本概念和标记法 231
9.4.2 通信图中的信息标籤 232
9.5 互动概览图 234
9.6 时序图 236
9.7 模型一致性 237
9.8 本章小结 238
问题回顾 238
案例研究、练习和项目 238
拓展阅读 239
第10章 规範对象操作 240
10.1 介绍 240
10.2 操作规範的角色 241
10.3 契约 242
10.4 描述操作逻辑 243
10.4.1 非算法型方法 243
10.4.2 算法型方法 246
10.5 对象约束语言 251
10.6 创建操作规範 253
10.7 本章小结 255
问题回顾 255
案例研究、练习和项目 256
拓展阅读 256
第11章 规範控制 257
11.1 介绍 257
11.2 状态和事件 258
11.3 基本标记法 259
11.4 深度标记法 264
11.4.1 组合状态 264
11.4.2 并髮状态 265
11.4.3 进入和退出伪状态 267
11.4.4 交叉和选择伪状态 268
11.4.5 历史伪状态 268
11.4.6 状态机的特殊化 269
11.5 準备状态机 269
11.5.1 行为型方法 270
11.5.2 生命周期方法 273
11.6 协定型和行为型状态机 273
11.7 一致性检查 274
11.8 质量準则 274
11.9 本章小结 275
问题回顾 275
案例研究、练习和项目 276
拓展阅读 276
案例A4 Agate公司案例研究——
深入分析 277
A4.1 介绍 277
A4.2 顺序图 277
A4.3 状态机 278
A4.4 操作规範 280
A4.5 对类图的进一步修订 281
A4.6 需求分析的深入活动 283
第12章 设计 285
12.1 介绍 285
12.2 设计和分析有何不同 285
12.2.1 设计 286
12.2.2 叠代型生命周期中
的设计 287
12.3 逻辑设计和物理设计 287
12.4 系统设计和详细设计 289
12.4.1 系统设计 290
12.4.2 详细设计 290
12.5 设计的质量和目标 290
12.5.1 目标和约束 291
12.5.2 设计折中 294
12.5.3 设计中的可衡量目标 295
12.6 本章小结 296
问题回顾 296
案例研究、练习和项目 297
拓展阅读 297
第13章 系统架构 298
13.1 介绍 298
13.2 架构的含义 299
13.3 生成架构模型的原因 301
13.4 对系统架构的影响 302
13.4.1 现有系统 303
13.4.2 企业级架构 304
13.4.3 技术参考架构 305
13.5 架构风格 305
13.5.1 子系统 306
13.5.2 分层和分区 307
13.5.3 MVC架构 311
13.5.4 分散式系统架构 314
13.5.5 架构和开发的组织
结构 316
13.6 并发 317
13.7 处理器分配 318
13.8 系统设计标準 319
13.8.1 资料库设计 319
13.8.2 用户界面设计标準 319
13.8.3 构建準则 319
13.9 Agate软体架构 320
13.10 本章小结 321
问题回顾 322
案例研究、练习和项目 322
拓展阅读 322
第14章 详细设计 324
14.1 介绍 324
14.2 在面向对象的详细设计中
添加的内容 325
14.3 特性和操作规範 325
14.3.1 特性的数据类型 325
14.3.2 派生特性 326
14.3.3 主操作 327
14.3.4 操作签名 328
14.3.5 可见性 329
14.4 将特性和操作归入类中 331
14.4.1 分配职责 331
14.4.2 接口 332
14.4.3 耦合和内聚 333
14.4.4 Liskov替换原则 336
14.5 设计关联 336
14.5.1 一对一关联 337
14.5.2 一对多关联 338
14.5.3 多对多关联 340
14.5.4 保持类最小 341
14.6 完整性约束 342
14.6.1 引用完整性 342
14.6.2 依赖约束 343
14.6.3 域完整性 344
14.7 设计操作算法 344
14.8 本章小结 345
问题回顾 345
案例研究、练习和项目 346
拓展阅读 346
第15章 设计模式 347
15.1 介绍 347
15.2 软体开发模式 348
15.2.1 框架 348
15.2.2 模式目录和语言 348
15.2.3 软体开发原则和模式 348
15.2.4 模式和非功能性需求 349
15.3 文档模式——模式模板 349
15.3.1 模板内容 349
15.3.2 模板的其他方面 350
15.4 设计模式 350
15.4.1 设计模式的类型 350
15.4.2 创建型模式 351
15.4.3 结构型模式 355
15.4.4 行为型模式 359
15.5 如何使用设计模式 363
15.6 使用模式的优缺点 364
15.7 本章小结 365
问题回顾 365
案例研究、练习和项目 365
拓展阅读 365
第16章 人机互动 367
16.1 介绍 367
16.2 用户界面 368
16.2.1 什幺是用户界面 368
16.2.2 对话隐喻 368
16.2.3 直接操纵隐喻 370
16.2.4 良好对话的特徵 372
16.2.5 风格指导 374
16.3 用户界面设计方法 375
16.3.1 非正式方法和正式
方法 375
16.3.2 实现可使用性 381
16.4 标準和合法需求 382
16.5 本章小结 383
问题回顾 384
案例研究、练习和项目 384
拓展阅读 384
第17章 设计边界类 386
17.1 介绍 386
17.2 表示层结构 387
17.3 为用户界面建立原型 388
17.4 设计类 390
17.5 使用顺序图设计互动 393
17.6 类图回顾 399
17.7 用户界面设计模式 400
17.8 使用状态机建模界面 402
17.9 本章小结 408
问题回顾 409
案例研究、练习和项目 409
拓展阅读 409
第18章 数据管理设计 411
18.1 介绍 411
18.2 持久性 412
18.2.1 持久性需求 412
18.2.2 存储机制概述 412
18.2.3 持久性架构 413
18.3 档案系统 415
18.3.1 档案和记录结构 415
18.3.2 档案的组织方式 416
18.3.3 档案访问 416
18.3.4 档案类型 419
18.3.5 档案使用示例 420
18.4 资料库管理系统 421
18.4.1 档案和资料库 421
18.4.2 资料库的类型 423
18.5 设计关係型资料库管理
系统 425
18.5.1 关係型资料库 425
18.5.2 数据建模和规範化 426
18.5.3 将类映射为表 430
18.6 设计对象资料库管理系统 432
18.7 分散式资料库 436
18.8 数据管理类设计 438
18.8.1 分层结构 438
18.8.2 PersistentObject超类 439
18.8.3 资料库代管者框架 441
18.8.4 使用数据管理产品
或框架 445
18.9 本章小结 447
问题回顾 447
案例研究、练习和项目 447
拓展阅读 448
案例A5 Agate公司案例——简介 449
A5.1 介绍 449
A5.2 架构 449
A5.3 用例示例 450
A5.4 类图 451
A5.5 顺序图 455
A5.6 资料库设计 458
A5.7 状态机 459
A5.8 设计活动 460
第19章 实现 461
19.1 介绍 461
19.2 软体实现 462
19.2.1 软体工具 462
19.2.2 编程和文档标準 464
19.3 组件图 465
19.4 部署图 467
19.5 软体测试 469
19.5.1 由谁执行测试 469
19.5.2 测试内容 470
19.5.3 测试文档 472
19.6 数据转换 473
19.7 用户文档和培训 474
19.7.1 用户手册 474
19.7.2 用户培训 474
19.8 实现策略 475
19.9 评审和维护 476
19.9.1 下一步骤 476
19.9.2 评审过程和评估报告 477
19.9.3 维护活动 478
19.10 本章小结 480
问题回顾 480
案例研究、练习和项目 481
拓展阅读 481
第20章 软体重用 482
20.1 介绍 482
20.2 为什幺要进行重用 482
20.2.1 项目的选择 484
20.2.2 组织的结构 485
20.2.3 重用合适的单元 486
20.2.4 组件标準 487
20.3 为重用规划策略 489
20.3.1 选择视角法 489
20.3.2 RSEB 490
20.4 商用组件 491
20.5 案例研究示例 493
20.6 Web服务 499
20.7 本章小结 501
问题回顾 501
案例研究、练习和项目 501
拓展阅读 502
第21章 软体开发过程 503
21.1 介绍 503
21.2 过程、方法和方法论 504
21.2.1 方法论 504
21.2.2 为何使用方法论 506
21.3 统一软体开发过程 506
21.4 动态系统开发方法 510
21.4.1 Atern生命周期 511
21.4.2 DSDM Atern技术 513
21.4.3 DSDM中的项目选择 514
21.5 Scrum 514
21.6 极限编程 516
21.7 选择方法论时的考虑 517
21.8 硬性与软性方法论 519
21.9 本章小结 521
问题回顾 521
案例研究、练习和项目 522
拓展阅读 522
附录A 标记法汇总 523
附录B 部分解决方案和答案指导 531
术语表 540
简介 1
A1.1 Agate公司介绍 1
A1.2 现有计算机系统 2
A1.3 使用当前系统的业务活动 2
A1.4 需求总结 3
案例B1 FoodCo公司案例研究——
简介 5
B1.1 FoodCo公司介绍 5
B1.2 现如今的FoodCo公司 8
B1.3 建议 11
第1章 信息系统 13
1.1 介绍 13
1.2 信息系统的历史 14
1.3 信息系统现状 16
1.4 何为系统 17
1.4.1 系统思考 18
1.4.2 系统思考的益处 21
1.4.3 信息系统发展过程中
的系统 26
1.5 信息与信息系统 27
1.5.1 信息 27
1.5.2 组织中信息系统的工作 27
1.5.3 信息技术 29
1.6 成功战略 30
1.6.1 确认商业战略 30
1.6.2 信息系统的贡献 31
1.6.3 信息系统和信息技术战略 31
1.7 本章小结 33
问题回顾 33
案例研究、练习和项目 33
拓展阅读 34
第2章 信息系统开发面临的挑战 35
2.1 介绍 35
2.2 挑战 36
2.2.1 终端用户的视角 37
2.2.2 客户的视角 39
2.2.3 开发者的视角 41
2.3 出错的原因 42
2.3.1 质量问题 43
2.3.2 生产率问题 45
2.4 道德层面 46
2.4.1 项目内的道德问题 47
2.4.2 更为广泛的道德问题 48
2.5 失败的代价 49
2.6 本章小结 50
问题回顾 50
案例研究、练习和项目 50
拓展阅读 51
第3章 面对挑战 52
3.1 介绍 52
3.2 问题回响 54
3.2.1 质量问题 54
3.2.2 安装和运行问题 55
3.2.3 生产率问题 56
3.3 项目的生命周期 57
3.3.1 瀑布型生命周期模型 58
3.3.2 原型 60
3.3.3 叠代和增量型开发 62
3.4 方法论 62
3.4.1 统一软体开发过程 63
3.4.2 敏捷方法 64
3.5 信息系统开发管理 65
3.6 用户参与 67
3.7 软体开发工具 68
3.7.1 模型和技术支持 68
3.7.2 软体构建 70
3.7.3 使用软体开发工具的益处
和困难 71
3.8 本章小结 71
问题回顾 71
案例研究、练习和项目 72
拓展阅读 72
第4章 面向对象 73
4.1 介绍 73
4.2 基本概念 73
4.2.1 对象 74
4.2.2 类和对象 75
4.2.3 类成员 76
4.2.4 一般化和特殊化 78
4.2.5 封装、信息隐藏和讯息
传递 82
4.2.6 多态 84
4.2.7 对象状态 85
4.3 面向对象的起源 86
4.4 当前的面向对象语言 88
4.5 本章小结 89
问题回顾 90
案例研究、练习和项目 90
拓展阅读 91
第5章 建模的概念 92
5.1 介绍 92
5.2 模型和图 92
5.2.1 模型的含义 93
5.2.2 图 94
5.2.3 模型和图的区别 96
5.2.4 UML中的模型 97
5.2.5 开发模型 98
5.3 绘製活动图 99
5.3.1 活动图的目的 99
5.3.2 活动图的标记法 100
5.4 开发过程 103
5.4.1 基本原则 104
5.4.2 主要活动 105
5.5 本章小结 109
问题回顾 109
案例研究、练习和项目 110
拓展阅读 110
第6章 需求获取 111
6.1 介绍 111
6.2 用户需求 111
6.2.1 当前系统 112
6.2.2 新的需求 113
6.3 事实发现技术 114
6.3.1 背景阅读 114
6.3.2 访谈 115
6.3.3 观察 117
6.3.4 文档抽样 118
6.3.5 调查问卷 119
6.3.6 记住上述技术 121
6.3.7 其他技术 122
6.4 用户参与 122
6.5 文档需求 123
6.6 用例 125
6.6.1 目的 125
6.6.2 标记法 126
6.6.3 使用原型支持用例 130
6.6.4 CASE工具支持 131
6.6.5 使用用例图的业务
模型 131
6.6.6 测试和用例 132
6.7 需求获取和建模 132
6.8 本章小结 133
问题回顾 135
案例研究、练习和项目 135
拓展阅读 136
案例A2 Agate公司案例研究——
需求模型 138
A2.1 介绍 138
A2.2 需求列表 138
A2.3 执行者和用例 139
A2.4 术语表 144
A2.5 最初架构 144
A2.6 需求建模活动 145
第7章 需求分析 147
7.1 介绍 147
7.2 分析模型 148
7.2.1 分析模型和其他模型
的区别 148
7.2.2 好的分析 149
7.3 分析类图:概念和标记法 150
7.3.1 类和对象 150
7.3.2 特性 151
7.3.3 特性和状态 152
7.3.4 实例之间的连结 153
7.3.5 类之间的关联 154
7.3.6 关联和状态 154
7.3.7 多重性 155
7.3.8 操作 156
7.3.9 操作和状态 158
7.3.10 分析类图的稳定性 158
7.4 用例实现 159
7.5 绘製类图 161
7.5.1 健壮性分析 161
7.5.2 分析类stereotype 161
7.5.3 确认类 164
7.5.4 从通信图到类图 168
7.5.5 查找对象和类的其他
方法 169
7.5.6 添加和定位特性 173
7.5.7 添加关联 175
7.5.8 确定多重性 175
7.5.9 寻找操作 175
7.5.10 初始操作分配 175
7.6 CRC卡 176
7.7 整合分析类图 178
7.8 本章小结 179
问题回顾 179
案例研究、练习和项目 180
拓展阅读 183
案例A3 Agate公司案例研究——
需求分析 184
A3.1 介绍 184
A3.2 用例实现 184
A3.3 整合分析类图 189
A3.4 需求分析活动 189
第8章 完善需求模型 191
8.1 介绍 191
8.2 软体和规範重用 192
8.2.1 为何重用 192
8.2.2 难以重用的原因 192
8.2.3 面向对象对重用的贡献 193
8.3 进一步向结构中添加内容 195
8.3.1 寻找和建模一般化 195
8.3.2 寻找和建模组合 199
8.3.3 组合或聚集与一般化
的合併 200
8.3.4 组织分析模型——包
和依赖关係 201
8.4 重用软体组件 202
8.4.1 组件的UML标记法 203
8.4.2 基于组件的开发 204
8.4.3 组件建模实例 205
8.5 软体开发模式 207
8.5.1 模式的起源 207
8.5.2 什幺是软体模式 208
8.5.3 分析模式 209
8.6 本章小结 211
问题回顾 211
案例研究、练习和项目 211
拓展阅读 212
第9章 对象互动 213
9.1 介绍 213
9.2 对象互动和协作 214
9.3 互动顺序图 215
9.3.1 基本概念和标记法 216
9.3.2 管理顺序图 223
9.3.3 分支 226
9.3.4 延续 227
9.3.5 异步讯息 227
9.3.6 时间约束 228
9.3.7 实时系统和并发的建模 229
9.3.8 準备顺序图的指导原则 230
9.4 通信图 230
9.4.1 基本概念和标记法 231
9.4.2 通信图中的信息标籤 232
9.5 互动概览图 234
9.6 时序图 236
9.7 模型一致性 237
9.8 本章小结 238
问题回顾 238
案例研究、练习和项目 238
拓展阅读 239
第10章 规範对象操作 240
10.1 介绍 240
10.2 操作规範的角色 241
10.3 契约 242
10.4 描述操作逻辑 243
10.4.1 非算法型方法 243
10.4.2 算法型方法 246
10.5 对象约束语言 251
10.6 创建操作规範 253
10.7 本章小结 255
问题回顾 255
案例研究、练习和项目 256
拓展阅读 256
第11章 规範控制 257
11.1 介绍 257
11.2 状态和事件 258
11.3 基本标记法 259
11.4 深度标记法 264
11.4.1 组合状态 264
11.4.2 并髮状态 265
11.4.3 进入和退出伪状态 267
11.4.4 交叉和选择伪状态 268
11.4.5 历史伪状态 268
11.4.6 状态机的特殊化 269
11.5 準备状态机 269
11.5.1 行为型方法 270
11.5.2 生命周期方法 273
11.6 协定型和行为型状态机 273
11.7 一致性检查 274
11.8 质量準则 274
11.9 本章小结 275
问题回顾 275
案例研究、练习和项目 276
拓展阅读 276
案例A4 Agate公司案例研究——
深入分析 277
A4.1 介绍 277
A4.2 顺序图 277
A4.3 状态机 278
A4.4 操作规範 280
A4.5 对类图的进一步修订 281
A4.6 需求分析的深入活动 283
第12章 设计 285
12.1 介绍 285
12.2 设计和分析有何不同 285
12.2.1 设计 286
12.2.2 叠代型生命周期中
的设计 287
12.3 逻辑设计和物理设计 287
12.4 系统设计和详细设计 289
12.4.1 系统设计 290
12.4.2 详细设计 290
12.5 设计的质量和目标 290
12.5.1 目标和约束 291
12.5.2 设计折中 294
12.5.3 设计中的可衡量目标 295
12.6 本章小结 296
问题回顾 296
案例研究、练习和项目 297
拓展阅读 297
第13章 系统架构 298
13.1 介绍 298
13.2 架构的含义 299
13.3 生成架构模型的原因 301
13.4 对系统架构的影响 302
13.4.1 现有系统 303
13.4.2 企业级架构 304
13.4.3 技术参考架构 305
13.5 架构风格 305
13.5.1 子系统 306
13.5.2 分层和分区 307
13.5.3 MVC架构 311
13.5.4 分散式系统架构 314
13.5.5 架构和开发的组织
结构 316
13.6 并发 317
13.7 处理器分配 318
13.8 系统设计标準 319
13.8.1 资料库设计 319
13.8.2 用户界面设计标準 319
13.8.3 构建準则 319
13.9 Agate软体架构 320
13.10 本章小结 321
问题回顾 322
案例研究、练习和项目 322
拓展阅读 322
第14章 详细设计 324
14.1 介绍 324
14.2 在面向对象的详细设计中
添加的内容 325
14.3 特性和操作规範 325
14.3.1 特性的数据类型 325
14.3.2 派生特性 326
14.3.3 主操作 327
14.3.4 操作签名 328
14.3.5 可见性 329
14.4 将特性和操作归入类中 331
14.4.1 分配职责 331
14.4.2 接口 332
14.4.3 耦合和内聚 333
14.4.4 Liskov替换原则 336
14.5 设计关联 336
14.5.1 一对一关联 337
14.5.2 一对多关联 338
14.5.3 多对多关联 340
14.5.4 保持类最小 341
14.6 完整性约束 342
14.6.1 引用完整性 342
14.6.2 依赖约束 343
14.6.3 域完整性 344
14.7 设计操作算法 344
14.8 本章小结 345
问题回顾 345
案例研究、练习和项目 346
拓展阅读 346
第15章 设计模式 347
15.1 介绍 347
15.2 软体开发模式 348
15.2.1 框架 348
15.2.2 模式目录和语言 348
15.2.3 软体开发原则和模式 348
15.2.4 模式和非功能性需求 349
15.3 文档模式——模式模板 349
15.3.1 模板内容 349
15.3.2 模板的其他方面 350
15.4 设计模式 350
15.4.1 设计模式的类型 350
15.4.2 创建型模式 351
15.4.3 结构型模式 355
15.4.4 行为型模式 359
15.5 如何使用设计模式 363
15.6 使用模式的优缺点 364
15.7 本章小结 365
问题回顾 365
案例研究、练习和项目 365
拓展阅读 365
第16章 人机互动 367
16.1 介绍 367
16.2 用户界面 368
16.2.1 什幺是用户界面 368
16.2.2 对话隐喻 368
16.2.3 直接操纵隐喻 370
16.2.4 良好对话的特徵 372
16.2.5 风格指导 374
16.3 用户界面设计方法 375
16.3.1 非正式方法和正式
方法 375
16.3.2 实现可使用性 381
16.4 标準和合法需求 382
16.5 本章小结 383
问题回顾 384
案例研究、练习和项目 384
拓展阅读 384
第17章 设计边界类 386
17.1 介绍 386
17.2 表示层结构 387
17.3 为用户界面建立原型 388
17.4 设计类 390
17.5 使用顺序图设计互动 393
17.6 类图回顾 399
17.7 用户界面设计模式 400
17.8 使用状态机建模界面 402
17.9 本章小结 408
问题回顾 409
案例研究、练习和项目 409
拓展阅读 409
第18章 数据管理设计 411
18.1 介绍 411
18.2 持久性 412
18.2.1 持久性需求 412
18.2.2 存储机制概述 412
18.2.3 持久性架构 413
18.3 档案系统 415
18.3.1 档案和记录结构 415
18.3.2 档案的组织方式 416
18.3.3 档案访问 416
18.3.4 档案类型 419
18.3.5 档案使用示例 420
18.4 资料库管理系统 421
18.4.1 档案和资料库 421
18.4.2 资料库的类型 423
18.5 设计关係型资料库管理
系统 425
18.5.1 关係型资料库 425
18.5.2 数据建模和规範化 426
18.5.3 将类映射为表 430
18.6 设计对象资料库管理系统 432
18.7 分散式资料库 436
18.8 数据管理类设计 438
18.8.1 分层结构 438
18.8.2 PersistentObject超类 439
18.8.3 资料库代管者框架 441
18.8.4 使用数据管理产品
或框架 445
18.9 本章小结 447
问题回顾 447
案例研究、练习和项目 447
拓展阅读 448
案例A5 Agate公司案例——简介 449
A5.1 介绍 449
A5.2 架构 449
A5.3 用例示例 450
A5.4 类图 451
A5.5 顺序图 455
A5.6 资料库设计 458
A5.7 状态机 459
A5.8 设计活动 460
第19章 实现 461
19.1 介绍 461
19.2 软体实现 462
19.2.1 软体工具 462
19.2.2 编程和文档标準 464
19.3 组件图 465
19.4 部署图 467
19.5 软体测试 469
19.5.1 由谁执行测试 469
19.5.2 测试内容 470
19.5.3 测试文档 472
19.6 数据转换 473
19.7 用户文档和培训 474
19.7.1 用户手册 474
19.7.2 用户培训 474
19.8 实现策略 475
19.9 评审和维护 476
19.9.1 下一步骤 476
19.9.2 评审过程和评估报告 477
19.9.3 维护活动 478
19.10 本章小结 480
问题回顾 480
案例研究、练习和项目 481
拓展阅读 481
第20章 软体重用 482
20.1 介绍 482
20.2 为什幺要进行重用 482
20.2.1 项目的选择 484
20.2.2 组织的结构 485
20.2.3 重用合适的单元 486
20.2.4 组件标準 487
20.3 为重用规划策略 489
20.3.1 选择视角法 489
20.3.2 RSEB 490
20.4 商用组件 491
20.5 案例研究示例 493
20.6 Web服务 499
20.7 本章小结 501
问题回顾 501
案例研究、练习和项目 501
拓展阅读 502
第21章 软体开发过程 503
21.1 介绍 503
21.2 过程、方法和方法论 504
21.2.1 方法论 504
21.2.2 为何使用方法论 506
21.3 统一软体开发过程 506
21.4 动态系统开发方法 510
21.4.1 Atern生命周期 511
21.4.2 DSDM Atern技术 513
21.4.3 DSDM中的项目选择 514
21.5 Scrum 514
21.6 极限编程 516
21.7 选择方法论时的考虑 517
21.8 硬性与软性方法论 519
21.9 本章小结 521
问题回顾 521
案例研究、练习和项目 522
拓展阅读 522
附录A 标记法汇总 523
附录B 部分解决方案和答案指导 531
术语表 540