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

3.2.12 ISO质量标准、IEEE质量标准及其他行业标准

在本书写作时(2011年),存在很多(美国)国内和国际标准组织,这些组织为软件和软件质量创建标准。这些组织中包括但不限于:

●AIAA——美国航空航天学会(The American Institute of Aeronautics and Astronautics)

●ANSI——美国国家标准协会(The American National Standards Institute)

●BSI——英国标准协会(The British Standard Institution)

●COPANT——泛美技术标准委员会(The Pan-American Standards Commission)

●DIN——德国标准化学会(The Deutsches Institu fur Normung)

●DOD——美国国防部(军事标准)(The Department of Defence(for military standards))

●ESO——欧洲标准化组织(The European Standards Organization)

●EIA——电子工业协会(The Electronic Industries Association)

●IEC——国际电工委员会(The International Electrotechnical Commission)

●IEEE——电器和电子工程师学会(The Institute of Electrical and Electronics Egineers)

●ISACA——国际信息系统审计协会(The Information Systems Audit and Control Association)

●ISO——国际标准化组织(The International Organization for Standardization)

●ITU——国际电信联盟(The International Telecommunication Union)

●JISC——日本工业标准委员会(The Japanese Industrial Standards Committee)

●NIST——美国国家标准和技术协会(The National Institute for Standards and Technology)

●PASC——太平洋地区标准大会(The Pacific Area Standards Congress)

●SAC——中国国家标准化管理委员会(The Standards Administration of China)

●SEI——软件工程研究所(The Software Engineering Institute)

●SIS——瑞典标准协会(The Swedish Standards Institute)

全球标准组织的总数可能超过了300个。全球实际标准总数可能超过了25000个。在美国,软件和软件质量方面的主要标准组织有DOD、ANSI、ISO、SEI、IEEE和NIST。软件标准的总数可能超过了150个,软件质量标准的总数可能超过了20个。

如此之多的标准组织和更多的标准的存在说明了全球对标准的强烈兴趣。尽管人们对创建这些标准有明显的兴趣,而且投入了很多的精力,但是缺少关于标准在软件质量领域的实际效率的经验数据。这一点在缺陷清除效率和缺陷预防效率上都有体现。

本书的一位作者曾经拜访过几十家公司,从数百个使用了各种标准(如ISO 9001—9004、DOD 2167A、ISO/IEC 12207等)的项目中搜集了质量数据。他还搜集了数目相同但没有使用任何国际标准的类似项目的数据。

该作者的研究并不是被委任来专门研究标准的,而是收集生产力和质量的数据。标准的使用与缺失都被做了标记,还有其他的一些主题也被记录下来,如方法论、缺陷清除方法、组织结构等。

表3-11给出了使用了和没有使用国际化软件和质量标准的项目总体的结果对比。但是,这个表有很大的不确定性,因为有太多其他因素也影响到了数据。两个样本中的项目都是从1000个功能点到50000个功能点,因为该作者几乎从来没有被委任去研究1000个功能点以内的小型项目。

该作者最初有一个疑惑,即这些国际化的标准在提升软件质量方面并没不是非常有效,因为对于最好的质量水平而言,标准组和非标准组中的项目质量水平几乎没有什么区别。

然而,在表3-11的底部,质量差的应用程序出现了很大的差别。看上去存在这样一个假设:国际软件标准在减少质量差的项目的潜在缺陷方面是有效的。

标准在防止差的质量方面比在提升质量等级方面更有效,这个结论需要额外的研究和确认。如果这个结果得到其他研究的确认,那么还能够说明国际标准在软件上下文中是有价值的,因为差的质量对行业来说是一个地方性的问题,该问题已经存在了至少50年。

其他的质量因子也有相似的模式。在标准组和非标准组中高水平的缺陷清除效率是差不多相等的。但是,在未使用标准的项目中,缺陷清除效率低于85%的概率是使用了标准的项目的两倍。

数据告诉我们,只有很少的管理者和员工有足够的知识并且足够在意做好一份工作的质量。这些杰出的员工被差不多平均分配到使用了国际标准和没有使用国际标准的项目中。这解释了在高质量一端质量相似的情况。

在代表差质量的低端中,国际标准的采用提供了度量质量和关注缺陷清除和缺陷预防这两个好处。换句话说,质量标准在预防方面的效果是相似的。接种疫苗并不能使人们更健康,但是却能降低得病的几率。类似地,质量标准可能不会使项目更健康,但是它们可以降低项目变得不健康的几率。

一些具体的主题对于将来的标准研究可能是有用的:

●质量标准将软件潜在缺陷降低到单位功能点5个了吗?

●质量标准将缺陷清除效率水平提升到95%以上了吗?

●质量标准将不良的测试用例降低到15%了吗?

●质量标准将不良修复注入率降低到7%以下了吗?

●质量标准在域条件下增加了可靠性吗?

●质量标准增加了客户满意度吗?

●质量标准降低了取消或延迟的项目的数目吗?

●质量标准降低了因违反合同而造成的诉讼发生概率吗?

●质量标准降低了因差质量而造成的诉讼发生概率吗?

当比较使用标准了的项目与类似的使用“最佳实践”但没使用任何标准的项目时,结果是非常接近的。

软件标准组,例如ISO、IEEE、DOD、ANSI等,应该按照医疗和制药标准的制定方式来考虑这些方法。尽管医疗标准也不完美,但是医疗标准中有一个在很多软件标准中缺失的概念,即一种治疗方法在它成为标准之前应该是被证明有效的并且它的副作用应该被人们所了解。

如果软件标准包含了像医疗和制药标准中功效、剂量显示、已知危险、潜在副作用等类似的信息,那么就可以宣称软件接近真正的专业状态了。