Such concrete and practical tools, to which Bar-
bero refers to, resulted in a kind of a special MDE
model called a megamodel which is intended to pro-
vide a macroscopic representation of a complex sys-
tem (Bezivin and al., 2004), (Bezivin and al., 2005b),
(Vignaga A., 2009).
Subsequently a megamodel has to hide fine-
grained details that obscure understanding and focus
on the ”big picture”, i.e. system structure, interactions
between models, assignment of models as parameters
or results for model transformations, etc. Indeed, the
notions of megamodeling (Bezivin and al., 2004) and
modeling-in-the-large (Bezivin and al., 2005b) are in-
troduced by analogy to respectively megaprogram-
ming (Boehm and Scherlis., 1992) and programming-
in-the-large (DeRemer and Kron., 1976) to address
the development of large-scale systems from a mod-
eling perspective called Global Model Management
(Vignaga A., 2009).
Thus the task of manipulating the megamodel
is considered as a programming-in-the-large one
(DeRemer and Kron., 1976), where the megamodel
acts as the mega-program which is manipulated
through mega-modules represented by GOMs (Toure
and al., 2018). Such megamodel manipulations co-
incide roughly with the needs of maintenance activi-
ties. Indeed nearly all systems particularly the com-
plex ones will need maintenance over their lifetime
because something in the system needs fixing (correc-
tive maintenance), or external changes force a change
to the system (adaptive maintenance), or something
can be improved (perfective maintenance). However,
whatever the type of maintenance involved, any meg-
amodel change is done through the execution of GOM
instances.
Such a situation leads mainly to two problems.
1. The problem of preserving megamodel consis-
tency after changes, amounts to ensuring safe ex-
ecutions of GOMs by defining a formal semantic
for each GOM instance. This problem has been
addressed in previous works (Toure and al., 2018).
2. Considering the megamodel as a mega-program
raises the issue of the language in which such a
mega-program is written. The goal of this pa-
per is to propose a domain-specific LAnguage for
the Management and the Evolution of MEgamod-
els (LAMEME) and its axiomatic semantics. The
design of LAMEME will enable us to check the
correctness of GOM instances and thus to main-
tain the megamodel quality and/or integrity after
changes.
The remainder of the paper is organized as fol-
lows. We first, in section II, present the megamodel
structure and behavior. In section III, we present the
syntax of LAMEME and describe its semantics (oper-
ational and axiomatic semantics). Section IV presents
some related works and section V concludes the pa-
per.
2 MEGAMODELLING
2.1 A Megamodel: A Kind of SCM
Typically SCM consist of two parts which collabo-
rate in a harmonious way (Estublier, 2000). The first
part is about the management of a repository of com-
ponents. Indeed there is a need for storing the dif-
ferent components of a software product and all their
versions safely. The second part of SCM concerns
the process control and support. In fact, traditionally,
change control is an integral part of an SCM product.
Otherwise, on the one hand, megamodels have of-
ten been used as a register for software architecture
components and their interconnections (Bezivin and
al., 2004), (Kling and al., 2011). On the other hand,
megamodels have also to take under consideration
the dynamic aspect of a system i.e the way a system
change (Seibel A., 2009), (Favre and NGuyen., 2005).
Thus in a MDE context, a megamodel plays the role
of a SCM. Therefore a megamodel results from a
Repository Model (RM) which represents its static
aspect and an Execution Environment Model (EE) to
represent the operations performed in the megamodel.
2.2 The Repository Model
The RM is the place wherein Component Models
(CMs) and their relations known as Global Links
(GLs), and GOMs are represented, stored and manip-
ulated. A component is any reusable software unit. It
can be as simple as a class diagram or as complex as
a whole system. We use models of such components
in order to manage all of them in a homogeneous way
without considering their nature and their internal de-
tails.
A GL between two CMs may be viewed as sum-
marizing a set of interactions between that two CMs
which are said to be dependent each other (Bezivin
and al., 2005b). Among others GLs we can distin-
guish the conformsTo relation between a CM and its
reference model, or the realizedBy relation between
a CM and its interface, etc. GLs are very usefull for
changes propagation management because if a CM is
modified then all CMs which depend on it are likely
to be targeted by this change.
A CM always represents a realization of another
CM which represents its interface. On the one hand a
MODELSWARD 2019 - 7th International Conference on Model-Driven Engineering and Software Development
338