Languages, Models and Megamodels

Anya Helene Bagge and Vadim Zaytsev



Anya Helene Bagge and Vadim Zaytsev. Languages, Models and Megamodels. In Vadim Zaytsev, editor(s), Post-proceedings of SATToSE 2014, volume 1346 of, pages 132–143. CEUR, 2015.


SATToSE 2014, L’Aquila, Italy, 2014

Paper Links:

[pdf] [pdf slides]


A model is an abstraction of a system, made to facilitate some kind of understanding or processing by humans or computers. Abstracting away from details allows us to deal with systems that would otherwise be too large or too complicated to deal with.

Models and modelling are of particular importance in software engineering for two reasons: First, the software itself is often meant to model some system; and second, software systems tend to be so large and complicated that they are themselves in need of modelling as part of the development process.

Modelling of systems and modelling of software naturally brings us to the modelling of modelling and of models. While metamodels are models of modelling languages (i.e., the abstractions used to describe models), a megamodel is a model of a system of models (i.e., a model where the elements are models). The design of software systems may involve many models, metamodels and artifacts – all of these can be captured in a megamodel, together with the relationships between them. The details of the individual models are abstracted away, leaving a bird’s eye view of the roles and relationships of the models.

This tutorial will explain megamodelling in practice, with a particular focus on examples from software language engineering.


  title = {Languages, Models and Megamodels},
  author = {Anya Helene Bagge and Vadim Zaytsev},
  year = {2015},
  booktitle = {Post-proceedings of SATToSE 2014},
  editor = {Vadim Zaytsev},
  volume = {1346},
  pages = {132--143},
  publisher = {CEUR},
  issn = {1613-0073},
  location = {L'Aquila, Italy},
  url = {},
  pdf = {},


Copyright © 2015 Anya Helene Bagge and Vadim Zaytsev. This work may be freely disributed.