Experimentation to Evaluate the Benefits of Model Driven Development
Abstract
Model Driven Development (MDD) is a software engineering approach in which the code of a software product is generated and evolutionated from conceptual models that abstractly represents the system. For nearly two decades, the scientific community has described many of the advantages of MDD over other approaches. Despite the benefits of MDD, its use in real practical developments is merely anecdotal.
To understand why MDD has not replaced other software engineering approaches, I have conducted an empirical investigation through three controlled experiments. The first experiment aims to clarify whether the benefits of MDD compared to code-centric development (CcD) match the reality of development in real environments. In the second experiment, I compare engineers’ assessment of the models they develop with the usefulness of these models to be used in MDD contexts. In the third experiment, I analyze the performance of software professionals in maintenance tasks in MDD contexts.
Our results confirm the benefits of MDD over other approaches; however, the intention to use MDD does not reach maximum values. Subjects underestimate the potential of the models they develop and use in MDD contexts. The adoption problem seems to be linked to human factors, not to technical factors.
