Facet-oriented Modelling

Models are the central assets in model-driven engineering (MDE), as they are actively used in all phases of software development. Models are built using metamodel-based languages, and so objects in models are typed by a metamodel class. This typing is static, established at creation time, and cannot be changed later. Therefore, objects in MDE are closed and fixed with respect to the class they conform to, the fields they have, and the well-formedness constraints they must comply with. This hampers many MDE activities, like the reuse of model-related artefacts such as transformations, the opportunistic or dynamic combination of metamodels, or the dynamic reconfiguration of models. To alleviate this rigidity, we propose making model objects open so that they can acquire or drop so-called facets. These contribute with a type, fields and constraints to the objects holding them. Facets are defined by regular metamodels, hence being a lightweight extension of standard metamodelling. Facet metamodels may declare usage interfaces, as well as laws that govern the assignment of facets to objects (or classes). This article describes our proposal, reporting on a theory, analysis techniques, and an implementation. The benefits of the approach are validated on the basis of five case studies dealing with annotation models, transformation reuse, multi-view modelling, multi-level modelling, and language product lines.

[1]  Henry Lieberman,et al.  Using prototypical objects to implement shared behavior in object-oriented systems , 1986, OOPLSA '86.

[2]  Esther Guerra,et al.  A Component Model for Model Transformations , 2014, IEEE Transactions on Software Engineering.

[3]  E. Guerra,et al.  [Journal First] A Posteriori Typing for Model-Driven Engineering: Concepts, Analysis, and Applications , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[4]  Holger Giese,et al.  Tool integration at the meta-model level: the Fujaba approach , 2004, International Journal on Software Tools for Technology Transfer.

[5]  Colin Atkinson,et al.  Flexible Deep Modeling with Melanee , 2016, Modellierung.

[6]  Piotr Habela,et al.  Extending OO Metamodels towards Dynamic Object Roles , 2003, CoopIS/DOA/ODBASE.

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

[8]  Brice Morin,et al.  Weaving variability into domain metamodels , 2010, Software & Systems Modeling.

[9]  Fahad Rafique Golra,et al.  Addressing modularity for heterogeneous multi-model systems using model federation , 2016, MODULARITY.

[10]  Max E. Kramer,et al.  View-centric engineering with synchronized heterogeneous models , 2013 .

[11]  Peter Claussen Theories of programming languages , 2000, SOEN.

[12]  Rick Salay,et al.  Lifting model transformations to product lines , 2014, ICSE.

[13]  Wolfgang De Meuter,et al.  A survey on reactive programming , 2013, CSUR.

[14]  Jordi Cabot,et al.  EMF Views: A View Mechanism for Integrating Heterogeneous Models , 2015, ER.

[15]  Alla Sheffer,et al.  Elements of style , 2015, ACM Trans. Graph..

[16]  Bor-Yuh Evan Chang,et al.  Automatic Analysis of Open Objects in Dynamic Language Programs , 2014, SAS.

[17]  Uwe Aßmann,et al.  FRaMED: full-fledge role modeling editor (tool demo) , 2016, SLE.

[18]  Juan de Lara,et al.  Model Transformation Product Lines , 2018, MoDELS.

[19]  Colin Atkinson,et al.  The Essence of Multilevel Metamodeling , 2001, UML.

[20]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[21]  Jordi Cabot,et al.  EMF Profiles: A Lightweight Extension Approach for EMF Models , 2012, J. Object Technol..

[22]  Erik Burger,et al.  View-based model-driven software development with ModelJoin , 2016, Software & Systems Modeling.

[23]  Steffen Zschaler,et al.  A Role-Based Approach towards Modular Language Engineering , 2009, SLE.

[24]  Juha-Pekka Tolvanen,et al.  Domain-Specific Modeling: Enabling Full Code Generation , 2008 .

[25]  Krzysztof Czarnecki,et al.  Verifying feature-based model templates against well-formedness OCL constraints , 2006, GPCE '06.

[26]  Martin Gogolla,et al.  Model transformations? transformation models! , 2006, MoDELS'06.

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

[28]  Colin Atkinson,et al.  On Evaluating Multi-level Modeling , 2017, MODELS.

[29]  Juan de Lara,et al.  When and How to Use Multilevel Modelling , 2014, ACM Trans. Softw. Eng. Methodol..

[30]  Thierry Millan,et al.  Internal Repport Number : IRIT / RR-- 2017 -02-- FR A Dynamic Type System for OCL , 2017 .

