【问题标题】:Getting code statistics from big projects从大型项目中获取代码统计信息
【发布时间】:2009-11-21 10:26:59
【问题描述】:

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

例如。 LOC、类数、库...

你的经验是什么?

【问题讨论】:

    标签: java statistics code-analysis metrics evaluation


    【解决方案1】:

    正如 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 以全面了解该工具!

    【讨论】:

    • 这个工具解决OP的问题有点矫枉过正。如果您想在您的开发机器上安装一个 3 层 Web 应用程序,该应用程序依赖于第二个工具来进行实际分析,并摆弄至少两个配置文件 - 然后继续。如果您只是想要一个工具在 60 秒内为您提供 OP 列出的三个标准(以及更多!),请查看 Marcelo 的答案。
    • @Nilzor 我不同意。声纳使用起来非常简单。只需下载 zip,启动它,然后运行分析。当然,它提供了很多信息,比 OP 要求的要多得多。关于 Marcelo 建议的工具,我担心它们太老了,可能无法正确分析 Java 1.5+ 代码(JavaNCSS 工具会出现这种情况,该工具长期与 Java 1.5 不兼容)
    【解决方案2】:

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

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

    【讨论】:

    • 当我将项目导出到指标报告时,StateOfFlow 崩溃。 “没有可用的类型信息包=(我的包)”。已报告的问题将被忽略。该项目已死。
    【解决方案3】:

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

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

    如果这还不够,您可以在 Google 上搜索“java”和“metrics”

    【讨论】:

    • 声纳+1。请注意,JavaNCSS 在 Java 1.5+ 项目中存在一些问题,这就是 Sonar 团队开发自己的工具来替代 JavaNCSS 的原因(这个工具称为 SonarSquid,如果我没记错的话,从 1.9 版开始就嵌入在 Sonar 中)。
    【解决方案4】:

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

    正如我所说,它非常小众,可能不会提供像 LOC 那样容易关联的指标。但是,有趣的是,您可以将运行它的项目与several well known open-source projects 进行比较。这也许会使结果更有用。


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

    SLOCCount 的缺点是如果您运行的是 Windows - 您必须使用 Cygwin 来运行它。

    【讨论】:

      【解决方案5】:

      SD Java Metrics Tool 提供 SLOC、评论计数、Halstead 和圈复杂度数字,直至方法级别以及所有大于该级别的汇总(方法、类、文件、目录...)

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

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

          你也可以试试JavaDepend,它提供了超过82个指标,CQL(类似SQL)查询代码库使其灵活。

          指标视图让您直观地了解 SLOC、复杂性和其他有趣的指标。

          【讨论】:

            猜你喜欢
            • 2016-12-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-02-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多