Modularizing Triple Graph Grammars Using Rule Refinement

Model transformation plays a central role in Model-Driven Engineering. In application scenarios such as tool integration or view specification, bidirectionality is a crucial requirement. Triple Graph Grammars (TGGs) are a formally founded, bidirectional t

  • PDF / 497,824 Bytes
  • 15 Pages / 439.363 x 666.131 pts Page_size
  • 75 Downloads / 262 Views

DOWNLOAD

REPORT


Abstract. Model transformation plays a central role in Model-Driven Engineering. In application scenarios such as tool integration or view specification, bidirectionality is a crucial requirement. Triple Graph Grammars (TGGs) are a formally founded, bidirectional transformation language, which has been used successfully in various case studies from different applications domains. In practice, supporting the maintainability of TGGs is a current challenge and existing modularity concepts, e.g., to avoid pattern duplication in TGG rules, are still inadequate. Existing TGG tools either provide no support at all for modularity, or provide limited support with restrictions that are often not applicable. In this paper, we present and formalize a novel modularity concept for TGGs: Rule refinement, which generalizes existing modularity concepts, solves the problem of pattern duplication, and enables concise, maintainable specifications. Keywords: model transformation, triple graph grammars, modularity.

1

Introduction and Motivation

Model-Driven Engineering (MDE) is an established, viable means of coping with the increasing complexity of modern software systems, promising an increase in productivity, interoperability and a reduced gap between problem and solution domains. Model transformation plays a central role in MDE and bidirectionality is often a crucial requirement especially in application scenarios that require model synchronization such as tool integration and view specification [3]. Triple Graph Grammars (TGGs) [9] are a rule-based, formally founded technique of specifying a consistency relation between models in a source and target domain, which allows for bidirectional model transformation. TGG rules consist of patterns representing the precondition and postcondition of a change to a model and are fully declarative, i.e., no control flow or similar constructs can be used to specify exactly how the change should be realized. In contrast to, e.g., programmed graph transformations, TGGs, therefore, require a rule structuring mechanism to avoid redundancy, i.e., identical patterns in multiple rules. When TGGs with a considerable number of rules are required, supporting productivity and maintainability becomes crucial. S. Gnesi and A. Rensink (Eds.): FASE 2014, LNCS 8411, pp. 340–354, 2014. c Springer-Verlag Berlin Heidelberg 2014 

Modularizing Triple Graph Grammars Using Rule Refinement

341

As initially presented by Klar et al. [7], a viable means of addressing these challenges is to avoid pattern duplication in TGG rules by reusing rule fragments. Existing modularity concepts [7,5], however, pose strong restrictions on the way rules can be reused. Examples for such restrictions include: (i) that the context of a basis rule (the rule to be reused by refining it appropriately) can only be extended but not changed, and (ii) a lack of support for multiple basis rules. Our observation is that these restrictions are too strong and thus prevent reuse in many cases, especially in combination with the limited support for modu