Declarative Specification of Bidirectional Transformations Using Design Patterns

Bidirectional transformations (bx) are a specific form of model transformation (MT) used in model-driven engineering to maintain consistency between two models, which may change independently. Currently bx are defined using a number of specialized transformation languages, which have had limited uptake due to complex semantics and poor efficiency. In contrast, unidirectional transformation languages such as ATL have been widely adopted, but require separate forward and reverse transformations to be written to address model synchronization requirements. In this paper, we provide declarative specification techniques for bx, systematically constructed using MT design patterns. We define two approaches to declarative bx definition: 1) by automatically bidirectionalizing unidirectional transformation specifications and 2) by developing specification guidelines for the QVT-R standard language to make it more effective for bx in practice. The approaches are evaluated using a large-scale code-generator bx from UML to ANSI C and other examples. Their semantic validity is demonstrated by rigorous arguments.

[1]  Martin Gogolla,et al.  Tractable Model Transformation Testing , 2011, ECMFA.

[2]  Kevin Lano,et al.  Translating UML-RSDS OCL to ANSI C , 2017, STAF Workshops.

[3]  Juan de Lara,et al.  Inter-modelling with patterns , 2011, Software & Systems Modeling.

[4]  Anthony Anjorin,et al.  A Solution to the Flowgraphs Case Study using Triple Graph Grammars and eMoflon , 2013, TTC.

[5]  Holger Giese,et al.  From model transformation to incremental bidirectional model synchronization , 2009, Software & Systems Modeling.

[6]  Juan de Lara,et al.  Engineering model transformations with transML , 2011, Software & Systems Modeling.

[7]  Dirk Deridder,et al.  Realizing Model Transformation Chain interoperability , 2010, Software & Systems Modeling.

[8]  Meng Wang,et al.  Incremental updates for efficient bidirectional transformations , 2011, ICFP '11.

[9]  Hartmut Ehrig,et al.  Triple Graph Grammars in the Large for Translating Satellite Procedures , 2014, ICMT.

[10]  Kevin Lano,et al.  Patterns for Specifying Bidirectional Transformations in UML-RSDS , 2015, ICSEA 2015.

[11]  Alcino Cunha,et al.  Least-change bidirectional model transformation with QVT-R and ATL , 2014, Software & Systems Modeling.

[12]  Eelco Visser,et al.  Code generation by model transformation: a case study in transformation modularity , 2008, Software & Systems Modeling.

[13]  Marcos Didonet Del Fabro,et al.  Transformation as Search , 2013, ECMFA.

[14]  K. Lano,et al.  The UML-RSDS Manual , 2012 .

[15]  Dániel Varró,et al.  Query-based access control for secure collaborative modeling using bidirectional transformations* , 2016, MoDELS.

[16]  Jean Bézivin,et al.  ATL: A model transformation tool , 2008, Sci. Comput. Program..

[17]  Juan de Lara,et al.  Colouring: execution, debug and analysis of QVT-relations transformations through coloured Petri nets , 2012, Software & Systems Modeling.

[18]  Kazutaka Matsuda,et al.  Bidirectionalization transformation based on automatic derivation of view complement functions , 2007, ICFP '07.

[19]  Jordi Cabot,et al.  Feature-based classification of bidirectional transformation approaches , 2014, Software & Systems Modeling.

[20]  Juan de Lara,et al.  Verification and validation of declarative model-to-model transformations through invariants , 2010, J. Syst. Softw..

[21]  Meng Wang,et al.  Combining syntactic and semantic bidirectionalization , 2010, ICFP '10.

[22]  Andy Schürr,et al.  Complex Attribute Manipulation in TGGs with Constraint-Based Programming Techniques , 2012, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[23]  Hui Song,et al.  Synchronizing concurrent model updates based on bidirectional transformation , 2013, Software & Systems Modeling.

[24]  Anthony Cleve,et al.  Bidirectional Transformations in Database Evolution: A Case Study "At Scale" , 2014, EDBT/ICDT Workshops.

[25]  Nicolas Spyratos,et al.  Update semantics of relational views , 1981, TODS.

