Software metrics
for C, C++ and
Java

Software Metrics

Imagix Corp

  

By using software metrics to quantify aspects of your software system, you're able to monitor and improve the productivity and predictability of your development process, as well as the quality of your source code itself.

Imagix 4D generates a series of over 70 source metrics, including the key McCabe complexity measures, several Halstead metrics, and the Chidamber-Kemerer object oriented metrics. Taken as a whole, these provide insight into many aspects of the quantity, quality, complexity and design of your software. You're able to measure development progress, determine where to focus testing efforts, and identify potential downstream maintainance challenges. You can compare the source metrics to specific norms for your organization to insure that the software meets your development criteria. And by tracking the metrics over time, you can measure process improvement, assessing the effectiveness of development process initiatives.

Because the metrics of the tool is integrated with Imagix 4D's code exploration capabilities, you're able to use the metrics information as a launching point as you analyze your software and determine what enhancements and improvements you want to make.


Home
About Imagix
Products
Overview
Visualization
UML Diagrams
Control Flow
Metrics
Quality Checks
HTML Docs
View Sample
Support
Downloads
Related Sites

metrics tool Collecting Software Metrics -- The metric data collected by Imagix 4D measure many different aspects of your code. Overall, more than 70 metrics are generated about your software and its individual symbols, at the file, class, function and variable levels.

Some of the metrics provide gross measures of the scope of your software. Lines of source code and number of statements provide insight about the overall volume of your source code, at the project and file levels. Lines of comments and lines of source code give an indication of the quantity, if not the quality, of commenting being done in the source code.

Other metrics give insight into testability and maintainability of your software. The McCabe cyclomatic and essential complexity metrics and the Halstead complexity measures are most well established of these. These are useful not just in aggregate, but in identifying specific areas in your software which might need redesign or additional testing. The Welker Maintainability Index provides an empirically-derived measure of the maintainability of a given body of source code.

For object-oriented software, there are a number of metrics specifically for classes, including the Chidamber and Kemerer metrics. Class coupling and class cohesion (lack of cohesion of methods) measure the interaction of classes with other classes, and thus provide insight into how well structured your class partitioning is. Response for class, total members of class, and weighted methods measure internal aspects of a given class.

metrics tool Metrics Displays -- The Metrics windows are the primary displays for reviewing and analyzing the extensive set of quantitative measurements that Imagix 4D makes about your software. Within the Metrics windows, you can list, sort, compare and rank all the symbols of a specific type, by whichever set of software metrics you are interested in analyzing. Color coding indicates where a given metric lies with respect to an upper and lower threshold, so you can quickly spot symbols whose metrics lie outside of the norms you've set for your organization.

The software metrics are also integrated in other Imagix 4D displays. Through the information overlays and the symbol panel, you can at any time view the metrics for any symbol displayed anywhere in the tool. Metric data is also displayed in the Graph windows, via color-coding. For example, you might choose to have functions color-coded to indicate their cyclomatic complexity. Then, as you analyze your code, you can spot areas which are problematic with respect to testability or maintainability, and use the dependency information in the Graph windows to determine how best to restructure your code.

By having the metric data integrated with the reverse engineering aspects of Imagix 4D, you're able to leverage your efficiency in both the quality analysis and program understanding tasks.