[31]  Antonio Ruiz Cortés,et al.  Article in Press G Model the Journal of Systems and Software an Overview of Dynamic Software Product Line Architectures and Techniques: Observations from Research and Industry , 2022 .

[32]  Juan de Lara,et al.  TOTEM: Reconciling multi-level modelling with standard two-level modelling , 2020, Comput. Stand. Interfaces.

[33]  C. Dony,et al.  Prototype-based languages: from a new taxonomy to constructive proposals and their validation , 1992, OOPSLA '92.

[34]  Jordi Cabot,et al.  Conceptual Modelling Patterns for Roles , 2006, J. Data Semant..

[35]  John C. Reynolds Theories of programming languages , 1998 .

[36]  Uwe Aßmann,et al.  DeltaEcore - A Model-Based Delta Language Generation Framework , 2014, Modellierung.

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

[38]  Viviana Bono,et al.  Delegation by object composition , 2011, Sci. Comput. Program..

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

[40]  Richard F. Paige,et al.  The Epsilon Generation Language , 2008, ECMDA-FA.

[41]  Colin Atkinson,et al.  Fundamental Realization Strategies for Multi-view Specification Environments , 2015, 2015 IEEE 19th International Enterprise Distributed Object Computing Conference.

[42]  Colin Atkinson,et al.  Meta-modelling for distributed object environments , 1997, Proceedings First International Enterprise Distributed Object Computing Workshop.

[43]  Colin Atkinson,et al.  Single Underlying Models for Projectional, Multi-View Environments , 2019, MODELSWARD.

[44]  Hartmut Ehrig,et al.  Attributed graph transformation with node type inheritance , 2007, Theor. Comput. Sci..

[45]  Jean Bézivin,et al.  A Practical Approach to Model Extension , 2007, ECMDA-FA.

[46]  Edsger W. Dijkstra,et al.  Selected Writings on Computing: A personal Perspective , 1982, Texts and Monographs in Computer Science.

[47]  Vicente Pelechano,et al.  Autonomic Computing through Reuse of Variability Models at Runtime: The Case of Smart Homes , 2009, Computer.

[48]  Colin Atkinson,et al.  Orthographic Software Modeling: A Practical Approach to View-Based Development , 2009, ENASE.

[49]  Jordi Cabot,et al.  On the verification of UML/OCL class diagrams using constraint programming , 2014, J. Syst. Softw..

[50]  Friedrich Steimann,et al.  On the representation of roles in object-oriented and conceptual modelling , 2000, Data Knowl. Eng..

[51]  Juan de Lara,et al.  Towards the Systematic Construction of Domain-Specific Transformation Languages , 2014, ECMFA.

[52]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[53]  Richard F. Paige,et al.  The Design of a Conceptual Framework and Technical Infrastructure for Model Management Language Engineering , 2009, 2009 14th IEEE International Conference on Engineering of Complex Computer Systems.

[54]  Giancarlo Guizzardi,et al.  Multi-level Conceptual Modeling: From a Formal Theory to a Well-Founded Language , 2018, ER.

[55]  Martin Odersky,et al.  Scala Roles - A Lightweight Approach Towards Reusable Collaborations , 2008, ICSOFT.

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

[57]  Lidia Fuentes,et al.  VML* - A Family of Languages for Variability Management in Software Product Lines , 2009, SLE.

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

[59]  Esther Guerra,et al.  Specification-driven model transformation testing , 2015, Software & Systems Modeling.

[60]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[61]  Douglas C. Schmidt,et al.  Guest Editor's Introduction: Model-Driven Engineering , 2006, Computer.

[62]  Juan de Lara,et al.  Property Satisfiability Analysis for Product Lines of Modelling Languages , 2020 .

[63]  Alexandr Andoni,et al.  Evaluating the “ Small Scope Hypothesis ” , 2002 .

[64]  Juan de Lara,et al.  Refactoring Multi-Level Models , 2018, ACM Trans. Softw. Eng. Methodol..

[65]  Juan de Lara,et al.  Reusable abstractions for modeling languages , 2013, Inf. Syst..

[66]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Graph Transformation , 2006, Monographs in Theoretical Computer Science. An EATCS Series.

[67]  Edward Sciore,et al.  Object specialization , 1989, TOIS.

[68]  James Odell,et al.  Power Types , 1994, J. Object Oriented Program..

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

[70]  Brian Henderson-Sellers,et al.  A powertype-based metamodelling framework , 2006, Software & Systems Modeling.

[71]  Martin Gogolla,et al.  From UML and OCL to relational logic and back , 2012, MODELS'12.

[72]  Facet-oriented modelling: open objects for model-driven engineering , 2018, SLE.

