《可信软件设计 开发健壮软件的工具、技术和方法》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)贾亚斯瓦等著;吴峻申,蒋乐天,黄诚译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2013
  • ISBN:9787111428190
  • 页数:512 页
图书介绍:本书介绍了一种可在早期解决软件质量问题,使软件质量管理目标变成防止在实施阶段发生bug而不是在实施阶段中或之后发现和解决bug,名为可信任软件设计(DFTS)的综合技术。这种技术可信之处在于能在一行代码都未写情况下就能实施软件质量管理。这种面向客户的综合技术能在成本、质量和交付进度等方面帮助人们提供突破性成果,以此满足甚至超越客户期望。作者们不仅向我们描述了它所包含的原理,也告诉我们在面对现实中所遇到的软件设计问题时,如何应用它来解决问题。而且他们还例证了很多研究案例,覆盖了DFTS技术的方方面面,包括CoSQ、AHP、TRIZ、FMEA、QFD和田口方法。不仅如此,还为读者提供了大量的习题和练习,以此测试读者是否真正理解了这些知识。除此之外,还提供了应用该项技术的详细实例。

第一部分 当今软件开发过程与不足之处,以及可信软件的挑战 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