软件质量经济学
上QQ阅读APP看书,第一时间看更新

2.4 估计软件缺陷预防

软件缺陷预防会在第3章里详细讨论,本章只提供了一些大概的原则,将软件缺陷预防作为质量估计和质量度量的因素包括进去。

对度量目的而言,每种缺陷预防方法至少要有两个数据点:①一个或多个使用特定缺陷预防方法的应用程序;②一个相似的应用程序集合,其中的应用程序没有使用缺陷预防方法。

也就是说,要理解QFD等缺陷预防方法,需要使用了该方法的应用程序的例子,以及没有使用该方法的类似的应用程序例子。当然,还需要非常好的质量和缺陷度量方案。

缺陷预防是按照两个应用程序的缺陷总数的不同和缺陷引入点(比如需求、设计、编码、文档或不良修复注入)的不同来度量的。

因为两个数据点在统计上是没有效的,分析缺陷预防是一项长期工程,需要几年时间来收集可能高达几百个项目的数据。这也是为什么大多数缺陷预防报告都来自于IBM等大型公司,这些公司有丰富的质量度量方案和多年积累下来的历史数据。事实上,IBM在某些应用程序上拥有超过25年的不间断历史数据。大学极少能被配备或资助以实施涉及数百个项目的多年研究。

一种把缺陷预防集成到质量估计中的方式是给出不同的方法是如何影响缺陷总数的。在没有任何可靠的历史数据的情况下,一种可以用来预测潜在缺陷的方式是,给以功能点计算的应用程序规模取某个特定的幂。以功能点计算的应用程序规模取的幂的默认的值为1.2。其结果是在需求、设计、编码、用户文档和不良修复中发现的缺陷总数的近似值。但在影响缺陷预防的因素中,都有推荐的幂值范围。表2-13提供了与各种缺陷预防方法相关的近似却有用的幂值范围,但其中有一些是有害的。

虽然表2-13存在较高的错误可能,但有些主题有相当不错的支持证据。例如,正式审查在需求、设计和编码中已经使用了40多年。许多类似的项目可以与使用了审查和没有使用审查的项目进行比较。静态分析是较新的技术,但也存在很多使用了或者没有使用现代静态分析工具的类似应用程序。