A Component Model for Model Transformations

Model-driven engineering promotes an active use of models to conduct the software development process. In this way, models are used to specify, simulate, verify, test and generate code for the final systems. Model transformations are key enablers for this approach, being used to manipulate instance models of a certain modelling language. However, while other development paradigms make available techniques to increase productivity through reutilization, there are few proposals for the reuse of model transformations across different modelling languages. As a result, transformations have to be developed from scratch even if other similar ones exist. In this paper, we propose a technique for the flexible reutilization of model transformations. Our proposal is based on generic programming for the definition and instantiation of transformation templates, and on component-based development for the encapsulation and composition of transformations. We have designed a component model for model transformations, supported by an implementation currently targeting the Atlas Transformation Language (ATL). To evaluate its reusability potential, we report on a generic transformation component to analyse workflow models through their transformation into Petri nets, which we have reused for eight workflow languages, including UML Activity Diagrams, YAWL and two versions of BPMN.

[1]  Liliana Favre,et al.  Formalizing MDA Components , 2006, ICSR.

[2]  Olivier Barais,et al.  Reusable model transformations , 2012, Software & Systems Modeling.

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

[4]  Werner Retschitzegger,et al.  Reusing Model Transformations across Heterogeneous Metamodels , 2012, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[5]  Iris Groher,et al.  Handling Variability in Model Transformations and Generators , 2007 .

[6]  Guido Wachsmuth,et al.  Metamodel Adaptation and Model Co-adaptation , 2007, ECOOP.

[7]  Juan de Lara,et al.  A Visual Specification Language for Model-to-Model Transformations , 2010, 2010 IEEE Symposium on Visual Languages and Human-Centric Computing.

[8]  Jaakko Järvi,et al.  A comparative study of language support for generic programming , 2003, OOPSLA 2003.

[9]  Juan de Lara,et al.  Flexible Model-to-Model Transformation Templates: An Application to ATL , 2012, J. Object Technol..

[10]  Gerti Kappel,et al.  Automated verification of model transformations based on visual contracts , 2013, Automated Software Engineering.

[11]  Wil M. P. van der Aalst,et al.  Workflow Patterns , 2003, Distributed and Parallel Databases.

[12]  Kung-Kiu Lau,et al.  Software Component Models , 2006, IEEE Transactions on Software Engineering.

[13]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[14]  Uwe Aßmann,et al.  Role-based generic model refactoring , 2010, MODELS'10.

[15]  Juan de Lara,et al.  From types to type requirements: genericity for model-driven engineering , 2011, Software & Systems Modeling.

[16]  Jeff Magee,et al.  The Koala Component Model for Consumer Electronics Software , 2000, Computer.

[17]  Lu Zhang,et al.  Applying OO Metrics to Assess UML Meta-models , 2004, UML.

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

[19]  Paul R. McJones,et al.  Elements of Programming , 2009 .

[20]  Gerti Kappel,et al.  Surveying Rule Inheritance in Model-to-Model Transformation Languages , 2012, J. Object Technol..

[21]  Wouter Joosen,et al.  UniTI: a unified transformation infrastructure , 2007, MODELS'07.

[22]  Rubby Casallas,et al.  MTC Flow: a tool to design, develop and deploy model transformation chains , 2013, ACME@ECOOP.

[23]  Davide Di Ruscio,et al.  A Methodological Approach for the Coupled Evolution of Metamodels and ATL Transformations , 2013, ICMT.

[24]  Deepak Goyal,et al.  A hierarchical model for object-oriented design quality assessment , 2015 .

[25]  Karl J. Lieberherr,et al.  Demeter Interfaces: Adaptive Programming Without Surprises , 2006, ECOOP.

[26]  Peyton Jones,et al.  Haskell 98 language and libraries : the revised report , 2003 .

[27]  Agris Sostaks,et al.  Graphical Template Language for Transformation Synthesis , 2009, SLE.

[28]  Jean-Marc Jézéquel,et al.  Meta-model Pruning , 2009, MoDELS.

[29]  Jesús Sánchez Cuadrado,et al.  Approaches for Model Transformation Reuse: Factorization and Composition , 2008, ICMT@TOOLS.