[26]  Antonio Cicchetti,et al.  JTL: A Bidirectional and Change Propagating Transformation Language , 2010, SLE.

[27]  Houari A. Sahraoui,et al.  Towards Rule-Based Detection of Design Patterns in Model Transformations , 2016, SAM.

[28]  FosterJ. Nathan,et al.  Combinators for bi-directional tree transformations , 2005 .

[29]  Kevin Lano,et al.  Constraint-based specification of model transformations , 2013, J. Syst. Softw..

[30]  Kevin Lano,et al.  A Survey of Model Transformation Design Pattern Usage , 2017, ICMT.

[31]  Antonio Vallecillo,et al.  Static Fault Localization in Model Transformations , 2015, IEEE Transactions on Software Engineering.

[32]  Lambert Meertens,et al.  Designing Constraint Maintainers for User Interaction , 1998 .

[33]  Kevin Lano Agile Model-Based Development Using UML-RSDS , 2016 .

[34]  Thomas Engel,et al.  Solving the FIXML2Code-case Study with HenshinTGG , 2014, TTC@STAF.

[35]  Perdita Stevens,et al.  Bidirectional model transformations in QVT: semantic issues and open questions , 2007, MODELS'07.

[36]  Kevin Lano,et al.  Verified bidirectional transformations by construction , 2016, PAME/VOLT@MODELS.

[37]  Perdita Stevens,et al.  Enforcing QVT-R with mu-Calculus and Games , 2013, FASE.

[38]  Perdita Stevens A Simple Game-Theoretic Approach to Checkonly QVT Relations , 2009, ICMT@TOOLS.

[39]  Alexander Egyed,et al.  Constraint-driven modeling through transformation , 2012, Software & Systems Modeling.

[40]  Wilhelm Schäfer,et al.  Towards Verified Model Transformations , 2006 .

[41]  Kevin Lano,et al.  Model Transformation Semantic Analysis by Transformation , 2015, VOLT@STAF.

[42]  Ralf Lämmel,et al.  Bidirectional Transformations: A Cross-Discipline Perspective , 2009, ICMT@TOOLS.

[43]  Kevin Lano,et al.  Technical Debt in Model Transformation Specifications , 2018, ICMT.

[44]  Luca Roversi,et al.  A Class of Reversible Primitive Recursive Functions , 2016, ICTCS.

[45]  Kevin Lano,et al.  Model-Transformation Design Patterns , 2014, IEEE Transactions on Software Engineering.

[46]  Michael Lawley,et al.  Model Synchronisation: Definitions for Round-Trip Engineering , 2008, ICMT@TOOLS.

[47]  Thomas Buchmann,et al.  The Families to Persons Case , 2017, TTC@STAF.

[48]  Shekoufeh Kolahdouz Rahimi,et al.  EVL+Strace: a novel bidirectional model transformation approach , 2018, Inf. Softw. Technol..

[49]  Holger Giese,et al.  Model Synchronization at Work: Keeping SysML and AUTOSAR Models Consistent , 2010, Graph Transformations and Model-Driven Engineering.

[50]  Hartmut Ehrig,et al.  Model synchronization based on triple graph grammars: correctness, completeness and invertibility , 2012, Software & Systems Modeling.

[51]  Hartmut Ehrig,et al.  Information Preserving Bidirectional Model Transformations , 2007, FASE.

[52]  James Cheney,et al.  Towards a Repository of Bx Examples , 2014, EDBT/ICDT Workshops.

[53]  Dongxi Liu,et al.  Towards automatic model synchronization from model transformations , 2007, ASE.

[54]  Ken Robinson,et al.  Specification statements and refinements , 1987 .

[55]  Richard F. Paige,et al.  The Epsilon Transformation Language , 2008, ICMT@TOOLS.

[56]  Oszkár Semeráth,et al.  Incremental backward change propagation of view models by logic solvers* , 2016, MoDELS.

[57]  Kevin Lano,et al.  A framework for model transformation verification , 2014, Formal Aspects of Computing.