【发布时间】:2009-11-21 10:26:59
【问题描述】:
我对代码统计工具很感兴趣。具体来说,我需要获取有关 Java EE 代码的统计信息,但任何代码分析器都可以。我应该开始创建自己的一个吗,还是有一些你用过的项目?
例如。 LOC、类数、库...
你的经验是什么?
【问题讨论】:
标签: java statistics code-analysis metrics evaluation
我对代码统计工具很感兴趣。具体来说,我需要获取有关 Java EE 代码的统计信息,但任何代码分析器都可以。我应该开始创建自己的一个吗,还是有一些你用过的项目?
例如。 LOC、类数、库...
你的经验是什么?
【问题讨论】:
标签: java statistics code-analysis metrics evaluation
正如 jitter 所解释的,Sonar 绝对是您正在寻找的工具。 请注意,此工具使用 JavaNCSS,但从 1.9 版开始,他们有自己的内部工具(称为 SonarSquid),它与 Java 1.5 或 1.6 项目完全兼容。
alt text http://sonar.codehaus.org/wp-content/uploads/2009/05/sonar-squid.jpg
此外,您还可以监控一整套项目。
您可以访问Nemo demo instance 以全面了解该工具!
【讨论】:
我已经用过Metrics Eclipse Plugin。现在它已经过时了,但有许多有趣的指标。
还有StateOfFlow。它支持的指标较少,但似乎并没有那么过时。
【讨论】:
您可以使用JavaNCSS - A Source Measurement Suite for Java,它支持一些基本指标(NCSS、#classes/packages/functions、CCN)。
然后是Sonar,它支持大约 20 多个代码指标和 Clover(您甚至可以使用特殊语言定义自己的指标)
如果这还不够,您可以在 Google 上搜索“java”和“metrics”
【讨论】:
Testability Explorer 是一个收集相当小众统计数据的工具。它在 Java 字节码上运行,提供圈复杂度、可变全局状态和其他一些东西的统计信息。它在 Apache 2.0 许可下免费且开源。
正如我所说,它非常小众,可能不会提供像 LOC 那样容易关联的指标。但是,有趣的是,您可以将运行它的项目与several well known open-source projects 进行比较。这也许会使结果更有用。
我最近使用的另一个工具是SLOCCount。它是一个命令行工具,旨在为包括 Java 在内的许多不同语言提供统计信息。在大型代码库上运行 JavaNCSS 失败后(它抱怨文件太多)我让这个工具运行没有问题,对于一个非常大的代码库(IntelliJ IDEA)。一个不错的功能是它需要很少的可配置性,我什至不必告诉它查找 *.java 文件,它会自动识别不同的语言并报告它们。
SLOCCount 的缺点是如果您运行的是 Windows - 您必须使用 Cygwin 来运行它。
【讨论】:
SD Java Metrics Tool 提供 SLOC、评论计数、Halstead 和圈复杂度数字,直至方法级别以及所有大于该级别的汇总(方法、类、文件、目录...)
SD Java Clone Doctor 分析软件系统中的代码重复,并提供检测到的克隆的完整列表,在大型软件系统中通常为 10-20%。您可以在链接中查看克隆检测报告。
SD Source Code Search Engine 为您的源代码库编制索引,以提供对数百万行代码的快速搜索。作为索引源库的副产品,它为 SLOC、评论计数、Halstead 和 Cyclomatic 数字生成文件级统计信息。它适用于 Java、C# 和许多其他语言。
【讨论】:
你也可以试试JavaDepend,它提供了超过82个指标,CQL(类似SQL)查询代码库使其灵活。
指标视图让您直观地了解 SLOC、复杂性和其他有趣的指标。
【讨论】: