从大项目中获取代码统计信息

时间:2009-11-21 10:27:00

标签: java statistics code-analysis metrics evaluation

我对代码统计工具感兴趣。具体来说,我需要获得有关Java EE代码的统计信息,但任何代码分析器都可以。我应该开始创建自己的一个还是有一些你用过的项目?

离。 LOC,班级数量,图书馆......

你的经历是什么?

7 个答案:

答案 0 :(得分:12)

正如抖动所解释的,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以全面了解该工具!

答案 1 :(得分:5)

我已经使用过Metrics Eclipse Plugin了。它现在已经过时了,但有许多有趣的指标。

也有StateOfFlow。它支持较少的指标,但似乎并没有那么过时。

答案 2 :(得分:4)

您可以使用支持一些基本指标的JavaNCSS - A Source Measurement Suite for Java(NCSS,#classes / packages / functions,CCN)。

然后有Sonar支持大约20多个代码指标和Clover(您甚至可以使用特殊语言定义自己的指标)

如果这还不够,你可以谷歌搜索“java”和“metrics”

答案 3 :(得分:3)

一个收集非常小众统计数据的工具是Testability Explorer。它运行在Java字节代码上,为圈复杂度,可变全局状态和其他一些东西提供统计数据。它是Apache 2.0许可下的免费开源软件。

正如我所说,它非常适合,并且可能不会提供与LOC相关的指标。但是,有趣的是,您可以将运行它的项目与several well known open-source projects进行比较。这可能会使结果更有用。


我最近使用的另一个工具是SLOCCount。它是一个命令行工具,旨在为许多不同语言(包括Java)提供统计信息。在无法在大型代码库上运行JavaNCSS之后(它抱怨文件太多)我使用这个工具运行没有问题,因为代码库非常庞大(IntelliJ IDEA)。一个很好的功能是它只需要很少的可配置性,我甚至不必告诉它查找*.java文件,它会自动识别不同的语言并报告它们。

SLOCCount的缺点是如果你正在运行Windows - 你将不得不使用Cygwin来运行它。

答案 4 :(得分:3)

SD Java Metrics Tool提供SLOC,注释计数,Halstead和Cyclomatic复杂度数字,下至方法级别以及大于该值的所有汇总(方法,类,文件,目录......)

SD Java Clone Doctor分析用于代码复制的软件系统,并提供检测到的克隆的完整列表,在大型软件系统中通常为10-20%。您可以在链接中看到克隆检测报告。

SD Source Code Search Engine索引您的源代码库,以便在数百万行代码中提供闪电般快速的搜索。作为索引源库的副产品,它为SLOC,注释计数,Halstead和Cyclomatic数字生成文件级统计信息。它适用于Java,C#和许多其他语言。

答案 5 :(得分:2)

对于eclipse,您可以尝试Emma(代码覆盖率)和JDepend(设计质量指标)

答案 6 :(得分:2)

您还可以尝试JavaDepend,它提供超过82个指标,并且CQL(SQL like)可以查询代码库使其变得灵活。

公制视图可让您直观地了解SLOC,复杂性和其他无用的指标。​​

Metric View