Implementing QVT-R via semantic interpretation in UML-RSDS
- PDF / 2,692,797 Bytes
- 42 Pages / 595.276 x 790.866 pts Page_size
- 76 Downloads / 171 Views
REGULAR PAPER
Implementing QVT-R via semantic interpretation in UML-RSDS K. Lano1,2 · S. Kolahdouz-Rahimi1,2 Received: 13 January 2020 / Revised: 20 July 2020 / Accepted: 11 August 2020 © The Author(s) 2020
Abstract The QVT-Relations (QVT-R) model transformation language is an OMG standard notation for model transformation specification. It is highly declarative and supports (in principle) bidirectional (bx) transformation specification. However, there are many unclear or unsatisfactory aspects to its semantics, which is not precisely defined in the standard. UML-RSDS is an executable subset of UML and OCL. It has a precise mathematical semantics and criteria for ensuring correctness of applications (including model transformations) by construction. There is extensive tool support for verification and for production of 3GL code in multiple languages (Java, C#, C++, C, Swift and Python). In this paper, we define a translation from QVT-R into UML-RSDS, which provides a logically oriented semantics for QVT-R, aligned with the RelToCore mapping semantics in the QVT standard. The translation includes variation points to enable specialised semantics to be selected in particular transformation cases. The translation provides a basis for verification and static analysis of QVT-R specifications and also enables the production of efficient code implementations of QVT-R specifications. We evaluate the approach by applying it to solve benchmark examples of bx. Keywords Model transformations · QVT-Relations · UML-RSDS · Model transformation semantics · Model transformation tools
1 Introduction Model transformations (MT) are used in model-driven engineering (MDE) to map data of a source model sr c to a target model trg, where the models conform to particular source and target metamodels/languages S L and T L. Transformation specifications (e.g. in QVT-R, ATL or UML-RSDS) typically consist of a collection of transformation rules, each of which is concerned with mapping source elements of one or more S L classes to target elements of one or more T L classes. A unidirectional transformation τ can only be executed in one direction (from S L models to T L models, or from T L models to S L models) whilst a bidirectional transformation (or bx) has both forward τ → and reverse τ ← mappings, Electronic supplementary material The online version of this article (https://doi.org/10.1007/s10270-020-00824-3) contains supplementary material, which is available to authorized users.
B
K. Lano [email protected]
1
King’s College London, London, UK
2
University of Isfahan, Isfahan, Iran
derived from the same transformation specification τ . The reverse mapping operates on models trg of T L to produce models sr c of S L. Bidirectional transformations are not necessarily bijective as functions. Two execution modes can be distinguished for either forward or reverse transformation directions: • Batch-mode execution, where an empty trg (or sr c) model is populated from a sr c (or trg) model in one complete execution. • Incremental-mode exec
Data Loading...