2009-12-03 114 views
6

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

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

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

非常感谢!

回答

1

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

1

最后我找到了一些关于软件度量和错误率之间相关性的论文,但没有一篇是我真正想要的。大多数报纸已经过时(80年代末或90年代初)。

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

也许还有一个项目在那里,正是我所描述的。有人知道这样的事吗?

0

我们对知名的Chidamber和Kemerer面向对象度量的bug预测功能进行了实证研究。结果表明,当我们应用适当的机器学习模型时,这些指标结合起来可以预测错误的准确率高于80%。如果您有兴趣,可以在以下论文中完成全部研究:

“面向对象的度量标准对开源软件的故障预测的经验验证”IEEE Transactions on Software Engineering,Vol.31,No.10 ,2005年10月,第897-910页。“