[30]  Krzysztof Czarnecki,et al.  Feature-based survey of model transformation approaches , 2006, IBM Syst. J..

[31]  Dániel Varró,et al.  Generic and Meta-transformations for Model Transformation Engineering , 2004, UML.

[32]  Juan de Lara,et al.  Umbra Designer: Graphical Modelling for Telephony Services , 2013, ECMFA.

[33]  Jordi Cabot,et al.  Model-Driven Software Engineering in Practice , 2017, Synthesis Lectures on Software Engineering.

[34]  Gerti Kappel,et al.  Reuse in model-to-model transformation languages: are we there yet? , 2013, Software & Systems Modeling.

[35]  Anneke Kleppe,et al.  MCC: A Model Transformation Environment , 2006, ECMDA-FA.

[36]  Richard F. Paige,et al.  Localized model transformations for building large-scale transformations , 2015, Software & Systems Modeling.

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

[38]  A. Vallecillo,et al.  Orchestrating ATL Model Transformations , 2009 .

[39]  Martin Odersky,et al.  Type classes as objects and implicits , 2010, OOPSLA.

[40]  René David,et al.  Petri nets and grafcet - tools for modelling discrete event systems , 1992 .

[41]  Jaakko Järvi,et al.  A comparative study of language support for generic programming , 2003, OOPSLA '03.

[42]  Wang Chiew Tan,et al.  STBenchmark: towards a benchmark for mapping systems , 2008, Proc. VLDB Endow..

[43]  Ákos Horváth,et al.  Workflow-Driven Tool Integration Using Model Transformations , 2010, Graph Transformations and Model-Driven Engineering.

[44]  Sander Vermolen,et al.  An Extensive Catalog of Operators for the Coupled Evolution of Metamodels and Models , 2010, SLE.

[45]  Henry Muccini,et al.  Providing Architectural Languages and Tools Interoperability through Model Transformation Technologies , 2010, IEEE Transactions on Software Engineering.

[46]  Marie-Pierre Gervais,et al.  MDA Tool Components: a proposal for packaging know-how in model driven development , 2007, Software & Systems Modeling.

[47]  Juan de Lara,et al.  Generic Model Transformations: Write Once, Reuse Everywhere , 2011, ICMT@TOOLS.

[48]  Gerti Kappel,et al.  Surviving the Heterogeneity Jungle with Composite Mapping Operators , 2010, ICMT@TOOLS.

[49]  Carl G. Davis,et al.  A Hierarchical Model for Object-Oriented Design Quality Assessment , 2002, IEEE Trans. Software Eng..

[50]  Jianmin Wang,et al.  Verifying workflow processes: a transformation-based approach , 2010, Software & Systems Modeling.

[51]  Sander Vermolen,et al.  Reconstructing Complex Metamodel Evolution , 2011, SLE.

[52]  Gregor Kiczales,et al.  Role-based refactoring of crosscutting concerns , 2005, AOSD '05.

[53]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[54]  Reiko Heckel,et al.  Flexible Interconnection of Graph Transformation Modules , 2005, Formal Methods in Software and Systems Modeling.

[55]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 2: Module Specifications and Constraints , 1990 .

[56]  Davide Di Ruscio,et al.  Coupled Evolution in Model-Driven Engineering , 2012, IEEE Software.

[57]  Ragnhild Van Der Straeten,et al.  Module superimposition: a composition technique for rule-based model transformation languages , 2010, Software & Systems Modeling.

[58]  Esther Guerra,et al.  Specification-Driven Test Generation for Model Transformations , 2012, ICMT@TOOLS.

[59]  Bjarne Stroustrup,et al.  Concepts: linguistic support for generic programming in C++ , 2006, OOPSLA '06.

[60]  Yves Le Traon,et al.  Reusable MDA components: a testing-for-trust approach , 2006, MoDELS'06.

[61]  Krzysztof Czarnecki,et al.  Feature and Meta-Models in Clafer: Mixed, Specialized, and Coupled , 2010, SLE.

[62]  Frédéric Jouault,et al.  Automatically Discovering Hidden Transformation Chaining Constraints , 2009, MoDELS.

[63]  Jesús Sánchez Cuadrado,et al.  Modularization of model transformations through a phasing mechanism , 2009, Software & Systems Modeling.