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
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.)
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.
Checkstyle for performing
- Jeanda Not clear what this tool measures.
- CEB Calculates the Chidamber Kemerer metrics, but depends on BlueJ.
Ayaz Farooq pointed me to the
tool, and I also implemented a tool on my own: