572
Copyright © 2013, IGI Global. Copying or distributing in print or electronic forms without written permission of IGI Global is prohibited.
Chapter 20
INTRODUCTION
In traditional, non-model-driven software de-velopment the link between the code and higher level design models is not formal but intentional. Required changes are usually addressed manually
using the given modeling language. Because of the manual adaptation the maintenance effort is not optimal and as such sooner or later the design models become inconsistent with the code since changes are, in practice, defined at the code level. One of the key motivations for introducing
Ersin Er
Hacettepe University, Turkey
Bedir Tekinerdogan
Bilkent University, Turkey
MoDSEL:
Model-Driven Software
Evolution Language
ABSTRACT
Model-Driven Software Development (MDSD) aims to support the development and evolution of soft-ware intensive systems using the basic concepts of model, metamodel, and model transformation. In parallel with the ongoing academic research, MDSD is more and more applied in industrial practices. Like conventional non-MDSD practices, MDSD systems are also subject to changing requirements and have to cope with evolution. In this chapter, the authors provide a scenario-based approach for documenting and analyzing the impact of changes that apply to model-driven development systems. To model the composition and evolution of an MDSD system, they developed the so-called Model-Driven Software Evolution Language (MoDSEL) which is based on a megamodel for MDSD. MoDSEL includes explicit language abstractions to specify both the model elements of an MDSD system and the evolution scenarios that might apply to model elements. Based on MoDSEL specifications, an impact analysis is performed to assess the impact of evolution scenarios and the sensitivity of model elements. A case study is provided to show different kind of evolution scenarios and the required adaptations to model elements.
573
MoDSEL
model-driven software development (MDSD) is the need to reduce the maintenance effort and as such support evolution. MDSD aims at achiev-ing this goal through definachiev-ing model elements as first class abstractions, and providing automated support using model transformations. For a given change requirement the code is not changed manu-ally but automaticmanu-ally generated or regenerated, thereby substantially reducing maintenance effort. Further, because of the formal links between the models and the code the evolution of artefacts in the model-driven development process is syn-chronized. The link between the code and models is formal. In fact, there are only models, and as such, ‘the documentation is the code’. Research on MDSD is continuing to improve the expres-siveness of the three key abstractions of model, metamodel and transformation (Kleppe, 2008). As such even better and more automated support to cope with changing requirements and as such to provide reuse, portability, interoperability, and maintenance. Because of the promising benefits for development and evolution, MDSD is more and more applied in industrial projects (Häst-backa, 2011; Fieber, 2009; Maurmaier, 2008). Albeit, MDSD provides from one perspective better support for evolution, it also introduces new dimensions and challenges for software evolution (Visser, 2007; Briand, 2003). Like conventional code, models, metamodels and transformations might be subject to changing requirements and as such require to evolve in due time. Moreover, changes to the metamodels and transformations might render the terminal models invalid.
The software evolution problem in MDSD needs to address different challenges. One of the initial and key issues in considering evolution in MDSD is the impact of changes to the existing systems. To understand evolution in MDSD we have provided a megamodel, that consists of both a model for MDSD, the model for adapting model elements, and the model for scenarios that reflect the evolution process. Based on the megamodel we propose a scenario-based approach for analyzing
the impact of changes that apply to model-driven development systems. For modeling the required changes we define the notion of so-called evolution
scenario, which is defined as a description of the
need for changes due to concerns of stakeholders. The concept evolution scenario has been inspired from the method called Scenario-based Analysis of Software Architecture that focuses on a more general use of scenarios (Kazman, 1996). Each evolution scenario will usually have an impact on the MDSD system and require changes to the models, metamodels or transformations.
To provide automated support for both docu-menting and analysis of evolution scenarios on MDSD projects we have developed the so-called domain-specific Model-Driven Software Evolu-tion Language (MoDSEL). MoDSEL includes explicit language abstractions to specify model elements and evolution scenarios that apply to model elements. Based on MoDSEL specifica-tions an impact analysis is provided to measure the impact of evolution scenarios and the sensi-tivity of model elements to the given evolution scenarios. We have supported the analysis process with a set of metrics (Fenton, 1997) that measure the impact of the defined scenarios as well as the sensitivity of each model element with respect to these scenarios. Once the system and the scenarios are modeled the metric values are automatically generated. The result of the measurement based on these metrics can support the decision in the design and refactoring of the system.
A case study for web-based conference man-agement is used to show different kind of evolu-tion scenarios and the required adaptaevolu-tions to model elements. The scope of our study includes the evolution in forward engineering that aims to derive concrete implementation from higher level abstractions. We do not consider evolution in reverse engineering projects.
The remainder of the chapter is organized as follows: In the second section we describe the ex-ample case of web-based conference management system. The third section defines the megamodel
21 more pages are available in the full version of this document, which may
be purchased using the "Add to Cart" button on the publisher's webpage:
www.igi-global.com/chapter/modsel-model-driven-software-evolution/71833
Related Content
Handling of Software Quality Defects in Agile Software Development
Jörg Rech (2009). Software Applications: Concepts, Methodologies, Tools, and Applications (pp. 242-265).
www.irma-international.org/chapter/handling-software-quality-defects-agile/29392/
The Multi-Agents Architecture for Emotion Recognition: Case of Information Retrieval System Mohamed Néji, Ali Wali and Adel M. Alimi (2014). International Journal of Software Innovation (pp. 73-85).
www.irma-international.org/article/the-multi-agents-architecture-for-emotion-recognition/111451/
Computer Assisted Methods for Retinal Image Classification
S. R. Nirmala and Purabi Sharma (2015). Intelligent Applications for Heterogeneous System Modeling and
Design (pp. 232-255).
www.irma-international.org/chapter/computer-assisted-methods-for-retinal-image-classification/135888/
Estimation of Factor Scores of Impressions of Question and Answer Statements
Yuya Yokoyama, Teruhisa Hochin and Hiroki Nomiya (2013). International Journal of Software Innovation
(pp. 53-66).
www.irma-international.org/article/estimation-of-factor-scores-of-impressions-of-question-and-answer-statements/89775/
Preference Coalition Formation Scheme for Buyer Coalition Services with Bundles of Items Laor Boongasame and Dickson K. W. Chiu (2012). International Journal of Systems and Service-Oriented
Engineering (pp. 67-84).
www.irma-international.org/article/preference-coalition-formation-scheme-for-buyer-coalition-services-with-bundles-of-items/78918/