您将如何衡量大型项目中的代码"质量"

ask*_*ves 9 software-quality

我正在做一个相当大的项目,几年的制作,在一家大公司,我正在承担推动更好的整体代码质量的任务.

我想知道在这种情况下您将使用什么样的指标来衡量质量和复杂性.我不是在寻找绝对的措施,而是一系列可以随着时间的推移而改进的项目.鉴于这是一个跨越数百个项目的宏观操作(我已经看到一些问题涉及更小的项目),我正在寻找更自动化和整体性的东西.

到目前为止,我有一个如下所示的列表:

  • 全功能测试期间的代码覆盖百分比
  • BVT故障的反复出现
  • 依赖图/分数,基于nDepend等工具
  • 构建警告的数量
  • 发现/抑制的FxCop/StyleCop警告的数量
  • "catch"语句的数量
  • 手动部署步骤数
  • 项目数量
  • 代码/项目的百分比"死",如在任何地方都没有引用
  • 代码审查期间的WTF数量
  • 总代码行,可以按层分类

Dio*_*lis 6

您应该围绕六个主要的软件质量特征组织您的工作:功能,可靠性,可用性,效率,可维护性和可移植性.我在网上写了一个描述这些特征的图表.然后,为每个特征决定您想要并能够跟踪的最重要的指标.例如,一些指标,如Chidamber和Kemerer的指标适用于面向对象的软件,而其他指标,如圈复杂度则更为通用.


Tru*_*ill 1

圈复杂度是一个不错的“质量”指标。不过,我确信如果它是唯一的指标,开发人员可以找到一种方法来“游戏”它!:)

然后是CRAP指标......

PS NDepend有大约 100 亿个指标,因此可能值得一看。另请参阅Reflector 的CodeMetrics

噢!我刚刚注意到您已经提到了 NDepend。

跟踪报告的错误数量也很有趣......