声称无论使用何种语言,每行代码的错误数量都是不变的基础

Mat*_*t R 12 language-agnostic lines-of-code code-metrics

我听过有人说(尽管我不记得具体是谁)每行代码的错误数量大致不变,无论使用何种语言.什么是支持这一点的研究?

编辑补充:我没有访问它,但显然,作者提出 "提出这样的问题每行代码(LOC)错误的数量是否是用不同的编程语言或程序不一样."

s3c*_*ur3 8

在他的《代码完成》一书中(引自第 2 版)的“开发人员测试”一章中,Steve McConnell 引用了一些跨多种语言的研究:

  • 对于交付的软件,行业平均经验是每 1000 行代码大约有 1-25 个错误。该软件通常是使用大杂烩技术开发的(Boehm 1981、Gremillion 1984、Yourdon 1989a、Jones 1998、Jones 2000、Weber 2003)。有十分之一的错误的情况很少见;超过 10 倍的病例往往不会被报告。(它们可能永远不会完成!)

  • Microsoft 的应用程序部门在内部测试期间每 1000 行代码经历大约 10-20 个缺陷,在发布的产品中每 1000 行代码经历 0.5 个缺陷(Moore 1992)。用于达到此级别的技术是其他类型的协作开发实践中描述的代码阅读技术和独立测试的组合。

  • Harlan Mills 开创了“洁净室开发”的先河,该技术在内部测试期间能够实现低至每 1000 行代码 3 个缺陷的比率,以及已发布产品中每 1000 行代码 0.1 个缺陷的比率(Cobb 和 Mills 1990)。

这些研究的范围从 Java 等高级语言,到 C++ 和 C,一直到汇编。考虑到 Code Complete 作为一门学科对软件工程的巨大影响,我怀疑它是普及这个想法的原因。


Jer*_*fin 6

一个可能的来源是Les Hatton的1995年论文" 计算机编程语言和安全相关系统 ",其中他得出结论,语言选择至少接近于无关紧要,其他因素(主要是所选语言的流畅性)是控制因素.

关于我可以添加的所有内容将是总结各种其他论文,其中给出了单个项目(等)的缺陷率.我已经做了一些观察,并且从未发现语言和缺陷率之间存在相关性,但这并不是说不同语言的缺陷率是不变的(也就是说,它们可能不同,但它们各自之间的变化如此之大语言,我从来没有能够证明有区别).