Reusable Idioms and Patterns in Graph Transformation Languages (original) (raw)
Related papers
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.
Supporting Design Patterns in Graph Rewriting-based Model Transformation
2007
Model transformations appear in many, different situations in a model-based development process. A few representative examples are as follows: refining the design to implementation, aspect weaving, analysis, and verification. In object-oriented software design, design patterns describe simple and elegant solutions to specific problems. Similarly, design pattern should be identified in model transformations as well to support the frequently appearing problems. This paper introduces the design pattern support of a modelling and model transformation framework (Visual Modeling and Transformation System). Furthermore, we discuss two model-based development related design patterns.
Graph transformation for specification and programming
Science of Computer Programming, 1999
The framework of graph transformation combines the potentials and advantages of both, graphs and rules, to a single computational paradigm. In this paper we present some recent developments in applying graph transformation as a rule-based framework for the specification and development of systems, languages, and tools. After reviewing the basic features of graph transformation, we discuss a selection of applications, including the evaluation of functional expressions, the specification of an interactive graphical tool, an example specification for abstract data types, and the definition of a visual database query language. The case studies indicate the need for suitable structuring principles which are independent of a particular graph transformation approach. To this end, we present the concept of a transformation unit, which allows systematic and structured specification and programming based on graph transformation.
Advances in model transformations by graph transformation: specification, execution and analysis
Rigorous software engineering for service-oriented systems, 2011
Model transformations are a core technology of today's model-driven software development processes. Graph transformations provide a state-of-the-art formalism to specify and execute such transformations in practice. This was the case in the Sensoria project, where graph transformations have been used as enabling technology in a number of applications, as well as the basis of research in many topics. In this chapter, we overview the research results that have been achieved in the theory and practice, concentrating on three key areas:(i) the ...
Towards Translating Graph Transformation Approaches by Model Transformations
2006
Recently, many researchers are working on semantics preserving model transformation. In the field of graph transformation one can think of translating graph grammars written in one approach to a behaviourally equivalent graph grammar in another approach. In this paper we translate graph grammars developed with the GROOVE tool to AGG graph grammars by first investigating the set of core graph transformation concepts supported by both tools. Then, we define what it means for two graph grammars to be behaviourally equivalent, and for the regarded approaches we actually show how to handle different definitions of both -application conditions and graph structures. The translation itself is explained by means of intuitive examples.
From graph transformation to software engineering and back
2005
Software engineers usually represent problems and solutions using graph-based notations at different levels of abstractions. These notations are often semi-formal, but the use of graph transformation techniques can support reasoning about graphs in many ways, and thus can largely enhance them. Recent work indicates many applications of graph transformation to software engineering and opens new research directions.
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.
Tutorial introduction to graph transformation: a software engineering perspective
2004
As a basic introduction to graph transformation, this tutorial is not only intended for software engineers. But applications typical to this domain, like the modeling of component-based, distributed, and mobile systems, model-based testing, and diagram languages provide well-known examples and are therefore used to give a survey of the motivations, concepts, applications, and tools of graph transformation.
Improving the Usability of a Graph Transformation Language
Electronic Notes in Theoretical Computer Science, 2006
Model transformation tools implemented using graph transformation techniques are often expected to provide high performance. For this reason, in the Graph Rewriting and Transformation (GReAT) language we have supported two techniques: pre-binding of selected pattern variables and explicit sequencing of transformation steps to improve the performance of the transformation engine. When applied to practical situations, we recognized three shortcomings in our approach: (1) no support for the convenient reuse of results of one rewriting step in another, distant step, (2) lack of a sorting capability for ordering the results of the pattern matching, and (3) absence of support for the distinguished merging of results of multiple pattern matches. In this paper we briefly highlight the relevant features of GReAT, describe three motivating examples that illustrate the problems, introduce our solutions: new extensions to the language, and compare the approaches to other languages.
Graph transformations and software engineering: Success stories and lost chances
Journal of Visual Languages & Computing, 2013
Textual as well as visual and diagrammatic notations are essential in software engineering, and are used in many different contexts. Chomsky grammars are the key tool to handle textual notations, and find many applications for textual languages. Visual and diagrammatic languages add spatial dimensions that reduce the applicability of textual grammars and call for new tools. Graph transformation systems have been studied for over 40 years and are a powerful tool to deal with syntax, semantics and transformation of diagrammatic notations. The enormous importance of visual and diagrammatic languages and the strong support that graph transformation provide to the manipulation of diagrammatic notations would suggest a big success of graph transformation in software engineering. Graph transformation systems find their application both as language generating devices and specification means for system evolution, and thus can have many applications in software engineering. In this paper we discuss the main features of graph transformation and how they can help software engineers. We look back to the many attempts to use graph transformations in software engineering in the last 15 years, identify some success stories, and discuss to what extent graph transformation succeeded, when they have not succeeded yet, what are the main causes of failures, and how they can help software engineering in the next 15 years.