代码度量标准的评估

时间:2009-12-03 07:46:26

标签: software-quality code-metrics

关于代码指标的讨论很多(例如:What is the fascination with code metrics?)。我(作为软件开发人员)对这些指标非常感兴趣,因为我认为他们可以帮助人们编写更好的代码。至少它们在寻找需要重构的代码区域方面很有帮助。

但是,我想知道的是以下内容。是否对这些源代码度量标准进行了一些评估,证明它们确实与错误率或方法的可维护性相关。例如:具有非常高的圈复杂度的方法是否真的比复杂度低的方法引入更多错误?或者具有高难度级别(Halstead)的方法是否真的需要比具有低难度的方法更多的维护它们?

也许有人知道这方面的一些可靠的研究。

非常感谢!

5 个答案:

答案 0 :(得分:2)

好问题,没有直接答案。

的研究论文可以显示例如圈复杂度和错误之间的关系。问题是大多数研究论文都不是免费提供的。

我找到了以下内容:http://www.pitt.edu/~ckemerer/CK%20research%20papers/CyclomaticComplexityDensity_GillKemerer91.pdf。虽然它显示了圈复杂度和生产率之间的关系。然而,它有一些参考其他论文,值得尝试谷歌他们。

答案 1 :(得分:1)

看看this article from Microsoft research。总的来说,我怀疑微软的发展智慧,但他们确实有资源能够对大型产品进行长期研究。参考文章讨论了他们在各种指标和项目缺陷率之间发现的相关性。

答案 2 :(得分:1)

最后,我确实找到了一些关于软件指标与错误率之间相关性的论文,但这些都不是我真正想要的。大多数论文都已过时(80年代末或90年代初)。

我认为开始分析当前的软件是个不错的主意。在我看来,应该可以调查一些普通的开源系统。源代码是可用的(我认为更重要的是)许多项目使用问题跟踪器和某种版本控制系统。可能在版本控制系统的日志和问题跟踪器之间找到一个强大的链接。这将导致分析某些软件指标与错误率之间关系的非常有趣的可能性。

也许还有一个项目完全按照我上面的描述进行。有人知道这样的事吗?

答案 3 :(得分:1)

答案 4 :(得分:0)

我们对着名的Chidamber和Kemerer面向对象指标的错误预测功能进行了实证研究。事实证明,当我们应用适当的机器学习模型时,这些组合的指标可以预测错误,准确率高于80%。如果您有兴趣,可以在以下论文中准备好完整的学习:

"用于故障预测的开源软件的面向对象度量的经验验证。在IEEE Transactions on Software Engineering,Vol。 2005年10月31日第10期,第897-910页。"