Facet-Oriented Modelling: Open Objects for Model-Driven Engineering
Model-driven engineering (MDE) promotes models as the principal assets in software projects. Models are built using a modelling language whose syntax is defined by a metamodel. Hence, objects in models are typed by a metamodel class, and this typing relation is static as it is established at creation time and cannot be changed later. This way, objects in MDE are closed and fixed with respect to the type they conform to, the slots/properties they have, and the constraints they should obey. This hampers the reuse of model-related artefacts like model transformations, as well as the opportunistic or dynamic combination of metamodels.
To alleviate this rigidity, we propose making model objects open so that they can acquire or drop so-called facets, each one contributing a type, slots and constraints to the object. Facets are defined by regular metamodels, hence being a lightweight extension of standard metamodelling. Facet metamodels may declare usage interfaces, and it is possible to specify laws that govern how facets are to be assigned to the instances of a meta-model. In this paper, we describe our proposal, report on an implementation, and illustrate scenarios where facets have advantages over other techniques.
Tue 6 NovDisplayed time zone: Guadalajara, Mexico City, Monterrey change
13:30 - 15:00
Grammars & MetamodellingSLE 2018 at Studio 1
Chair(s): Thomas Degueule Centrum Wiskunde & Informatica
|Facet-Oriented Modelling: Open Objects for Model-Driven Engineering|
Juan de Lara Universidad Autónoma de Madrid, Esther Guerra Universidad Autónoma de Madrid, Jörg Kienzle McGill University, Canada, Yanis Hattab McGill University
|Analysing Meta-Model Product Lines|
Esther Guerra Universidad Autónoma de Madrid, Juan de Lara Universidad Autónoma de Madrid, Marsha Chechik University of Toronto, Rick Salay University of Toronto
|Translating Grammars to Accurate Metamodels|
Arvid Butting Software Engineering RWTH Aachen University, Nico Jansen Software Engineering, RWTH Aachen University, Bernhard Rumpe RWTH Aachen University, Andreas Wortmann RWTH Aachen University