Sixth and Red River Software is pleased to announce the release of MetricsReloaded 0.8. MetricsReloaded is a plugin to IntelliJ IDEA which calculates and displays a large number of source code metrics for any IDEA project. MetricsReloaded is designed for use in project tracking, quality assurance, and developer training. Over 250 metrics are currently available at the project, module, package, class, and method levels. Metrics can be sorted, graphed, compared with previous metrics runs, and exported to file. Additionally, MetricReloaded offers detection, display, and visualization of class and package dependency cycles, and calculates a variety of graph-theoretic metrics for each cycle. MetricsReloaded is available via the Plugin Manager.
MetricsReloaded 0.8 is only supported against the EAP 6.0 (Demetra) versions of IDEA. ith metrics values. Metrics values can be sorted on any column, saved as a snapshot file, compared with values from a previous snapshot file, or exported to a comma-separated value (.csv) file. By right-clicking on a column, that metric's values may be displayed in a histogram, distribution graph, or pie chart (if appropriate). It should all be pretty obvious.
Metrics Currently Supported:
Running MetricsReloaded from the command line
Metrics may be calculated as a command-line process and saved to an XML file. The command-line
syntax is as follows:
idea metrics ]]>
Finding class and package dependency cycles using MetricsReloaded:
MetricsReloaded can create reports of class or package dependency cycles in a project. Simply select "Show Package Cycles..." or "Show Class Cycles..." under the "Analyze" menu. A small popup will ask whether test code should be included in the analysis, and whether (for class dependency cycles) inner classes should be considered separately or together with their outer classes. After analyzing the project, a report window will be generated, describing the mutually dependent sets of classes or packages found, and showing certain graph-theoretic metrics for each of the cycle's complexity. Class and package cycles are known "code smells", indicating a probably weakness in the project's design and higher costs to understand or modify the code. While the topological metrics calculated for each dependency cycle have a variety of interesting mathematical properties, basically all you need to know is that any of them are over three or so the cycle is going to be a major pain in the ass to refactor. For further insight into a dependency cycle's structure, click on the cycle's row and select "Show dependency graph". A small visualization of the dependencies and their strengths will be displayed.
Changes since 0.7:
More than 20 new metrics, including LCOM, RFC, leaf and root class counts, and counts of JDK1.5 enum and annotation classes.
Standardization of scope/profile selection dialog with "Inspection code..." dialog, allowing use of named scopes and removing the need to view the profile dialog if no changes are needed.
Integration with Demetra build server
Project dashboard display
Greatly enhanced cycle-graph functionality
History and trend analysis
MetricsReloaded is open-source software (with the source code included in the distribution) released under the Apache-2.0 license, included in the distribution. The graphing functionality of MetricsReloaded is provided by the open source JFreeChart library (www.jfree.org). JFreeChart is available under the GNU Lessser General Public License,a copy of which is included with the MetricsReloaded distribution. Any redistribution of MetricsReloaded or JFreeChart is expected to follow the letter and spirit of that license.The graph visualization functionality of MetricsReloaded is provided by the Jung graph visualization library. Jung is available under the BSD License. Any redistribution of MetricsReloaded or Jung is expected to follow the letter and spirit of that license. More information about Jung is available at jung.sourceforge.net. Jung depends on the Apache common-collections library for it's internal data models. commons-collections is released under the Apache License. Any redistribution of MetricsReloaded or common-collections is expected to follow the letter and spirit of that license. More information about the commons-collection library is available at http://jakarta.apache.org/commons/collections. All other rights, including copyrights to the source and the MetricsReloaded trademark are reserved by Sixth and Red River Software.