G. Engels et al. (Eds.): MoDELS 2007, LNCS 4735, pp. 91–105, 2007.
© Springer-Verlag Berlin Heidelberg 2007
On Metamodeling in Megamodels
Dragan Gašević
1
, Nima Kaviani
2
, and Marek Hatala
2
1
Athabasca University, Canada
2
Simon Fraser University Surrey, Canada
dragang@athabascau.ca, {nkaviani, mhatala}@sfu.ca
Abstract. Model-Driven Engineering (MDE) introduced the notion of
metamodeling as the main means for defining modeling languages. As a well
organized engineering discipline, MDE should also have its theory clearly
defined in terms of the relationships between key MDE concepts. Following the
spirit of MDE, where models are first class citizens, even the MDE theory can
be defined by models, or so called megamodels. In this paper, we use Favre’s
megamodel that was already used for defining linguistic metamodeling.
Starting from the premise that this megamodel can also be used for defining
other MDE concepts, we use it to specify the notion of ontological
metamodeling. Here, we show that in order for this megamodel to be able to
fully capture all the concepts of ontological metamodeling, some refinements
should be applied to its definition. We also show how these new changes are in
the same direction with the work of Kühne in defining linguistic and
ontological metamodels.
1 Introduction
The idea of Model Driven Engineering (MDE) stems from software engineering, and
more specifically, from the recent research in software development. MDE evolved as
the paradigm shifted from the object-oriented approach where the main principle is
that everything is an object into the model engineering paradigm based on the
principle that everything is a model [6]. The object-oriented technology is about
classes and objects, and main relations are instantiation (an object is an instance of a
class) and inheritance (a class inherits from another class). MDE is about models, but
it is also about relations between a model and the system under study (which can be a
software artifact or a real world domain), metamodels, and model transformations.
Similar to the object-oriented technology, MDE can be characterized by two main
relations, namely, representation (a model represents a software artifact or real world
domain) and conformance (a model conforms to a metamodel). Generally speaking,
MDE is a field of system engineering in which the process heavily relies on the use of
models and model engineering. Here, model engineering is considered as a
disciplined and rationalized production of models [11].
For MDE to be popularized and accepted by the software engineering community,
the theory behind it should be precise and easy to grasp. Furthermore, this theory
must be comprehensive enough to address all the phenomena related to the languages