Today, in a guest post, Juergen Wuest presents us his tool SDMetrics . Read his post to know more about this excellent software design metrics tool for UML!
SDMetrics is a software design quality measurement tool for the UML. It measures structural design properties such as coupling, size, and complexity of UML models. SDMetrics also checks design rules to automatically detect incomplete or incorrect design, and adherence to style guidelines such as circular dependencies or naming conventions.
Design quality measurement
Structural design properties such as complexity are known to have an impact on the quality of the resulting system. For example, high complexity or coupling can lead to increased fault-proneness, and make the system more difficult to maintain. System size is the main driver for development effort. Measures of structural properties are frequently applied to source code. Tools to calculate metrics such as LOC (lines of code) or McCabe’s Cyclomatic Complexity are available for practically every programming language.
SDMetrics applies these principles to UML models. The later a problem is found in the development process, the more expensive it is to fix. Therefore, design quality measurement has the potential to find problems earlier. By measuring the structural properties of their models, software engineers can better focus design reviews and testing efforts on the potentially critical areas that are likely sources of reliability or maintainability problems in their software designs, before they are committed to source code. Measures of design size also support effort estimation, project planning and monitoring.
Customizable design measurement
As shipped, SDMetrics calculates about 120 design metrics and 130 design rules, covering all UML diagram types. However, usage of the UML varies greatly among software organizations, in the level of detail of the models, the types OF diagrams that ARE created, the rigor WITH which the UML IS applied, AND the ways IN which the extension mechanisms OF the UML ARE used.
Therefore, users must be able TO define design measures AND rules OF their own, that ARE tailored TO the way they use the UML IN their development processes. TO this END, SDMetrics provides the “SDMetricsML”, an XML-based DOMAIN-specific LANGUAGE TO define new design metrics AND rules. ALL OF SDMetrics’ inbuilt metrics and rules are defined by means of the SDMetricsML.
Customizable XMI import
SDMetrics uses XMI for model interchange. SDMetrics imports XMI 1.x files with UML1.3/1.4 models, and XMI 2.0/2.1 files with UML 2.x models.
XMI model interchange is notoriously difficult in practice. SDMetrics addresses this problem with a customizable XMI parser which is controlled by XML-based configuration files. For UML tools that use non-standard or proprietary extensions of the UML or XMI, SDMetrics’ XMI import can be easily adapted TO account FOR the idiosyncrasies OF the UML tool.
For MORE information, see www.sdmetrics.com. SDMetrics is a commercial Java application. Academic licenses are available for universities and non-profit organizations. The XMI parser and metrics engine of SDMetrics is open source under the GNU Affero General Public License.