本书分四部分向计算机专业管理人员讲述软件验证与确认的方法。详细介绍了软件开发过程、软件验证活动、软件确认活动、可预测的软件开发等内容。帮助专业人士有效地对软件开发过程进行管理,不断地提高软件质量。本书结构清晰、内容丰富,适用于软件开发人员、工程技术人员、管理人员。也可作为高等院校计算机专业师生的参考书。 \r\n
\r\n
第一部分 引言 \r\n\r\n 第1章 软件透视 \r\n\r\n 1.1 软件危机 \r\n\r\n 1.2 虚幻的银弹 \r\n\r\n 1.3 解决危机的其他尝试 \r\n\r\n 1.4 理解软件的本质 \r\n\r\n 1.5 软件过程改进创新 \r\n\r\n 1.6 小结 \r\n\r\n 第2章 软件开发生存周期模型 \r\n\r\n 2.1 瀑布模型 \r\n\r\n 2.2 并发开发模型 \r\n\r\n 2.3 快速原型模型 \r\n\r\n 2.4 螺旋模型 \r\n\r\n 2.5 混合模型 \r\n\r\n 2.6 基于模型的开发 \r\n\r\n 2.7 面向对象模型 \r\n\r\n 2.8 小结 \r\n\r\n 第3章 软件开发过程 \r\n\r\n 3.1 软件开发过程经常提及的问题 \r\n\r\n 3.2 小结 \r\n\r\n 第4章 经济缘由 \r\n\r\n 4.1 经济缘由 \r\n\r\n 4.2 软件缺陷开销模型 \r\n\r\n 4.3 质量成本测量 \r\n\r\n 4.4 小结 \r\n\r\n 第二部分 软件验证活动综述 \r\n\r\n 第5章 审查过程 \r\n\r\n 5.1 审查过程经常提及的问题 \r\n\r\n 5.2 小结 \r\n\r\n 第6章 审查过程的应用 \r\n\r\n 6.1 好的过程的属性 \r\n\r\n 6.2 需求审查 \r\n\r\n 6.3 设计审查 \r\n\r\n 6.4 代码审查 \r\n\r\n 6.5 测试脚本审查 \r\n\r\n 6.6 小结 \r\n\r\n 第7章 软件质量度量 \r\n\r\n 7.1 实施软件度量程序的策略 \r\n\r\n 7.2 软件质量度量框架 \r\n\r\n 7.3 有助于软件确认活动的度量 \r\n\r\n 7.4 小结 \r\n\r\n 第8章 配置管理 \r\n\r\n 8.1 软件配置管理基础 \r\n\r\n 8.2 标识 \r\n\r\n 8.3 基线管理 \r\n\r\n 8.4 审计和报告 \r\n\r\n 8.5 小结 \r\n\r\n 第三部分 软件确认活动概要 \r\n\r\n 第9章 测试 \r\n\r\n 9.1 测试阶段. 测试方法和测试类型 \r\n\r\n 9.2 并发开发/确认测试模型 \r\n\r\n 9.3 测试计划 \r\n\r\n 9.4 小结 \r\n\r\n 第10章 确认度量 \r\n\r\n 10.1 时间测量 \r\n\r\n 10.2 测试覆盖度量 \r\n\r\n 10.3 质量度量 \r\n\r\n 10.4 小结 \r\n\r\n 第11章 软件可靠性增长 \r\n\r\n 11.1 定义 \r\n\r\n 11.2 测试-分析-修改过程 \r\n\r\n 11.3 可靠性增长模型 \r\n\r\n 11.4 小结 \r\n\r\n 第四部分 可预测的软件开发 \r\n\r\n 第12章 变成可预测的动机 \r\n\r\n 12.1 可预测的软件开发概述 \r\n\r\n 12.2 不能进行预测的组织的特征 \r\n\r\n 12.3 进行预测的组织的特征 \r\n\r\n 12.4 管理部门能够使组织发生改变 \r\n\r\n 12.5 小结 \r\n\r\n 第13章 质量. 特性和进度的平衡 \r\n\r\n 13.1 质量 \r\n\r\n 13.2 特性 \r\n\r\n 13.3 进度 \r\n\r\n 13.4 质量. 特性和进度之间的平衡 \r\n\r\n 13.5 小结 \r\n\r\n 第14章 准确估算和进度安排 \r\n\r\n 14.1 为什么估算和进度在很多时候是错误的 \r\n\r\n 14.2 一个典型的进度倒计时项目 \r\n\r\n 14.3 软件估算方法 \r\n\r\n 14.4 进度安排方法 \r\n\r\n 14.5 小结 \r\n\r\n 第15章 人员. 过程和产品的平衡 \r\n\r\n 15.1 过程 \r\n\r\n 15.2 人员 \r\n\r\n 15.3 产品 \r\n\r\n 15.4 小结 \r\n\r\n 第16章 管理承诺和风险 \r\n\r\n 16.1 管理承诺 \r\n\r\n 16.2 风险 \r\n\r\n 16.3 风险管理方法 \r\n\r\n 16.4 小结 \r\n\r\n 附录A 审查角色与职责 \r\n\r\n 附录B 审查过程实例 \r\n\r\n 附录C 审查过程表 \r\n\r\n 附录D 审查检查表 \r\n\r\n 附录E 良好的需求规格说明属性 \r\n\r\n 附录F 选择用于代码审查的模块的抽样准则 \r\n\r\n 附录G 基于瀑布模型的软件开发过程样本 \r\n\r\n 附录H 文档大纲 \r\n\r\n 附录I 三角形程序的测试用例 \r\n\r\n 附录J 软件可靠性模型 \r\n\r\n 附录K 黄色粘贴法 \r\n\r\n 附录L 软件开发最佳实践 \r\n\r\n 附录M 软件质量最佳实践 \r\n\r\n 附录N 项目事后剖析 \r\n\r\n 附录O 根本原因分析 \r\n
\r\n
Steven R. Rakitin获得美国东北大学的电气工程理科学士学位和伦斯勒工业学院的计算机科学理科硕士学位. 他在很多工业部门担任软件工程师和软件质量专业人员, 具有25年以上的工作经验. 他作为一名软件质量工程师和质量审查员, 得到美国质量协会的认可. 他是美国质量协会和IEEE计算机学会的会员. 作为软件质量咨询公司的总经理, Steven R. Rakitin与立志于创建更加可预测的软件开发过程的公司一起奋斗. 如果想了解更详细的信息, 请访问http://www.swqual.com或通过info@swqual.com与作者联系.
本书介绍一系列基本软件验证与确认活动. 根据在几个工业部门的公司工作的切身体会, 我发现一些基本的软件验证与确认活动没有得到很好的理解, 并且没有得到合理的应用. 例如, 在我曾经工作过的几家公司里迄今没有软件质量保证小组, 少数公司甚至没有落实基本的配置管理方法. 另外, 在一些拥有软件质量保证的组织机构内, 我发现各组织机构的有效性(甚至同一组织机构内各项目的有效性)差别巨大. 尽管我的观察不是基于统计学上大量的样本, 但我认为自己的经验相当准确地反映了整个工业界的情况. 实际上, Yourdon[1]最近报告说, 尽管软件质量总体上有所改进, 但生产最佳软件的公司与生产最劣软件的公司之间的差距在过去10年里显著加大.
作为一名顾问, 我常被公司请去帮助解决“质量问题”. 调查过一些有此类问题的委托人后, 我发现了一个共性的主题——他们都是以不可预测的方式运转的. 例如, 这些组织不可能确定大的事件何时发生, 例如代码冻结或产品的第一个用户(在某些情况下, 甚至不能够知道他们是否会发生). 因为这些组织不具有可预测能力, 所以无法预计产品的上市时间, 开发与质量保证部门无法有效利用昂贵且稀有的资源, 因而软件验证与确认活动几乎无法发挥其应有的效能.
Len Race是一名顾问, 也是作者的朋友. 他注意到, 为了使商家效益更佳, 他们必须学会以更长远的可预测的方式运转. 我认为这是个新发现. 不佳实绩与不可预测的运转状态之间的关系显而易见. 不可预测的组织存在如下现象:
·他们一贯承诺多, 兑现少.
·他们低估所承担的工作, 并且忽略几乎每一项计划安排.
·组织内人员的目标与整个商业目标不一致.
·整个组织内缺乏责任制.
·缺乏采用“最佳做法”的意识. 即使有书面程序, 但一贯不遵照执行.
·员工们的看法是, 我们从来没有时间做对事情, 但我们总有时间重做事情.
当我帮助公司解决质量问题时, 我都是从首席执行官着手, 并询问他:“如何考核贵公司员工的实绩?”通过查看个人的实绩计划, 你会了解为什么该组织以其独特方式运转. 一个必然的情况是, 当查看有质量问题的公司的实绩时, 很难发现“质量”这两个字. 既然运转状态与如何考核员工直接挂钩, 为什么还对那些组织存在“质量问题”大惊小怪呢?
一旦找出不佳实绩与不可预测的运转状态两者之间的关系, 我意识到:
1. 管理部门中既存在问题又有解决办法.
2. 为了提高软件验证与确认方法的有效性, 各类组织都必须学会以更加可预测的方式运转.
显然, 管理部门必须在帮助组织实现以可预测的方式运转方面起领导作用. 因此, 对本书的书名做了更改, 把管理部门也包括进去. 本书涉及管理部门为帮助其组织以更加可预测的方式运转可能采取的具体措施.
本书的读者对象
从本书的书名可以看出, 本书面向两个读者群, 即专业人员和管理人员. 专业人员包括软件质量保证工程师. 软件工程师. 以及需要基本了解软件验证与确认方法的项目经理.
令人遗憾的是, 学校对软件验证与确认方面的正规培训甚少, 其结果是, 许多软件质量专业人员具有的技能与生产高质量软件所必需的技能之间存在差距. 本书的读者对象是那些负责软件验证与确认工作但接受这方面培训不多的人士. 第一部分到第三部分内容适合于专业人员.
管理人员包括软件质量保证经理. 开发经理. 项目经理. 负责工程设计和开发的副总经理. 质量董事和首席执行官. 管理部门通过提供实现商业目标所必需的领导以及确保员工实绩考核方式与商业目标一致, 有能力改变其组织的运转状态. 从事管理工作的每一位员工, 从首席执行官到生产第一线的经理都必须认识到, 当组织变得更加可预测时, 实现商业目标则容易多了. 本书第四部分为各级经理和执行人员提供了具体策略, 他们可用这些策略帮助其组织以更加可预测的方式运转.
验证与确认适用的软件
本书所讲述的软件验证与确认活动适合于各种各样的软件. 各种各样的产品以及各种各样的产业部门. 可以用另一个问题作为这个问题的最佳答案:“有开发高质量软件并准时交付软件的强制性的商业理由吗?”如果答案是肯定的, 那么许多软件验证与确认活动也是适用的.
本书的编排结构和第二版本增加的新内容
第一部分包括软件开发引言和软件开发过程概述. 第2章介绍几个软件开发生存周期模型. 第3章阐述将软件开发过程文档化的重要性. 第4章讨论软件验证与确认活动的经济动机.
第1章增加了有关生存周期模型国际标准——ISO 12207方面的论述. 第2章涉及瑞理统一的过程方面的信息. 第一部分采用了软件标准的最新参考文献.
第二部分概述了软件验证活动. 第5章和第6章(以及附录A到附录D)详细介绍了正规的审查过程. 第7章侧重于验证测量. 第8章介绍配置管理.
第6章对内容稍做整理以删除一些冗余信息. 第二部分采用了软件标准的最新参考文献.
第三部分概述软件确认活动. 第9章介绍软件测试工作. 第10章介绍测试度量. 第11章介绍软件可靠性增长.
第9章是重新撰写的一章, 详细介绍了各种测试类型, 包括并发测试/开发模型. 测试计划和测试计划评价技术. 第10章也做了修改, 专门侧重于确认测量.
第四部分是新内容, 它侧重于为管理部门提供具体策略, 这些策略可帮助组织以更加可预测的方式运转, 从而显著提高软件验证与确认活动的有效性. 第12章介绍入门知识和经济动机. 第13章讨论质量. 特性和进度方面的平衡问题. 第14章介绍黄色粘贴法——一种估算任务和确立真实进度的方法. 第15章讨论人员需求. 过程和产品的平衡问题. 第16章讨论管理承诺和风险的方法.
除第四部分外, 还增加了5个新附录.
参考文献
[1] Yourdon, E., Rise and Resurrection of the American Programmer, Upper Saddle River, NJ: Prentice-Hall PTR, 1998.
致 谢
可预测的软件开发的想法是与我的朋友. 同事Len Rance讨论时产生的. 他对商业过程的洞察力和“做事”能力简直令人不可思议.
我要向Artech House出版社的全体职员致谢. 感谢Tim Pitts. Ruth Young. Judi Stone. Jen Kelland以及其他人在整个出版过程中对我的帮助. 他们给了我恒心和勇气.
Steven R. Rakitin
Upton, Massacbusetts
2001年7月