Supporting Design Patterns in Graph Rewriting-based Model Transformation (original) (raw)

Validated model transformation-driven software development

International Journal of Computer Applications in Technology, 2008

Model-driven Software Engineering is one of the most focused research fields. Model processors automatically generate the lower level artefacts. Graph transformation is a widely used technique for model transformations. Especially visual model transformations can be expressed by graph transformations. This paper presents a visual control flow support of the Visual Modelling and Transformation System and discusses the principles of the constraint-driven validated model transformation. The presented approach helps to validate, preserve or guarantee certain model properties not only for individual transformation rules but also for the whole transformation.

Design pattern oriented development of model transformations

Computer Languages, Systems & Structures, 2016

Model-driven engineering (MDE) is considered a well-established software development approach that uses abstraction to bridge the gap between the problem space and the software implementation. In MDE, many problems are solved using model transformation, which is a paradigm that manipulates high-level models to translate, evolve, or simulate them. However, the development of a model transformation for a specific problem is still a hard task. The main reason is the lack of a development process where transformations must be designed before implemented. Design patterns provide experiential reuse to software engineers when faced with recurring problems. Given their various contexts of application, model transformations may also benefit from design patterns. Although several studies have proposed design patterns for model transformation, there is still no accepted common language to express transformation patterns. Therefore, we propose a semi-formal way to describe model transformation design patterns that is independent from a specific transformation language and described in a practical way that is directly implementable by model engineers. This paper presents a catalog of 15 model transformation design patterns. We also demonstrate how it is possible to automatically generate excerpts of a model transformation in various languages given a design pattern. We conducted an initial survey to motivate the need for model transformation design patterns and a user study to validate the methodology we propose to solve problems as model transformations based on design patterns.

Using graph transformation for practical model driven software engineering

Model-driven Software …, 2005

Model transformations are one of the core technologies needed to apply OMG's model driven engineering concept for the construction of real world systems. Several formalisms are currently proposed for the specification of these model transformations. A suitable formalism is based on graph transformation systems and graph transformation rules. The chapter provides an overview about the needed concepts to apply graph transformations in the context of model driven engineering and we show the technical feasibility based on several tools and applications.

Applying a model transformation taxonomy to graph transformation technology

Electronic Notes in Theoretical …, 2006

A taxonomy of model transformations was introduced in [16]. Among others, such a taxonomy can help developers in deciding which language, forma lism, tool or mechanism is best suited to carry out a particular model transformation activity. In this paper we apply the taxonomy to the technique of graph transformation, and we exemplify it by referring to four representative graph transformation tools. As a byproduct of our analysis, we discuss how well each of the considered tools carry out the activity of model transformation.

Towards model transformation design patterns

2005

The use of design patterns in software engineering has already been broadly discussed. This is a good way of capitalizing experience and best practice so as to increase reusability. What is true for Object Oriented Programming should also apply to Model Driven Engineering (MDE) . There are many ways to design a metamodel or a model transformation. MDE would benefit from having a large collection of model transformation design patterns. This paper presents some initial work on the construction of a collection of MDE patterns. MDE patterns cover the design of metamodels, transformations, compositions and other operations on models.

A UML-based Graph Transformation Approach for Implementing Domain-Specific Model Transformations

Software and System Modeling, 2003

This paper introduces a UML-based approach for specifying model transformations. The technique is based on graph transformations, where UML class diagrams are used to represent the graph grammars of the input and the output of the transformations, and the transformations are represented as explicitly sequenced elementary rewriting operations. The paper discusses the visual language designed for the representation of transformation programs and the graph transformation execution engine which implements the semantics of the language.

Graph Transformations on Domain-Specific Models

Software and System Modeling, 2003

In model driven development, model transformations play a crucial role. This paper introduces a new, UML-based approach for the specification and implementation of model transformations. The technique is based on graph transformations, where the transformations are a set of explicitly sequenced elementary rewriting operations. UML class diagrams are used to represent the graph grammars for the input and output graphs. The paper's main contributions are the visual language designed for the representation of transformation programs and the graph transformation execution engine which implements the semantics of the language.

On the use of graph transformations for model refactoring

Model-driven software engineering promotes the use of models and transformations as primary artifacts. Several formalisms can be used for the specification of model transformations. We propose to represent models as graphs, and model transformations as graph transformations. In particular, we focus on the activity of model refactoring, and show how graph transformation theory can provide formal support for this activity. We also show how such support can be implemented in state-of-the-art graph transformation tools such as AGG and Fujaba, and provide two concrete experiments. Critical pair analysis in AGG enables the analysis of dependencies between model refactorings. The round-trip engineering facility of Fujaba enables the automatic generation of code for model refactorings.

The design of a language for model transformations

Software & Systems Modeling, 2006

Model-driven development of software systems envisions transformations applied in various stages of the development process. Similarly, the use of domain-specific languages also necessitates transformations that map domain-specific constructs into the constructs of an underlying programming language. Thus, in these cases, the writing of transformation tools becomes a first-class activity of the software engineer. This paper introduces a language that was designed to support implementing highly efficient transformation programs that perform model-tomodel or model-to-code translations. The language uses the concepts of graph transformations and metamodeling, and is supported by a suite of tools that allow the rapid prototyping and realization of transformation tools.