第一部分 当今软件开发过程与不足之处,以及可信软件的挑战 1
第1章 当今软件开发方法论 1
1.1软件开发:需要一种新模式 2
1.2软件开发策略和生命周期模型 5
1.2.1构建-修复模型 6
1.2.2瀑布模型 7
1.2.3快速原型模型 7
1.2.4增量模型 8
1.2.5极限编程 10
1.2.6螺旋模型 10
1.2.7面向对象编程 11
1.2.8迭代开发或渐进模型 13
1.2.9不同软件生命周期模型比较 13
1.3软件过程改进 13
1.3.1 Rational统一过程 14
1.3.2能力成熟度模型 14
1.3.3 ISO9000-3软件开发指导准则 15
1.3.4比较RUP、CMM和ISO 9000 17
1.4 ADR法 18
1.5健壮性软件开发过程的七要素 18
1.6健壮性软件开发模型 19
1.7关键点 20
1.8补充资料 21
1.9 Internet练习 21
1.10问题回顾 21
1.11 问题和项目讨论 22
1.12参考文献 22
第2章 开发可信软件的挑战:软件开发环境下的健壮性设计 23
2.1软件可靠性:神话与现实 23
2.1.1软件开发和产品制造之间的相似和不同之处 24
2.1.2软件和硬件可靠性比较 25
2.1.3引发软件不可靠性的原因 26
2.2传统质量控制体系的局限性 27
2.3日本质量管理体系和田口法 28
2.4健壮性设计中田口法的本质 33
2.4.1信噪比概念 34
2.4.2质量损耗函数概念 35
2.4.3健壮性设计概念 36
2.5软件可靠性挑战:可信软件设计 37
2.6健壮性软件开发模型:实践中的DFTS过程 39
2.7关键点 41
2.8补充资料 42
2.9 Internet练习 42
2.10问题回顾 43
2.11问题和项目讨论 43
2.12参考文献 44
第3章 软件质量度量标准 45
3.1软件质量度量方式 45
3.2经典软件质量度量标准 46
3.3全面质量管理 47
3.4通用软件质量度量 48
3.4.1度量标准方法 48
3.4.2软件测试过程中的质量度量标准 49
3.4.3软件复杂度度量标准 50
3.4.4软件科学 51
3.4.5圈复杂度 52
3.4.6功能点度量标准 53
3.4.7可用性和客户满意度度量标准 54
3.5目前的度量标准和技术模型 55
3.6架构设计和评估中的新度量标准 57
3.7架构设计中普遍存在的问题 58
3.8 OOAD中的度量标准模式 59
3.9关键点 60
3.10补充资料 60
3.11 Internet练习 61
3.12问题回顾 61
3.13问题和项目讨论 61
3.14参考文献 61
第4章 可信软件经济观点 63
4.1为什么DFTS需要不同的经济分析方法 63
4.2成本和质量:过去和现在 64
4.3软件质量成本 66
4.3.1质量成本分析优点 67
4.3.2质量任务成本 67
4.3.3软件质量成本的分类 69
4.3.4建立CoSQ汇报系统 73
4.3.5质量投资回报效益 74
4.3.6贴现现金流法 75
4.3.7 CoSQ分析价值 75
4.3.8 CoSQ计划中的误区 75
4.4软件生命周期中的软件质量成本 76
4.5 CoSQ和作业基准成本法 80
4.5.1软件企业组织中的ABC 80
4.5.2启动软件企业组织中的ABC 81
4.5.3 ABC优点 81
4.6软件质量损耗函数 82
4.7 DFTS投资的经济评估 82
4.7.1 DFTS评估度量标准 83
4.7.2为DFTS计划建立经济评估框架 83
4.8关键点 85
4.9补充资料 85
4.10 Internet练习 85
4.11问题回顾 86
4.12问题讨论 86
4.13问题 87
4.14参考文献 88
第5章 DFTS企业组织化结构和领导力管理 89
5.1部署DFTS的企业组织面临的挑战 89
5.2 DFTS执行框架 90
5.2.1第1步:树立管理意识并引入DFTS 92
5.2.2第2步:与高级管理层沟通达成共识并获取他们的承诺 94
5.2.3第3步:识别DFTS计划的潜在误区 94
5.2.4第4步:为建立关注质量的企业奠定哲学基础 101
5.2.5第5步:构建企业组织化基础设施 103
5.2.6第6步:理解关键人员角色 103
5.2.7第7步:设计支持性的企业组织结构 111
5.2.8第8步:建立有效沟通的机制 111
5.2.9第9步:建立合理的奖励机制 112
5.2.10第10步:确定软件质量成本 113
5.2.11第11步:规划并启动整个企业组织范围内的学习过程 114
5.2.12第12步:执行DFTS模型 114
5.2.13第13步:监控学习和改进过程并获取反馈 115
5.2.14第14步:巩固改进过程和所积累的经验 117
5.2.15 第15步:整合并推广计划 117
5.3汇总 118
5.4关键点 118
5.5补充资料 121
5.6 Internet练习 121
5.7问题回顾 121
5.8问题和项目讨论 122
5.9参考文献 123
第二部分 可信软件设计的工具和技术 125
第6章 质量管理的七大基本(B7)工具 125
6.1 B7工具 126
6.2 DFTS背景下的B7 129
6.3其他DFTS工具、技巧和方法论 130
6.4流程图 131
6.4.1高级流程图 132
6.4.2详细流程图 132
6.4.3泳道流程图 133
6.5帕累托图 133
6.6因果图 133
6.6.1绘制确定原因的因果图 135
6.6.2过程分类因果图 136
6.7散点图 137
6.8检查表 140
6.9直方图 140
6.9.1确定分布规律 141
6.9.2确定是否满足规约 142
6.9.3通过分层法来比较数据 142
6.10图表 142
6.11控制图 143
6.12关键点 144
6.13补充资料 146
6.14问题回顾 146
6.15问题讨论 146
6.16参考文献 146
第7章 七大MP工具:分析和解释定性及可表达化数据 148
7.1 N7和七大MP工具 149
7.2七大MP工具的典型应用 150
7.3亲和图 152
7.4相互关系图(I.D.) 155
7.5树形图 156
7.6优先级矩阵 159
7.7矩阵图 159
7.8过程决策程序图 159
7.9活动网络图 161
7.10七大MP工具行为技巧 161
7.11关键点 162
7.12补充资料 162
7.13问题回顾 162
7.14问题和项目讨论 163
7.15 参考文献 163
第8章 层次分析法 165
8.1优先级、复杂性和层次分析法 165
8.2多目标决策制定和AHP 166
8.2.1术语 168
8.2.2结构化目标层次 168
8.2.3决策层次 170
8.3使用专家选择的解决方案 171
8.3.1第1步:头脑风暴和构建问题的层次模型 171
8.3.2第2步:为目标推导出比例大小的优先次序 172
8.3.3第3步:推导出与各目标相关的可选方案的优先次序 174
8.3.4第4步:综合 177
8.4使用手工粗略计算AHP的解决方案 180
8.4.1粗略计算解决方法1 180
8.4.2粗略计算解决方法2:Brassard优先次序全面分析标准法 185
8.5结论 187
8.6关键点 188
8.7补充资料 188
8.8 Internet练习 188
8.9问题回顾 189
8.10问题和项目讨论 189
8.11问题 190
8.11.1问题1:系统转化过程中的复杂度管理 190
8.11.2问题2:在一高科技创业型公司中管理软件复杂度 191
8.11.3问题3:病历系统中的复杂度 192
8.11.4问题4:石油钻探决策系统 193
8.11.5问题5:ROI问题 194
8.11.6问题6:抽象的复杂度分析 194
8.11.7问题7:复杂度的影响 195
8.12参考文献 195
第9章 软件开发过程中的复杂度、错误和Poka Yoke 197
9.1作为质量控制系统的Poka Yoke 198
9.2 Poka Yoke原则 198
9.3导致缺陷产生的原因:差异、错误和复杂度 199
9.4成功部署Poka Yoke的几种情况 201
9.5作为缺陷原因的错误 201
9.6控制软件开发中的复杂度 203
9.7错误、检测方法和Poka Yoke 205
9.8实施Poka Yoke体系 206
9.9确认Poka Yoke体系 208
9.10关键点 209
9.11补充资料 210
9.12 Internet练习 211
9.13问题回顾 211
9.14问题和项目讨论 211
9.15 参考文献 211
第10章 软件开发智能管理的5S法 213
10.1 5S:迈向多产的工作环境的巨大一步 214
10.2 5S系统各执行阶段 215
10.2.1第1阶段:筛选/清理 215
10.2.2第2阶段:整顿/井井有条 215
10.2.3第3阶段:清洁/清扫 215
10.2.4第4阶段:标准化 215
10.2.5第5阶段:维持清洁/规范 216
10.3 5S系统和DFTS过程 216
10.4克服阻力 219
10.5执行5S 220
10.5.1第1步:管理层的介入 220
10.5.2第2步:培训和执行 220
10.5.3第3步:与奖励系统相关联 220
10.5.4第4步:进行后续和持续的改进 221
10.6关键点 221
10.7补充资料 222
10.8 Internet练习 222
10.9问题回顾 222
10.10问题和项目讨论 222
10.11参考文献 223
第11章 理解客户需求:软件QFD和客户心声 224
11.1 QFD:起源和介绍 224
11.1.1 QFD作为质量体系会有什么不同 225
11.1.2 QFD历史 227
11.1.3软件QFD历史 227
11.1.4什么是QFD,我们为什么需要它 228
11.1.5关注优先级次序 230
11.1.6 QFD定义 231
11.1.7 QFD实施 231
11.1.8 QFD四阶段模型 231
11.1.9“质量屋”矩阵 233
11.2应用于软件的传统QFD问题 236
11.2.1传统QFD失败之处 236
11.2.2“矩阵太大了” 237
11.2.3“花的时间太长” 237
11.2.4“我们早就知道了” 238
11.3软件的现代化QFD 239
11.3.1 Blitz QFD 240
11.3.2七大管理和规划工具 240
11.3.3客户满意度和价值 240
11.4 Blitz QFD过程 241
11.4.1第1步:关键的项目目标 243
11.4.2第2步:关键客户群 243
11.4.3第3步:关键过程步骤 244
11.4.4第4步:去现场 244
11.4.5第5步:客户需求是什么 245
11.4.6第6步:对客户需求进行结构化 248
11.4.7第7步:客户需求结构分析 248
11.4.8第8步:对客户需求进行优先级排序 249
11.4.9第9步:实现经过优先次序排序的客户需求 250
11.4.10后期部署:(只)对重要关系进行详细分析 251
11.4.11“质量屋”及其扩展 252
11.4.12 6 Sigma项目 253
11.4.13后续工作:应用、发展和改进过程 253
11.4.14快速开发 253
11.4.15关键链项目管理的进度部署 254
11.5实现软件QFD 254
11.5.1 QFD中的人员因素 254
11.5.2 QFD所面临的挑战与陷阱 255
11.5.3如何实现软件QFD 257
11.6结论 257
11.7关键点 259
11.8补充资料 260
11.9 Internet练习 260
11.10问题回顾 261
11.11问题和项目讨论 262
11.12参考文献 263
11.13关于作者 267
第12章 软件设计过程中的创新:TRIZ和普氏概念选择法 268
12.1 DFTS创新需求 268
12.2创造力和TRIZ 269
12.3软件开发中的TRIZ 275
12.4 TRIZ、 QFD和田口法 277
12.5头脑风暴 278
12.6普氏概念选择法 279
12.7作为知识产权成果的软件 281
12.8关键点 283
12.9补充资料 283
12.10 Internet练习 284
12.11问题回顾 284
12.12问题和项目讨论 284
12.13参考文献 284
第13章 软件中的风险评估以及故障模式和影响分析 286
13.1 FMEA:故障模式和影响分析 286
13.2要在早期应用FMEA 289
13.3软件故障树分析 292
13.4软件故障模式及其原因 294
13.5 DFTS各阶段风险识别和评估 295
13.6关键点 296
13.7补充资料 297
13.8 Internet练习 297
13.9问题回顾 297
13.10问题和项目讨论 297
13.11参考文献 297
第14章 对象、组件技术及其他软件开发工具 299
14.1企业级业务应用中所面对的几种主要挑战 299
14.2面向对象分析、设计和编程 300
14.3基于组件的软件开发技术 306
14.4极限编程的生产率 309
14.5 N版本编程的可靠性 309
14.5.1 NVP的优势 310
14.5.2 NVP的劣势 311
14.6现代化编程环境 311
14.7计算机自动化编程的趋势 314
14.8关键点 316
14.9补充资料 317
14.10 Internet练习 317
14.11问题回顾 317
14.12问题和项目讨论 317
14.13参考文献 317
第三部分 可信软件设计 319
第15章 可信软件质量测量和数据统计方法 319
15.1可信软件 320
15.2微软公司的可信计算计划 321
15.3软件开发过程中的统计过程控制 322
15.4软件架构的统计方法 327
15.5关键点 330
15.6补充资料 330
15.7 Internet练习 330
15.8问题回顾 330
15.9问题和项目讨论 331
15.10问题 331
15.11参考文献 331
第16章 健壮性软件背景介绍 332
16.1软件规约过程 332
16.2何为健壮性软件 335
16.3让软件健壮的需求 336
16.4软件健壮性指标 337
16.5关键点 338
16.6补充资料 339
16.7 Internet练习 339
16.8问题回顾 339
16.9问题和项目讨论 339
16.10问题 339
16.11参考文献 340
第17章 用于健壮性软件的田口法及其优化 341
17.1用于健壮性软件设计的田口法 341
17.2工程设计实例 344
17.3软件设计与开发实例 346
17.4用于田口参数设计实验中的正交矩阵 350
17.5可信软件设计应用 352
17.6关键点 352
17.7补充资料 353
17.8 Internet练习 353
17.9问题回顾 353
17.10问题讨论 353
17.11问题 353
17.12参考文献 353
第18章 确认、验证、测试和评估可信度 355
18.1持续的开发生命周期 355
18.2验证 357
18.3确认 360
18.4测试和评估 363
18.5关键点 366
18.6补充资料 367
18.7 Internet练习 367
18.8问题回顾 367
18.9问题和项目讨论 367
18.10问题 368
18.11参考文献 368
第19章 可信度的集成、扩展和维护 369
19.1完成开发生命周期 369
19.2集成 370
19.3扩展 371
19.4维护 372
19.5关键点 375
19.6补充资料 375
19.7 Internet练习 375
19.8问题回顾 375
19.9问题和项目讨论 375
19.10问题 376
19.11参考文献 376
第四部分 综合运用:DFTS计划部署 377
第20章 为DFTS进行的组织准备 377
20.1反复思索 378
20.2转型计划中的领导力挑战 385
20.3评估关键组织化元素 386
20.3.1建立领导承诺 386
20.3.2了解领导角色 387
20.3.3评估战略关系 388
20.3.4确保整个企业组织参与 388
20.3.5了解客户关注的需求 388
20.3.6评估现有质量管理能力 389
20.4关键点 389
20.5补充资料 391
20.6 Internet练习 391
20.7问题回顾 391
20.8问题和项目讨论 391
20.9参考文献 392
第21章 DFTS计划启动 393
21.1 DFTS和PICS框架 394
21.2规划 395
21.3执行 396
21.3.1第11步:启动整个企业组织范围内的学习过程 396
21.3.2第12步:执行DFTS技术:学习和应用过程 398
21.4控制 401
21.4.1第13步:反馈控制体系 404
21.4.2项目管理 409
21.5安全保证 410
21.5.1第14步:总结改进过程和所积累的经验 410
21.5.2第15步:整合并推广计划 410
21.6在小型软件公司和“电子山寨”中的使用情况 415
21.7下一个是什么 416
21.8关键点 417
21.9补充资料 418
21.10 Internet练习 418
21.11问题回顾 419
21.12问题讨论 419
21.13参考文献 420
第五部分 6个研究案例 424
第22章 雷神电子系统公司(RES)的软件质量成本(CoSQ)应用 424
22.1简介 424
22.2 RES及其改进计划 424
22.3软件质量成本 425
22.3.1 RES的CoSQ模型 425
22.3.2 CoSQ数据收集 426
22.4经验教训 426
22.4.1 CoSQ模型使用教训 426
22.4.2使用CoSQ数据来了解改进的影响 426
22.4.3 CoSQ成本和收益 429
22.4.4 CoSQ追踪记录制度化 429
22.5研究案例启迪 429
22.6参考文献 430
第23章 IT项目群整合 431
23.1第一部分:挑战 431
23.1.1迭代过程的五个阶段 432
23.1.2客观性、主观性和质量 434
23.2第二部分:一个新的合理方法 434
23.2.1第1步:设计 435
23.2.2第2步:复杂度结构化——关注目标 435
23.2.3第3步:度量方式 435
23.2.4第4步:综合 439
23.2.5第5步:优化 440
23.3风险 442
23.4扩展 443
23.5小结 444
23.6参考文献 445
第24章 为全新产品定义客户需求:用于创新软件的QFD 446
24.1简介 446
24.1.1价值定义 447
24.1.2为什么不问 447
24.1.3创新产品 448
24.2全新需求定义 448
24.2.1客户需求定义方法 448
24.3工具 453
24.3.1 QFD的七大管理和规划工具 453
24.3.2思考过程 454
24.4最后几步 455
24.5阻力层次 456
24.6结论 458
24.7致谢 458
24.8参考文献 458
24.9关于作者 460
第25章 Jurassic QFD:集成服务和产品质量功能部署 461
25.1 MD Robotics公司介绍 461
25.2为什么要用QFD 462
25.2.1 QFD历史 462
25.2.2 Kano需求 463
25.3佛罗里达冒险岛环球工作室在场景制作中的QFD应用 464
25.3.1 QFD模板 465
25.3.2客户心声分析 465
25.3.3情绪信息实施 468
25.3.4肢体动作实施 470
25.3.5工程需求实施 471
25.4小结 472
25.5关于作者 473
25.6参考文献 473
第26章 QFD项目:使用Blitz QFD更好地管理软件开发项目 475
26.1简介 475
26.1.1失败 476
26.1.2部分成功 476
26.1.3 QFD定义 476
26.1.4正确启动 477
26.2新开发过程中的问题 477
26.2.1没有条理的开发是低效的 477
26.2.2有条理的开发是有效的 478
26.3关注QFD项目的价值 480
26.4小结 489
26.5致谢 490
26.6参考文献 490
26.7关于作者 492
第27章 QFD2000:集成QFD和其他改进新产品开发过程的质量管理方法 493
27.1新产品需求 493
27.2质量和新产品的开发 494
27.2.1现代质量工具 495
27.2.2新产品开发过程 496
27.3 QFD资料和其他质量管理方法 499
27.4关于作者 504
27.5参考文献 504
术语表 506