=Paper=
{{Paper
|id=Vol-2019/exe_6
|storemode=property
|title=Consistency Recovery in Interactive Modeling
|pdfUrl=https://ceur-ws.org/Vol-2019/exe_6.pdf
|volume=Vol-2019
|authors=Juri Di Rocco,Davide Di Ruscio,Marcel Heinz,Ludovico Iovino,Ralf Lämmel,Alfonso Pierantonio
|dblpUrl=https://dblp.org/rec/conf/models/RoccoRHILP17
}}
==Consistency Recovery in Interactive Modeling==
Consistency Recovery in Interactive Modeling
Juri Di Rocco1 , Davide Di Ruscio1 , Marcel Heinz2 , Ludovico Iovino3 , Ralf Lämmel1,2 , Alfonso Pierantonio1
1
DISIM, University of l’Aquila, Italy
2
Faculty of Computer Science, University of Koblenz-Landau Germany
3
Gran Sasso Science Institute, L’Aquila, Italy
Abstract—MDE projects contain different kinds of artifacts targets the web-based modeling platform MDEF ORGE [5]. An
such as models, metamodels, model transformations, and deltas. original aspect of MegaL/Forge is that its semantic model
These artifacts are related in terms of relationships such as trans- addresses consistency recovery; the approach is inspired by
formation or conformance. In this paper, we capture the types
of artifacts and the relevant relationships in a megamodeling- our previous work on relationship maintenance in software
based manner for the purpose of monitoring and recovering a language repositories [11]. In this paper, we focus on defining
MDE project’s consistency in response to changes that users may the consistency-recovering response to a repository change
apply to the project within an interactive modeling platform. The while taking interaction with the user of a modeling platform
approach supports users in experimenting with MDE projects into account.
and receiving feedback upon changes on the grounds of a specific
execution semantics for megamodels. The approach is validated Roadmap of the paper: Sec. II develops the running
within the web-based modeling platform MDEF ORGE. example of the paper. Sec. III defines syntax and semantics of
Index Terms—Model management; Model repository; Consis- the required megamodeling language. Sec. IV provides a semi-
tency recovery; Megamodeling; Modeling platforms formal account on consistency recovery. Sec. V discusses the
integration of the approach into the web-based modeling plat-
I. I NTRODUCTION form MDEF ORGE. Sec. VI discusses related work. Sec. VII
Research context: This research is concerned with model concludes the paper.
management [1], [2] on top of model repositories [3], [4]
which users can access through a modeling platform [5], II. T HE RUNNING E XAMPLE
[6]. Model repositories are a promising form of aggregating
For brevity and focus on the key idea, we commit to a
reusable MDE artifacts such as models, metamodels, and
very basic running example here: there are two models m1
model transformations. Model management is the model-based
and m2 that conform to the same metamodel mm with the
(model-driven) approach to the automated management of
difference being referred to as delta and model management
collections of MDE artifacts instead of using ad-hoc tools or
operations in place to express conformance of m1 and m2
lacking good automation. Modeling platforms such as Eclipse,
to mm, comparison so that delta represents the difference
MDEF ORGE, or MMINT are essential tools for users of model
between m1 and m2, and patching so that m2 is the result of
repositories—users may either explore MDE artifacts in a
patching m1 according to delta. This simple example involves
repository or they may be developers in some scope of the
enough semantical issues so that it suffices for an initial
repository.
language design discussion. In our ongoing research, we also
Research objective: We want to exercise an effective,
model more involved scenarios.
declarative (model-based), and transparent (understandable)
approach to organizing the artifacts in an MDE project (in
A. An EMF-related Prelude
a model repository or not) and the relationships between the
artifacts. That is, a model-managed project has an associated The running example operates within the EMF technologi-
megamodel so that a user (a developer within the project) cal space. We need these types of artifacts; we use the concrete
can understand the structure of the project in megamodeling syntax of MegaL/Forge for expressing the type definitions:
terms. Further, the project’s consistency with the megamodel EmfModel // EMF−based models (XMI representation)
is continuously monitored in the background of the interactive EmfMetamodel < EmfModel // Ecore models
modeling platform so that any changes can be mapped to EmfCompareModel < EmfModel // Delta models
corrective, automated actions to be proposed to and confirmed That is, we declare types EmfModel, EmfMetamodel, and
by the user. EmfCompareModel; we organize these types in a hierarchy
Research contribution: We address the research objective (‘<’). In the running example, we also need certain model-
by an emerging language design, definition, implementation, management operations on the types just declared; again,
and integration into a modeling platform. The language and its we use the concrete syntax of MegaL/Forge for expressing
implementation are referred to as MegaL/Forge because the signatures of relations and functions:
language is inspired by our previous work on linguistic archi-
conformsTo : EmfModel × EmfMetaModel
tecture, as a form of megamodeling, as realized by the MegaL compare : EmfModel × EmfModel → EmfCompareModel
family of languages [7], [8], [9], [10] and the integration patch : EmfModel × EmfCompareModel → EmfModel
That is, we have access to conformance checking (conform- means of the patch function, thereby deriving a new version
sTo—a relation), model comparison (compare—a function), of m2 that is ‘in sync’ with m1 and delta. (Adding domain
and delta application (patch—another function). knowledge (‘algebraic reasoning’), we know that the new
version of m2 equals the original one.) Thus, the following
B. An MDE Project’s Megamodel
list of function applications facilitates consistency recovery:
The following megamodel declares artifact ids for models
compare(m1, m2) 7→ delta
m1 and m2, the shared metamodel mm to which both models patch(m1, delta) 7→ m2
are assumed to conform to, and the delta (difference) between
the models. Conformance, comparison, and patch application 2.b) First patch, then compare: Thus:
are expressed by appropriate applications of relation conform-
patch(m1, delta) 7→ m2
sTo and functions compare and path. Thus: compare(m1, m2) 7→ delta
m1, m2 : EmfModel An interactive user may disfavor this option on the grounds
mm : EmfMetaModel
conformsTo(m1, mm) of domain knowledge such that (the older version of) delta
conformsTo(m2, mm) readily captures aspects of m1 (and m2) and thus, it may not
delta : EmfCompareModel work well for a new version of m1.
compare(m1, m2) 7→ delta
patch(m1, delta) 7→ m2 3) Modify m2: We could consider applying the patch
Let us apply the MegaL/Forge megamodel to an actual function, thereby deriving a new version of m2 that is ‘in
project. That is, artifact identifiers in the megamodel are linked sync’ with m1 and delta. This is clearly not a useful strategy,
to actual filenames in the underlying model repository (in fact, as it would overwrite the changes just made to m2. Instead, we
a project). We may assume links as follows: need to compare m1 and m2 to compute a new delta. Thus, the
following function application facilitates consistency recovery:
m1 = ”Family1.xmi”
m2 = ”Family2.xmi” compare(m1, m2) 7→ delta
mm = ”FamilyMM.ecore”
delta = ”Delta.xmi” In fact, now that we changed delta, we may want to check
that an application of the patch function would derive a model
These links assume relative file names (relative to a base
that is equal to the existing model m2. In that case, we would
URI for the project). We are concerned with two versions of a
have recovered consistency in the project. Of course, this is
model for describing ‘families’ (family members, i.e., persons
exactly the semantics of comparison: it provides a delta for
with names and some relationships or attributes), subject to
two models so that the second model can be derived from the
a suitable metamodel, and a delta (a difference) between the
first one by applying the delta as a patch.
two models at hand.
III. L ANGUAGE D EFINITION
C. Change scenarios
We provide a language definition of MegaL/Forge. In
The modeling artefacts are subject to evolution [12]: models
particular, we define the concrete syntax by means of a
are modified and updated during the engineering process and
grammar and the abstract syntax by means of a metamodel.
the metamodels evolve over time to address changes to the
We also briefly discuss the static semantics for well-formed
requirements. Let us just imagine changes to artifacts of
megamodels. Finally, we define what may account for a
the project at hand. We should also explain how we expect
dynamic semantics by means of a consistency notion—an
to respond to these changes, thereby characterizing change
MDE project (its artifacts) to be consistent with a megamodel.
scenarios. The key idea is that function applications in the
megamodel may need to be used to recover consistency. A. Concrete Syntax
1) Modify delta: We propagate this change by applying The following grammar (in ANTLR notation) defines the
the patch function, thereby deriving a new version of m2 that concrete syntax of the MegaL/Forge constructs exercised in
is ‘in sync’ with m1 and delta. Thus, the following function the present paper (Sec. II).
application facilitates consistency recovery: megamodel : declaration+;
declaration
patch(m1, delta) 7→ m2
: type // Root entity type
We should note that we do not want to apply the com- | subtype // Entity type as subtype
| artifact // Entity
pare function (beforehand or afterwards) because we consider | relation // Relation signature
changed artifacts (such as delta here) as ‘authoritative’ [13] | function // Function signature
which we do not want to overwrite along consistency recovery. | relatesTo // Relationship
| mapsTo // Function application
2) Modify m1: There are two options: | link ; // Artifact binding
2.a) First compare, then patch: We apply the compare type : ID ; // Base type
subtype : ID ’<’ ID ; // Subtype < supertype
function to the (changed) model m1 and the (unchanged) artifact : ID (’,’ ID)∗ ’:’ ID ; // Artifacts of a given type
model m2 to compute a new version of delta to be applied by relation : ID ’:’ ID (’#’ ID)∗ ; // Signature
function : ID ’:’ ID (’#’ ID)∗ ’−>’ ID; // Signature We take consistency to mean that all relationships on
relatesTo : ID ’(’ ID (’,’ ID)∗ ’)’ ; // Relationship artifacts in the project, as expressed by the megamodel, i.e.,
mapsTo : ID ’(’ ID (’,’ ID)∗ ’)’ ’|−>’ ID; // Apply function
link : ID ’=’ ’”’ LINK ’”’ ; // Bind artifact symbol to filename applications of relations and functions, must hold, subject to
suitable interpretations of the applied relations or functions.
The type and subtype forms of declaration facilitate the Details follow below.
definition of a nominal classification hierarchy for artifacts. 1) Environments for Interpretation: In an effort to set up
Actual artifacts are introduced by their name (an id); see interpretations of symbols used in megamodels systematically,
declaration form artifact. The declaration forms relation and we assume an environment E which is, in fact, a triple
function facilitate signatures including names for arguments hEA , ER , EF i as follows:
and results (the latter for functions only). There is a declaration
• EA maps artifact symbols, as they are used in the
form relatesTo for expressing relationships on artifacts. There
megamodel, to actual artifact representations in the sense
is a declaration form mapsTo for expressing the specific
of text, JSON, etc. In the MegaL/Forge notation (see
relationship of function application. Finally, there is a special
Section II-B), we assume a mapping from artifact sym-
declaration form link for binding artifact symbols to files.
bols to files. In the semi-formal model at hand, we assume
Making the links part of the megamodel rather than desig-
a universe U for representations of artifacts. We use
nating a separate model for links can be compared to the use
the type U in setting up interpretations for relation and
of annotations in OO programming rather than using XML-
function symbols; see below.
based configuration.
• ER maps relation symbols to their interpretations; these
MegaL/Forge is a very simple member in the MegaL
are predicates of type U + → Boolean. We use here U +
language family [7], [8], [9]. In particular, there is only one
for each predicate’s argument because, in this manner, a
kind of types—as opposed to languages versus artifacts versus
simple generic type suffices for all possible relations. The
concepts in other MegaL languages.
idea is, of course, that a suitable interpretation enforces
B. Abstract Syntax a certain length (a certain number of parameters) and
The metamodel defining the abstract syntax of the language appropriate representation types (subtypes of U ) for the
is shown in Fig. 1. In particular, a megamodel specification different parameters.
consists of a set of Artifacts of different Types. Each function • EF maps function symbols to their interpretations; these
(relation) is defined by means of a Function (Relation) dec- are functions of type U + → U .
laration and the corresponding MapsTo (RelatesTo) definition. As an environment effectively represents what we think
Artifacts are arguments of Functions and Relations as shown of as a ‘project’, we may also speak of consistency of a
by the constructors of the MapsTo and RelatesTo elements. megamodel with an environment.
The former consists of input and output elements, whereas the 2) Consistency = Relational + Functional Consistency:
latter consists of the set of artifacts for which the specified We speak of relational consistency when the interpretation of
relation holds. All the elements in the figure specialize a all relation applications (‘relationships) in a given megamodel
NamedElement class (not shown in the figure for brevity) m for a given environment E returns true. We speak of
consisting of the name attribute of type String. functional consistency when the interpretation of all function
applications in the megamodel m with the environment E
C. Static Semantics = Well-formedness returns true. Details of the assumed notion of interpretation
A static semantics for well-formedness of MegaL/Forge- follow.
like megamodels was defined as a definite clause program A relation application r(a1 , . . . , an ) with the relation sym-
in previous work [8]. We summarize the relevant constraints bol r and artifact symbols a1 , . . . , an as arguments is inter-
informally to make this text more self-contained. preted by applying the interpretation of r to the interpretations
a) Types, artifacts, relations, and function are declared of a1 , . . . , an , as defined by the environment. Thus:
before they are used. b) Each name can be declared once
only (‘no overloading’ here of any kind). c) The arguments of ER (r)(hEA (a1 ), . . . , EA (an )i)
relationships and function applications and results of function
A function application f (a1 , . . . , an ) 7→ an+1 with the
applications must be of the types as prescribed by the sig-
function symbol f , artifact symbols a1 , . . . , an as arguments,
natures of the corresponding relations and functions. d) Each
and an artifact symbol an+1 for the result is interpreted by
artifact symbol is linked to some filename. (We do not consider
applying the interpretation of f to the interpretations of a1 ,
incompletely bound megamodels here.)
. . . , an , as defined by the environment, and comparing the
D. Dynamic Semantics = Consistency result with the interpretation of an−1 for equality. Thus:
Megamodels may have various dynamic semantics [8], [11];
EF (f )(hEA (a1 ), . . . , EA (an )i) = EA (an+1 )
we are interested here specifically in a semantics that captures
consistency of an MDE project with regard to a megamodel. For consistency to hold, the formulae as described above
We provide a simple semantics of this kind from the ground should evaluate to true for all relation and function applica-
up here. tions.
Fig. 1. The MegaL/Forge metamodel.
IV. C ONSISTENCY RECOVERY see the two scenarios for changing m1 in Sec. II-C2. We
In response to a change in a project, we perform a recovery may either delegate such nondeterminism to the interactive
analysis on the megamodel to determine the function applica- component or enhance megamodels and the analysis thereof
tions (a recovery sequence) for recovering consistency, when to resolve nondeterminism automatically.
applied to the artifacts in the project. Let us now sketch a first attempt at the desired analysis; we
defer proper treatment of nondeterminism to future work. We
A. Recovery Sequence need helper functions as follows:
When consistency does not hold, then we may try to • in(m, a) returns all the function applications in the meg-
‘overwrite’ artifacts according to function applications so that amodel m with the artifact symbol a as an argument.
consistency is recovered. The major assumption is here that • out(fa) returns the artifact symbol for the result of the
function applications, as they are part of the megamodel at function application fa.
hand, suffice for consistency recovery and a suitable order can The main function for recovery analysis, ra, takes as
be determined. In more detail, given a sequence of function arguments the megamodel m, an artifact symbol ac indicating
applications fa1 , . . . , fan from a given megamodel m, we call the change, a sequence S of function applications, and it
it a recovery sequence for a given environment E, if returns a sequence of function applications that may be a
• E is not consistent with m. recovery sequence. We begin with an empty S and extend
• Apply fa1 , . . . , fan in the given order to overwrite the it into the result sequence, step by step.
artifact symbols for the results in the environment E.
• The updated environment E is now consistent with m. ac , S) =
ra(m,
ra(m, ac , S+
+hfai), with fa drawn from m such that
B. Recovery Analysis
− fa ∈
6 S, and
− fa ∈ in(m, a ) ∪ S 0 in(m, out(fa0 )), and
It remains to define an analysis for megamodels to map c fa ∈S
changes to recovery sequences. For simplicity, we start from
− out(fa) 6
= ac , and
0 0
the assumption that changes are atomic in the sense that single − out(fa) 6= out(fa ) for all fa ∈ S.
artifacts are changed on a discrete timeline and consistency S, otherwise (if there is no such fa)
is to be recovered after each change. Thus, the analysis is
(‘++’ is list append.) The conditions control that we select
essentially a mapping from a megamodel m and an artifact
function applications that can be applied to ac and results of
symbol ac identifying the actual change to a sequence of
previous applications without though any overwriting. The for-
function applications.
mulation is nondeterministic, as different function applications
Let us discuss expected properties of the analysis. We do
could be picked in a step.
not want to map a change to a sequence that would change an
For instance, for the megamodel of Sec. II and ac = m1,
artifact that was changed previously, as such ‘overwriting’ may
starting from S = ∅, the analysis returns a sequence starting
be semantically debatable and it may also lead to divergence.
with a comparison, followed by a patch as follows:
As a special case, we do not want to apply any function
application twice. For instance, this could happen, in the compare(m1, m2) 7→ delta
patch(m1, delta) 7→ m2
running example, if we were responding to model changes
with comparison and patching in a cyclic manner. Here we assume that the analysis respects the megamodel-
We also need to address ‘nondeterminism’ in the context of defined order of function applications. (Also, ‘∪’ operates on
consistency recovery. That is, there may exist megamodels and sequences rather than sets.) Proper treatment of nondetermin-
changes for which different recovery sequences are possible; ism is deferred to future work.
V. I NTEGRATION INTO MDEF ORGE megamodel is performed by the method checkConsistency
This section presents the implementation of the presented shown below:
consistency recovery approach, which has been integrated in public boolean checkConsistency(Project project, Megamodel megamodel) {
the MDEF ORGE platform [5]. MDEF ORGE was proposed as for (Artifact relatesTo : m.models) {
List changes= checkChanges(project);
an extensible platform enabling the adoption of model man- if (changes.size()==0) return true;
agement tools as SaaS (software as a service). By resembling }
facilities of desktop IDEs, like Eclipse, MDEF ORGE users for (RelatesTo relatesTo : m.relatesTos) {
IOperationApplier opApplier = operationMapper.get(relatesTo.
have the possibility to create modeling artifacts and organize getType());
them in projects that are, in turn, contained in workspaces. boolean result = (boolean) opApplier.apply(relatesTo.arguments);
The consistency recovery mechanism presented in the pre- if (!result) return false;
}
vious section has been integrated in MDEF ORGE by essen- return true;
tially extending the existing project management facilities. In }
particular, the Java packages ProjectMonitoring and Consis-
The method consistencyRecovery implements the recovery
tencyManagement shown in Fig. 2 contain the new classes
mechanism by exploiting the getFunctionsToRecoverConsis-
and interfaces that have been added in the MDEF ORGE
tency method shown in the listing below. It is responsible of
implementation. The existing package CoreService has been
identifying the functions to be applied and their execution
extended to work with such new packages.
order for recovering the consistency between the changed
The ProjectMonitoring package implements listeners that
project and the corresponding megamodel.
execute the consistency recovery manager when artifacts or
projects are changed. In such cases, ApplicationEvents are public List getFunctionsToRecoverConsistency(Project project,
Megamodel megamodel){
created as shown in the listing below and used by Arti- List result = new ArrayList();
factChangedListener and ProjectChangedListener to interact List changes=checkChanges(project);
with the ConsistencyRecoveryManager. for (MapsTo function : m.functions) {
if (function.inputs.contains(changes)) result.add(function);
public void update(T artifact) { }
... return result;
eventPublisher.publishEvent(new ArtifactChangedEvent(artifact, ” }
UPDATE”));
artifactRepository.save(artifact); A fragment of the consistencyRecovery method is as follows:
}
public void consistencyRecovery(Project project, Megamodel megamodel) {
The ConsistencyManagement package implements the pre- checkConsistency(project, megamodel);
List toApply = getFunctionsToRecoverConsistency(project,
sented consistency recovery concepts. For each symbolic megamodel);
function or relation name a corresponding IOperationApplier for (MapsTo function : toApply) {
implementation is available. For instance, the functions com- IOperationApplier opApplier = operationMapper.get(function.
getType());
pare and patch discussed in Sec. II-B have the correspond- opApplier.apply(m.inputs);
ing implementation consisting of the ComparisonApplier and }
PatchApplier classes, respectively. Such classes implement ...
}
the method apply that executes the real behaviour of the
corresponding function. For instance, the execution of the Consistency recovery can generate new artifacts that might
apply method of the class ComparisonApplier executes the overwrite existing ones. In such cases, the user will be notified
comparison mechanism already available in MDEF ORGE (that and will be asked for confirmation, as illustrated with the pop-
in turn is based on EMFCompare1 ) as shown in the following up in Fig. 3. The user will also be notified when consistency
listing showing a fragment of the apply method of the class recovery fails. We are also working on presenting options to
ComparisonApplier: the user.
public Object apply(Object[] inputs)
{ VI. R ELATED W ORK
if (inputs.length != 2)
throw new Exception(); In general, a few model management platforms exist, such
Artifact left = inputs[0]; as MMINT [6] and Mondo [14] that try to support any
Artifact right = inputs[1]; kind of operation needed in model driven engineering with a
ModelsServiceImpl modelService=new ModelService();
return modelService.compare(left, right); focus on models. The problem of well-formed metamodelling
} is directly addressed by the model management platform
The links between symbolic operation names and the ‘Modelverse’ [15]. It is a platform emphasizing a consistently
corresponding appliers are specified in the operationMap- specified form of metamodelling based on the work by Kühne
per HashMap of the ConsistencyRecoveryManager class. The et al. [16]. Tools may not properly check conformance to
consistency check between a project and the corresponding metamodels as the static semantics is left unattended [17].
SERGe generates all possible metamodel consistency preserv-
1 https://www.eclipse.org/emf/compare/ ing transformations to be reused by other tools.
Fig. 2. Event based architecture of MDEForge.
In requirements engineering, the consistency between re- [21] a systematic literature review is presented on consistency
quirement artifacts needs to be maintained. In [18] authors checking of business process models that pose further related
propose to use the Snapmind Framework and a UML-based approaches in the domain.
specification environment for user stories and domain mod-
els. The relation between elements in a mind map-based In [22] authors approach consistency checking for evolving
user story and domain models are checked. In [19] authors models and consistency recovery using state space exploration
explicitly define correspondence relationships in architecture based on postulates defining consistent states. Sunye [23]
descriptions for all kinds of digital artifacts. Kowal et al. [20] addresses collaborative modelling processes, where multiple
explicitly aim at delta-aware consistency checking for models editors write on the same model. An addressed challenge
that are part of difference perspectives by using rules that lies in reproducing the same order of operations for every
describe a consistent UML-based architecture description. In accessing node. In [24] authors describe a system using SAT
solvers to propagate all possible changes for source models
[5] F. Basciani, J. D. Rocco, D. D. Ruscio, A. D. Salle, L. Iovino,
and A. Pierantonio, “MDEForge: an Extensible Web-Based Modeling
Platform,” in Proc. CloudMDE@MoDELS 2014, vol. 1242, 2014, pp.
66–75.
[6] A. D. Sandro, R. Salay, M. Famelis, S. Kokaly, and M. Chechik,
“MMINT: A Graphical Tool for Interactive Model Management,” in
Proc. MoDELS 2015 Demo and Poster Session, ser. CEUR Workshop
Procs, vol. 1554, 2016, pp. 16–19.
[7] J. Favre, R. Lämmel, and A. Varanovich, “Modeling the Linguistic
Architecture of Software Products,” in Proc. MODELS 2012, ser. LNCS,
vol. 7590. Springer, 2012, pp. 151–167.
[8] R. Lämmel and A. Varanovich, “Interpretation of Linguistic Architec-
ture,” in Proc. ECMFA 2014, ser. LNCS, vol. 8569. Springer, 2014,
pp. 67–82.
[9] J. Härtel, L. Härtel, M. Heinz, R. Lämmel, and A. Varanovich, “Inter-
connected Linguistic Architecture,” The Art, Science, and Engineering
Fig. 3. Pop-up asking the user regarding overwriting. of Programming Journal, vol. 1, 2017, 27 pages.
[10] M. Heinz, R. Lämmel, and A. Varanovich, “Axioms of linguistic
architecture,” in Proc. MODELSWARD 2017. SCITEPRESS, 2017,
such that the transformation to view models remains traceable. pp. 478–486.
[11] R. Lämmel, “Relationship maintenance in software language reposito-
Bidirectional transformations pose a need for consistency ries,” The Art, Science, and Engineering of Programming Journal, vol. 1,
checking and change propagation. Demuth et al. [25] discuss 2017, 27 pages.
failure detecting for co-evolving metamodels and domain [12] R. F. Paige, N. Matragkas, and L. M. Rose, “Evolving models in model-
driven engineering: State-of-the-art and future challenges,” Journal of
models. When a consistency check fails, repair measure Systems and Software, vol. 111, pp. 272 – 280, 2016. [Online]. Available:
suggestions are automatically generated. Kusel et al. [26] http://www.sciencedirect.com/science/article/pii/S0164121215001909
explicitly state the properties that need to be verified after [13] P. Stevens, “Bidirectional Transformations in the Large,” in MoDELS.
ACM, 2017, to appear.
a coupled model transformation. Diskin et al. [27] classify the [14] D. S. Kolovos, A. Garcı́a-Domı́nguez, R. F. Paige, E. Guerra, J. S.
various kinds of model synchronizations that may have to be Cuadrado, J. de Lara, I. Ráth, D. Varró, G. Sunyé, and M. Tisi,
considered. Other kinds of bidirectional transformations and “MONDO: scalable modelling and model management on the cloud,”
in STAF, 2016, pp. 55–64.
their specific needs are discussed in [28]. [15] S. V. Mierlo, B. Barroca, H. Vangheluwe, E. Syriani, and T. Kühne,
“Multi-level modelling in the modelverse,” in MoDELS, 2014, pp. 83–
VII. C ONCLUDING R EMARKS 92.
In this paper, we have described an approach towards con- [16] T. Kühne, “Matters of (meta-)modeling,” Software and System Modeling,
vol. 5, no. 4, pp. 369–385, 2006.
sistency recovery in MDE projects such that megamodels are [17] M. Rindt, T. Kehrer, and U. Kelter, “Automatic generation of
facilitated for expressing consistency and providing guidance consistency-preserving edit operations for MDE tools,” in MoDELS,
for recovery thereof in an interactive setup. We are working on 2014.
[18] F. Wanderley, A. Silva, J. Araújo, and D. S. da Silveira, “Snapmind:
the following improvements. Firstly, we look at more complex A framework to support consistency and validation of model-based
scenarios with richer dependencies between the involved arti- requirements in agile development,” in MoDRE, 2014, pp. 47–56.
facts so that the issue of nondeterminism (Sec. IV-B) is (needs [19] A. Chichignoud, F. Noyrit, L. Maillet-Contoz, and F. Terrier, “Use of
architecture description to maintain consistency in agile processes,” in
to be) properly addressed. For instance, we study examples of MODELSWARD, 2017, pp. 459–466.
co-evolution [29]. Secondly, we look at making megamodels [20] M. Kowal and I. Schaefer, “Incremental consistency checking in delta-
and the underlying MDE projects explicitly version-aware so oriented uml-models for automation systems,” in Procs. 7th Intl. FM-
SPLE@ETAPS Workshop 2016, 2016, pp. 32–45.
that consistency recovery can be modeled atop versioning. [21] A. Awadid and S. Nurcan, “A systematic literature review of consistency
Thirdly, we look at techniques for automatically creating (at among business process models,” in CAiSE, 2016, pp. 175–195.
least initial fragments of) megamodels out of existing MDE [22] H. K. Dam and A. Ghose, “Towards rational and minimal change
propagation in model evolution,” CoRR, vol. abs/1402.6046, 2014.
projects. Finally, we look at the incorporation of ‘algebraic [23] G. Sunyé, “Model consistency for distributed collaborative modeling,”
reasoning’, possibly also subject to capturing more domain in Proc. of ECMFA, 2017, pp. 197–212.
knowledge in the megamodel, for the benefit of omitting [24] O. Semeráth, C. Debreceni, Á. Horváth, and D. Varró, “Incremental
backward change propagation of view models by logic solvers,” in
unnecessary recovery steps (e.g., patch after commit in the MoDELS, 2016, pp. 306–316.
running example) or addressing nondeterminism. [25] A. Demuth, M. Riedl-Ehrenleitner, R. E. Lopez-Herrejon, and A. Egyed,
“Co-evolution of metamodels and models through consistent change
R EFERENCES propagation,” JSS Journal, vol. 111, pp. 281–297, 2016.
[1] M. Barbero, F. Jouault, and J. Bézivin, “Model Driven Management [26] A. Kusel, J. Etzlstorfer, E. Kapsammer, W. Retschitzegger,
of Complex Systems: Implementing the Macroscope’s Vision,” in Proc. W. Schwinger, and J. Schönböck, “Consistent co-evolution of
ECBS 2008. IEEE, 2008, pp. 277–286. models and transformations,” in MoDELS, 2015, pp. 116–125.
[2] W. Kling, F. Jouault, D. Wagelaar, M. Brambilla, and J. Cabot, “Mo- [27] Z. Diskin, H. Gholizadeh, A. Wider, and K. Czarnecki, “A three-
Script: A DSL for Querying and Manipulating Model Repositories,” in dimensional taxonomy for bidirectional model synchronization,” JSS
Proc. SLE 2011, ser. LNCS, vol. 6940. Springer, 2012, pp. 180–200. Journal, vol. 111, pp. 298–322, 2016.
[3] F. Basciani, J. D. Rocco, D. D. Ruscio, L. Iovino, and A. Pierantonio, [28] K. Czarnecki, J. N. Foster, Z. Hu, R. Lämmel, A. Schürr, and J. F. Ter-
“Model Repositories: Will They Become Reality?” in Proc. Cloud- williger, “Bidirectional transformations: A cross-discipline perspective,”
MDE@MoDELS 2015, ser. CEUR Workshop Procs, vol. 1563, 2016, in Proc. of ICMT, 2009, pp. 260–283.
pp. 37–42. [29] D. D. Ruscio, L. Iovino, and A. Pierantonio, “Coupled evolution in
[4] J. D. Rocco, D. D. Ruscio, L. Iovino, and A. Pierantonio, “Collaborative model-driven engineering,” IEEE Software, vol. 29, no. 6, pp. 78–84,
Repositories in Model-Driven Engineering,” IEEE Software, vol. 32, 2012.
no. 3, pp. 28–34, 2015.