A Contribution to the Specification of Model Transformations with Metamodel Matching Approach

A Contribution to the Specification of Model Transformations with Metamodel Matching Approach

Karima Berramla, El Abbassia Deba, Abou El Hassen Benyamina, Djilali Benhamamouch
Copyright: © 2017 |Pages: 23
DOI: 10.4018/IJISMD.2017070101
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Model-driven engineering (MDE) is a paradigm based on the intensive use of models throughout the life cycle of an application, where model transformation plays an important role. Various model transformation approaches have been proposed, but developers are still faced with the complexity of model transformation specifications. Most of these approaches are based on the specification of transformation rules with a concrete syntax at a low level where the developer must master the transformation language. The question at this level is how to generate a model transformation specification that must be at a very abstract level, independent of any transformation language. This article aims to propose an approach to generate an abstract representation of transformation rules and these are used to produce a source code written in a chosen transformation language. The transformation rules are calculated semi-automatically by using a matching technique on elements of source and target metamodels. This idea is illustrated by different transformation examples.
Article Preview
Top

1. Introduction

Since the software engineering advent, software development has become more and more important in different application domains and evaluates in a fast-growing manner. To face up to this situation, the Object Management Group (OMG) has proposed Model-Driven Engineering (MDE) to solve the problems posed in the software engineering context, such as optimization of development time for computer systems. Consequently, MDE tries to provide an answer to these problems. The model-driven engineering is based on the systematic use of models to automate part of the development process followed by engineers. Also, it's a domain of research in full emergence that considers models as basic elements in the development of computer systems. Thus, MDE proposes for modeling the applications in a high-level abstraction where it places the models in the heart of design process and generates application code from one or more models. It provides concrete solutions to better control the complexity of systems and it focuses to increase interoperability, reusability and migration of models in heterogeneous Applications.

Thus, MDE is based on two important concepts: metamodeling and model transformation. The first one is based on using a metamodeling language for specifying models to define a system at an abstract level. The second concept permits to create and manipulate models in order to automate and reduce the complexity of the development process. MDE was built around the utilization of standards such as MOF, UML/OCL, XMI where literature on these formalisms are quite abundant.

MDE is a generative engineering technique in which models occupy a very important place and must be as consideration sufficiently precise and rich in order to be interpreted or transformed by machines. The system's development process can then be seen as a sequence of model transformations partially ordered, each transformation taking one or more input models and generating one or more output models until an executable code. The concept of model transformation has a principal role in MDE where it automates critical operations in the development of complex systems such as “refinements”, “refactoring” and “code generation”. The automation of these operations can increase the reuse of elements in a project to another that causes economies in terms of effort and time. However, this automation can also introduce an additional risk of error because of erroneous model transformations.

To implement a model transformation, we must pass through two steps: the first one concerns the metamodel definitions and the second one presents the specification of transformation rules. Various model transformation approaches have been proposed and adopted but developers are still faced with the complexity of model transformation specifications. Therefore, the implementation of model transformation requires mastery of a transformation language as well as sufficient knowledge of the metamodels space and models on which the transformation is to be applied. For this purpose, approaches have been taken to help the developer to generate model transformations in a more or less automatic way. Most of these approaches are based on the specification of transformation rules with a concrete syntax at a low level (Varró, 2006; Dolques, 2010). In this context, the generation of transformation rules has been proposed as a solution to automate the model transformation. This solution can be divided into two classes (Dolques, 2010), the first class is based on the metamodel alignment and the second is based on the example’s model where each class can be divided too into several sub-classes.

At this level, a question imposes oneself: how to generate a model transformation specification that must be at a very abstract level independent of any transformation language? This paper aims to propose an approach to generate an abstract representation of transformation rules and these latter are used to produce a source code written in a chosen transformation language. The transformation rules are calculated semi-automatically by using a matching technique on elements of source and target metamodels. The matching technique uses two different similarity functions. This idea is illustrated by transformation examples with different types: endogenous and exogenous transformations.

Complete Article List

Search this Journal:
Reset
Volume 15: 1 Issue (2024)
Volume 14: 1 Issue (2023)
Volume 13: 8 Issues (2022): 7 Released, 1 Forthcoming
Volume 12: 4 Issues (2021)
Volume 11: 4 Issues (2020)
Volume 10: 4 Issues (2019)
Volume 9: 4 Issues (2018)
Volume 8: 4 Issues (2017)
Volume 7: 4 Issues (2016)
Volume 6: 4 Issues (2015)
Volume 5: 4 Issues (2014)
Volume 4: 4 Issues (2013)
Volume 3: 4 Issues (2012)
Volume 2: 4 Issues (2011)
Volume 1: 4 Issues (2010)
View Complete Journal Contents Listing