In a previous post, we have defined a basic set of size and complexity metrics for UML sequence diagrams with SDMetrics. Today, we’ll add a few more sequence diagram metrics that are potentially useful to identify design flaws. I will show how to implement these metrics using the SDMetricsML. 1. Number of “self” messages The… [Continue reading]
Ten Years of UML Design Quality Measurement
SDMetric v1.0 was released on December 1st 2002, 10 years ago on this very day. This calls for immediate celebration! And what better way is there to celebrate than with a bunch of software quality related statistics? So, here we go: SDMetrics Number of major releases: 8 Number of minor releases: 4 Size of first… [Continue reading]
Designing an ‘Agile’ XMI Parser for the UML
SDMetrics is primarily a UML design quality measurement solution. It contains an XMI parser to read UML models from XMI files. The XMI parser has attracted some interest on its own. In this post, I’ll talk a bit about the reasoning behind the design decisions of the XMI parser, and discuss the consequences for practical… [Continue reading]
Measuring the Size and Complexity of UML Sequence Diagrams
Almost all of the UML metrics that SDMetrics calculates “out of the box” are model-centric, not diagram-centric. For example, class metrics count all attributes, associations, operations, etc. of classes. Whether these elements – or the classes themselves – appear on any diagrams does not matter. They are part of the UML model, and that’s what… [Continue reading]
Predicting Fault-Prone Classes with UML Metrics
In this post we’ll have look at Chapter 7 of Ariadi Nugroho’s PhD Thesis “The Effects of UML Modeling on the Quality of Software”. I’ve previously discussed Chapters 5 and 6 of the thesis, which investigate the impact of the level of detail of UML models on system quality. You can download all those chapters… [Continue reading]
The Availability of UML Models for Empirical Research
There are quite a few empirical studies that investigate how the structural properties of a system impact external system quality attributes. For example, what is the relationship between class coupling or complexity to its fault-proneness or maintainability? These studies typically measure structural system properties from source code, which is readily available once the systems under… [Continue reading]
Checking the Layout of UML Diagrams with SDMetrics
In the previous post we have discussed the problem of diagram interchange between UML modeling tools via XMI. Using the example of Altova UModel, we have shown how to customize SDMetrics to extract tool vendor specific diagram information from XMI files. In this post, we will continue with this example and have SDMetrics automatically check… [Continue reading]
Parsing UML Diagram Information from Altova UModel XMI Files
I may have mentioned it before on this blog, but XMI interchange of UML models is notoriously difficult in practice. A major problem of model interchange concerns diagram information: what diagrams are there, which elements appear on the diagrams, and where are they located on the diagram? While the UML model itself often can be… [Continue reading]
The Impact of the Level of Detail in UML Models on System Quality
Software architects create UML models with varying amounts of rigor and detailedness. Some use UML in an informal manner, as a means to communicate architectural or design decisions. Such use often relies only on a small subset of the graphical notation the UML defines, and pays little regard to the semantics. At the other end… [Continue reading]
Checking the Multiplicity of Associations on UML Class Diagrams
A recurring quality issue of UML class diagrams concerns the multiplicity on association ends. Modelers can get the multiplicity wrong, or forget to specify it at all. In his book “Elements of UML 2.0 style”, Scott Ambler suggests to always indicate the multiplicity of associations on all ends, even in apparently obvious cases. This demonstrates… [Continue reading]