[73]  André van der Hoek,et al.  Layered class diagrams: supporting the design process , 2006, MoDELS'06.

[74]  Salvador Martínez Perez,et al.  Reactive model transformation with ATL , 2017, Sci. Comput. Program..

[75]  J. Christian Attiogbé,et al.  Virtual Extension of Meta-models with Facet Tools , 2018, MODELSWARD.

[76]  Ronald L. Rivest,et al.  The RC5 Encryption Algorithm , 1994, FSE.

[77]  Juan de Lara,et al.  Event-driven grammars: relating abstract and concrete levels of visual languages , 2007, Software & Systems Modeling.

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

[79]  Piotr Habela,et al.  Dynamic object roles - adjusting the notion for flexible modeling , 2004, Proceedings. International Database Engineering and Applications Symposium, 2004. IDEAS '04..

[80]  Uwe Aßmann,et al.  A combined formal model for relational context-dependent roles , 2015, SLE.

[81]  Gordon S. Blair,et al.  Models@ run.time , 2009, Computer.

[82]  Terry A. Halpin,et al.  Orm 2 , 2005, OTM Workshops.

[83]  Mira Mezini,et al.  REScala: bridging between object-oriented and functional style in reactive applications , 2014, MODULARITY.

[84]  Fahad Rafique Golra,et al.  A Role Modeling Based Approach for Cyber Threat Analysis , 2019, MODELSWARD.

[85]  Randall B. Smith,et al.  SELF: The power of simplicity , 1987, OOPSLA '87.

[86]  Richard F. Paige,et al.  Constructing and Navigating Non-invasive Model Decorations , 2010, ICMT@TOOLS.

[87]  Benoît Combemale,et al.  Leveraging Software Product Lines Engineering in the development of external DSLs: A systematic literature review , 2016, Comput. Lang. Syst. Struct..

[88]  Marsha Chechik,et al.  Managing design-time uncertainty , 2017, 2017 ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems (MODELS).

[89]  Fernando Macías,et al.  An Approach to Flexible Multilevel Modelling , 2018, Enterp. Model. Inf. Syst. Archit. Int. J. Concept. Model..

[90]  Daniel Jackson,et al.  Elements of style: analyzing a software design feature with a counterexample detector , 1996, ISSTA '96.

[91]  Richard F. Paige,et al.  Merging models with the epsilon merging language (EML) , 2006, MoDELS'06.

[92]  Jörg Kienzle,et al.  Comparing and classifying model transformation reuse approaches across metamodels , 2019, Software and Systems Modeling.

[93]  Jordi Cabot,et al.  A feature-based survey of model view approaches , 2017, Software & Systems Modeling.

[94]  Aniruddha S. Gokhale,et al.  Improving Domain-Specific Language Reuse with Software Product Line Techniques , 2009, IEEE Software.

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

[96]  Alain Pirotte,et al.  A role model and its metaclass implementation , 2004, Inf. Syst..

[97]  Uwe Aßmann,et al.  A Metamodel Family for Role-Based Modeling and Programming Languages , 2014, SLE.

[98]  Charles W. Bachman,et al.  The Role Concept in Data Models , 1977, VLDB.

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

[100]  Dirk Riehle,et al.  Pattern Languages of Program Design 3 , 1997 .

[101]  Ralf Reussner,et al.  A Categorization of Interoperability Issues in Networks of Transformations , 2019, J. Object Technol..

[102]  Paul Hudak,et al.  Functional reactive animation , 1997, ICFP '97.

[103]  Benjamin C. Pierce,et al.  Combinators for bi-directional tree transformations: a linguistic approach to the view update problem , 2005, POPL '05.

[104]  Juan de Lara,et al.  Open meta-modelling frameworks via meta-object protocols , 2018, J. Syst. Softw..

[105]  Jim Steel,et al.  On Model Subtyping , 2012, ECMFA.

[106]  Jordi Cabot,et al.  On Lightweight Metamodel Extension to Support Modeling Tools Agility , 2015, ECMFA.

[107]  Pierre-Yves Schobbens,et al.  Featured Model Types: Towards Systematic Reuse in Modelling Language Engineering , 2016, 2016 IEEE/ACM 8th International Workshop on Modeling in Software Engineering (MiSE).

[108]  Colin Atkinson,et al.  The Level-Agnostic Modeling Language , 2010, SLE.

[109]  Dániel Varró,et al.  Survey and classification of model transformation tools , 2018, Software & Systems Modeling.

[110]  Giordano Tamburrelli,et al.  Reactive Programming: A Walkthrough , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.