Software Metrics Tools
Software analysis generally extracts arbitrary properties of software source code. General or custom analyses of software can be implemented using DMS.
Software metrics are a special kind of analysis focused on the structure of the source code. Classic software metrics range in variety from the very simple Source Lines of Code (SLOC) to more complex measures such as Cyclomatic Complexity measurements. Typical metrics report provide details on individual modules and summaries for subsystems. Such metrics are widely used to judge the quality of source code, enabling a software organization to more effectively focus its attention on the lower-quality portions of their portfolio. A typical SD metrics report can be seen for Java.
The advantages of classical Metrics tools are:
- Wide acceptance of basic value of metrics
- Unbiased assessment of source code quality
- Repeatability of measurements
- Ease of measurement
- Ability to judge progress in enhancing quality by comparing before and after assessments
Software metrics are necessarily computed on the structure of the source code. This means metrics must be extracted from a parse of the program text. All of SD's Metrics tools use DMS's ability to parse large scale software systems, and are based on the language definition modules used to drive DMS for large scale software reengineering tasks.
SD's metrics tools are presently available on Windows 7, Vista, XP, and 2000.
Available Metrics Tools
SD offers a family of language-specific metrics tools based on DMS:
Each of the language-specific metrics tools provides standard metrics down to the level of methods or procedures, and summary rollups of larger units such as classes, files and (directory) subsystems.Download an evaluation version
SD also provides basic metrics for a much wider variety of languages, via the Source Code Search Engine. These metrics are computed at the file and directory subsystem level, across multiple languages. This is effective for obtaining metrics across very large application systems.
For a rather interesting measure, see our CloneDR tool/service for detecting the amount of redundant code in source code (high redundancy implies poor quality, hard-to-maintain code). Similarly, SD can provide tools and services related to detecting dead code.
Semantic Designs can build custom Metrics tools for:
- Unusual languages or dialects
- Different metric models
- Metrics across language boundaries
Your organization can also build your own custom tools based on DMS.
Automated Remediation of Poor Quality Software
Reported metrics with "good" values are one class of confirmation of software quality. Metrics with "bad" values are indications that some remedial action should probably be taken. Virtually all metrics tools (and most reverse engineering tools in general) are limited to simply reporting.
SD's DMS techology can be brought to bear to automate, within limits, activities to enhance software quality defined by metrics. As an example, the CloneDR service can not only report on duplicate code, but can actually remove certain types automatically. Inquire about custom services for enhancing software quality.