The use of model driven engineering software in large applications
At the 2017 IEEE International Conference on Software Quality, Reliability and Security, ASML reported on a study of applying metrics to their large set of models for accessing the quality of the models. The study involved interviewing various engineers who work with Verum’s Analytical Software Design (ASD) tooling for model driven engineering on a daily basis. It retrieved metrics from 615 model (348 interface models and 267 component models) gathered from 4 different projects over 7 years with a total of more than 660K lines of generated and deployed C++ code. Using the ASD tools, the models can be formally verified and corresponding source code can be generated from those models.
Related: The origin of Dezyne’s automatic verification technology – Analytical Software Design
The paper takes both the notion of McBabe’s Cyclomatic Complexity metric (CC) and Halstead metrics, and adopts them for a model based approach. The Cyclomatic Complexity is an indication of the number of independent path in the code, whereas Halstead metrics measure the cognitive load of a program which is the mental effort to understand the program.
High quality of complex models
Applying these metrics to the total set of models shows that the overall quality of the models at ASML is high. Only 4.4% have a high Actual Cyclomatic Complexity and 11.4% have a high volume (V), one of Halstead metrics, indication a high metal load. The team of one of the projects planned to refactor these complex models. As for the new projects, they frequently check the metric in order to address any issue early on, hereby further improving on the overall quality of the models with respect to understanding, developing, and maintaining.
Related: Why model driven software engineering is the future of software development
A.A.H. Osaiweran, J. Marincic and J.F. Groote. Assessing the quality of tabular state machines through metrics. In the proceedings of the 2017 IEEE International Conference on Software Quality, Reliability and Security. Prague, Czech Republic, pages 426-433, IEEE, 2017.