Model-Driven Software Refactoring

2009 ◽  
pp. 3455-3488
Author(s):  
Tom Mens ◽  
Gabriele Taentzer ◽  
Dirk Müller

In this chapter, we explore the emerging research domain of model-driven software refactoring. Program refactoring is a proven technique that aims at improving the quality of source code. Applying refactoring in a model-driven software engineering context raises many new challenges such as how to define, detect and improve model quality, how to preserve model behavior, and so on. Based on a concrete case study with a state-ofthe- art model-driven software development tool, AndroMDA, we explore some of these challenges in more detail. We propose to resolve some of the encountered problems by relying on wellunderstood techniques of meta-modeling, model transformation and graph transformation.

Author(s):  
Tom Mens ◽  
Gabriele Taentzer ◽  
Dirk Müller

In this chapter, we explore the emerging research domain of model-driven software refactoring. Program refactoring is a proven technique that aims at improving the quality of source code. Applying refactoring in a model-driven software engineering context raises many new challenges such as how to define, detect and improve model quality, how to preserve model behavior, and so on. Based on a concrete case study with a state-of-the-art model-driven software development tool, AndroMDA, we explore some of these challenges in more detail. We propose to resolve some of the encountered problems by relying on well-understood techniques of meta-modeling, model transformation and graph transformation.


Author(s):  
Ariadi Nugroho

Many studies have been carried out to investigate what makes up good quality software. Some of the early models that define the quality of software come from Boehm (1976) and McCall (1977). Works in this field of quality models have traditionally focused on quality of the final software product. Since the 1970’s models of software have been used and this has recently attracted much attention through the popularity of model-driven software development (MDSD). However, quality of software models has rarely been considered (Lange & Chaudron, 2005). In the software development life cycle, the ability to assure software quality long before the testing phase may save a lot of money since less defects found in the testing phase will mean less effort to be allocated for rework. Currently, the importance of model quality is starting to gain attention from computer scientists. Work in this area has since focused on developing tools, metrics, and frameworks to improve the quality of models that guide implementation, particularly in the context of UML modeling which has become the de facto standard for building object oriented software. Quality of models can be considered from many different perspectives. In this chapter, we will consider the following perspectives: Firstly, is the model complete in the sense that it describes the information that developers need to know about a system? Secondly, we look at the degree in which a model of a system and an implementation correspond. This degree of correspondence indicates to what extent analyses of—or predictions based on the model are valid for the implementation. We present the main findings from case studies into quality of modeling in the software industry as well as findings from a survey amongst professional software developers. We also provide a discussion on the contemporary methods for design quality assessments.


Author(s):  
Ersin Er ◽  
Bedir Tekinerdogan

Model-Driven Software Development (MDSD) aims to support the development and evolution of software 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.


Author(s):  
Esther Guerra ◽  
Juan de Lara ◽  
Paloma Díaz

The goal of this work is to facilitate the task of integrating measurement and redesign tools in modelling environments for Domain Specific Visual Languages (DSVLs), reducing or eliminating the necessity of coding. With this purpose, we have created a DSVL called SLAMMER that includes generalizations of some of the more used types of product metrics and frequent model manipulations, which can be easily customised for any other DSVL in a graphical way. The metric customisation process relies on visual patterns for the specification of the elements that should be measured in each metric type, while redesigns (as well as other actions) can be specified either personalizing generic templates or by means of graph transformation systems. The provided DSVL also allows creating new metrics, composing metrics, and executing actions guided by measurement values. The approach has been empirically validated by its implementation in a meta-modelling tool, which has been used for several DSVLs. In this way, together with the DSVL specification, a SLAMMER model can be provided containing a suite of metrics and actions that will become available in the final modelling environment. In this chapter we show a case study for a notation in the web engineering domain. As ensuring model quality is a key success factor in many computer science areas, even crucial in model-driven development, we believe that the results of this work benefit all of them by providing automatic support for the specification, generation and integration of measurement and redesign tools with modelling environments.


2009 ◽  
pp. 2728-2743
Author(s):  
Anna E. Bobkowska

Successful realization of the model-driven software development visions in practice requires high quality models. This chapter focuses on the quality of models themselves. It discusses context-free and context-dependent quality criteria for models and then moves on to methods of evaluation which facilitate checking whether a model is good enough. We use linguistic theories to understand groups of criteria and their impact on other models, software product and the process of software development. We propose a strict distinction of the impacts of visual modeling languages, models of the system and tools for quality criteria. This distinction is helpful when designing the methods of evaluation and making decision about the point in time, scope and personnel responsible for quality assessment. As the quality criteria and several methods of evaluation has usually been considered separately we propose a methodology which integrates them. Such an integrated approach provides the following benefits. It allows for designing methods of evaluation based on quality criteria and elements of the model (or modeling language) in the context of specific needs. It can be applied for management of the scope of evaluation with quality criteria as well as configuration of the method to a specific situation. It allows for flexible and efficient conduct of the evaluation with selection of the methods of evaluation. Finally, this chapter presents case studies which illustrate the approach.


2015 ◽  
Vol 12 (2) ◽  
pp. 683-705 ◽  
Author(s):  
Jaroslav Porubän ◽  
Michaela Bacíková ◽  
Sergej Chodarev ◽  
Milan Nosál’

Model-driven software development is surrounded by numerous myths and misunderstandings that hamper its adoption. For long, our students were victims of these myths and considered MDSD impractical and only applied in academy. In this paper we discuss these myths and present our experience with devising an MDSD course that challenges them and motivates students to understand MDSD principles. The main contribution of this work is a set of MDSD teaching guidelines that can make the course pragmatic in the eyes of students - programmers. These guidelines introduce MDSD from the viewpoint of a programmer as a pragmatic tool for solving concrete problems in the development process. In our MDSD course we implemented the presented guidelines. The course shows several techniques and principles of model-driven development in multiple incremental iterations instead of concentrating on a single tool. At the same time we unite these techniques by using a dynamic visualisation tool that shows to the students the whole infrastructure in the big picture. The course is implemented as an iterative incremental MDSD case study. The paper concludes with a survey performed with our students that indicates positive results of the approach.


Author(s):  
Sandra Greiner ◽  
Thomas Buchmann

Model transformations constitute the key technology for model-driven software development, a software engineering discipline which became more and more important during the last decade. While tool support for unidirectional batch transformations is rather mature, bidirectional and incremental transformations are only weakly investigated. Nevertheless, several usage scenarios demand for incremental and bidirectional transformations, like round-trip engineering between UML class models and Java source code. This paper presents a bidirectional transformation between UML class models and a Java model which is obtained from Java source code. The transformation is written in QVT Relations, a declarative model transformation language provided by the OMG. While the case study demonstrates that it is possible to specify bidirectional transformations between heterogeneous metamodels in a single relational specification, it also reveals some inherent limitations of the language and the corresponding tool support.


Author(s):  
Guadalupe Ortiz ◽  
Behzad Bordbar

The presented approach draws on two main software techniques: Model-Driven Architecture, and aspect-oriented programming. The method involves modeling of the Quality of Service and Extra-functional properties in a platform-independent fashion. Then applying model transformation, the platform-independent models are transformed into platform-specific models, and finally into code. The code for Quality of Service and Extra-functional properties are integrated into the system relying on aspect-oriented techniques in a decoupled manner. The presented approach is evaluated with the help of a case study to establish that the approach results in increasing the system’s modularity and thus reducing implementation and maintenance costs.


Sign in / Sign up

Export Citation Format

Share Document