An Open Source Java Metrics Toolset Is Hard to Find

 

I spent many hours looking for a stand-alone open source metrics toolset for Java programs. Unfortunately, I was not able to find a single tool that would fit my (relatively modest) requiremets.

I was looking for a stand-alone tool to calculate the Chidamber Kemerer set of metrics. You can find a description of these metrics here. This is a list of the tools I examined, and the problems I found.

  • LOCC Only provides data on code size (number of lines)
  • JDepend Provides a number of interesting metrics, but not the ones I was looking for.
  • Metrics 1.3.5 Required a very specific version of Eclipse (3.0M8); not a very encouriaging sign. Furthermore, it did not support the RFC and CBO metrics.
  • CCCC It needed some tweaking to be compiled. Appears to be abandoned. Despite some claims on the source code, does not appear to work for Java. Does not calculate RFC and LCOM.
  • BCML Appears to be very slow on larger projects. I could process hsqldb, but not Eclipse, or Ant. Does not provide LCOM values.
  • JMetric Appears to be abandoned since 2000. From the metrics I was looking for, it only provides LCOM.
In the end I settled for a combination of BCML and JMetrics, running on the hsqldb source and executable. (Fortunatelly I had the option to choose the project I could measure.)


Update: 2005.02.15

Fred Grott and Panagiotis Louridas pointed me toward some more tools. These are the other tools, and what I found about them.

  • Dependency Finder
  • Classycle Both tools do dependency analysis between classes, but do not calculate the Chidamber Kemerer metrics.
  • JCSC A lint-like tool. Useful to have but again, does not calculate the metrics I want. Panagiotis recommends Checkstyle for performing these checks.
  • Jeanda Not clear what this tool measures.
  • CEB Calculates the Chidamber Kemerer metrics, but depends on BlueJ.


Update: 2005.03.30

Ayaz Farooq pointed me to the JMT tool, and I also implemented a tool on my own: ckjm.

Comments   Toot! Share


Last modified: Thursday, March 31, 2005 11:49 pm

Creative Commons Licence BY NC

Unless otherwise expressly stated, all original material on this page created by Diomidis Spinellis is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.