Download PDF

An Empirical Assessment of the Maintenance Cost in Model-Driven Software Development (Een empirische beoordeling van de onderhoudskosten in modelgedreven software ontwikkeling)

Publication date: 2011-07-13

Author:

Hovsepyan, Aram

Abstract:

The ever increasing complexity of software systems calls for improved development techniques. In this context, two evolutionary methodologies, i.e., Model-Driven Software Development (MDSD) and Aspect-Oriented Software Development (AOSD), seem to be very promising in tackling these complexities. The synergy between these two approaches, known as Aspect-Oriented Modeling (AOM), focuses on providing support for separating concerns at higher levels of abstraction. AOM approaches describe views using general-purpose modeling languages and provide mechanisms for integrating the views. Amongst the advantages of AOM are improved modularization techniques, a raised abstraction level, the use of models as primary development artifacts, automated model-to-model and model-to-code transformations.Unfortunately, most AOM approaches allow solely the use of a general-purpose modeling language (GPML), e.g., UML, for the specification of all concerns. Driven by the industry needs, domain-specific modeling languages (DSML) have started to emerge. Such DSMLs are tailored for a specific domain and provide abstractions that allow one to describe the solution directly in terms of the problem domain. DSMLs are very practical and a number of them becoming accepted throughout the industry. Hence, the combination of heterogeneous concerns each expressed in an optimal DSML has a great potential in the context of existing AOM approaches.Independent from the modeling paradigm used to specify each concern, it is far from obvious which is the more cost efficient development process when transforming the modularized design into implementation. The AOM research community is focusing on delivering techniques that reduce (if not eliminate) the need for lower level aspect-oriented artifacts, such as pointcuts specifications. Most AOM approaches provide means to specify and execute the composition of modularized concerns at the modeling level. The composed model is typically further transformed into an object-oriented implementation as it is the closest match in terms of abstractions used. We refer to this development process as the aspect "disrupting" process. However, it is also possible to use an aspect "preserving" process that preserves the modularization from models to code by targeting aspect-oriented platforms. The choice of the development process seems not to be neutral. Rather, it could have an impact on several directions, such as ease of maintenance, quality of the final product, productivity of the developers, etc.The contribution of this dissertation is threefold. Firstly, we explore the use of domain-specific modeling languages within an AOM approach. We illustrate the feasibility of this idea by relying on existing MDSD cornerstone techniques, standards and tools. As opposed to the explorative nature of our first contribution, our second contribution is a thorough systematic analysis of the cost of maintenance when semi-automatically translating modularized design into code. Based on two empirical user studies we provide evidence that the choice of the development process impacts the cost of maintenance of an existing system. Our studies demonstrate with a statistical significance that the aspect "preserving" process is the preferred alternative in many cases. Finally, an additional contribution is a summary and a list of good practices of how to plan, design, conduct, analyze and reporting empirical investigations of similar nature.