Generic meta-modelling with concepts, templates and mixin layers

Meta-modelling is a key technique in Model Driven Engineering, where it is used for language engineering and domain modelling. However, mainstream approaches like the OMG's Meta-Object Facility provide little support for abstraction, modularity, reusability and extendibility of (meta-)models, behaviours and transformations. In order to alleviate this weakness, we bring three elements of generic programming into meta-modelling: concepts, templates and mixin layers. Concepts permit an additional typing for models, enabling the definition of behaviours and transformations independently of meta-models, making specifications reusable. Templates use concepts to express requirements on their generic parameters, and are applicable to models and meta-models. Finally, we define functional layers by means of metamodel mixins which can extend other meta-models. As a proof of concept we also report on METADEPTH, a multi-level meta-modelling framework that implements these ideas.

[1]  Sibylle Schupp,et al.  Requirement Oriented Programming , 1998, Generic Programming.

[2]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

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

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

[5]  Desmond D'Souza,et al.  Objects, Components, and Frameworks with UML: The Catalysis Approach , 1998 .

[6]  Frank Budinsky,et al.  EMF: Eclipse Modeling Framework 2.0 , 2009 .

[7]  Olivier Barais,et al.  Generic Model Refactorings , 2009, MoDELS.

[8]  Richard F. Paige,et al.  The Epsilon Object Language (EOL) , 2006, ECMDA-FA.

[9]  Arend Rensink Model Driven Architecture - Foundations and Applications, 5th European Conference, ECMDA-FA 2009, Enschede, The Netherlands, June 23-26, 2009. Proceedings , 2009, ECMDA-FA.

[10]  Colin Atkinson,et al.  Rearchitecting the UML infrastructure , 2002, TOMC.

[11]  Alexander A. Stepanov,et al.  Generic Programming , 1988, ISSAC.

[12]  Steffen Zschaler,et al.  On Language-Independent Model Modularisation , 2009, LNCS Trans. Aspect Oriented Softw. Dev..

[13]  Kevin Lano,et al.  Slicing of UML models using model transformations , 2010, MODELS'10.

[14]  Andy Evans,et al.  Aspect-oriented Metamodelling , 2003, Comput. J..

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

[16]  Yannis Smaragdakis,et al.  Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs , 2002, TSEM.

[17]  Juan de Lara,et al.  Deep Meta-modelling with MetaDepth , 2010, TOOLS.

[18]  Antonio Vallecillo,et al.  Objects, Models, Components, Patterns , 2011, Lecture Notes in Computer Science.