1.3 WHAT IS METAMODELLING?

The term “metamodel” is, evidently, a qualified variant of “model”. This suggests that metamodelling is a specific kind of modelling. In fact, metamodelling is the act and science of creating metamodels, which are a qualified variant of models. The difference between a regular model (one that is not a metamodel) and a metamodel is that the information represented by a metamodel is itself a model. The prefix “meta-”, in Greek, means “higher” or “posterior”. In epistemology and other branches of philosophy, the prefix “meta-” is often used to mean “about its own category”; in our case, “meta-” means that the model that we are building represents other models i.e. a metamodel is a model of models [8; 14]. This relationship is often described as paralleling the Type–Instance relationship. In other words, the metamodel (Type) and each of the models (Instances) are of “different stuff” and are described using different languages (natural or software engineering languages). Such type models therefore use classification abstraction – which leads to a metamodelling hierarchy.

One might indeed argue that modelling skills and techniques should be independent of the subject being modelled; a good modeller should be able to model an aeroplane, a business or a social group using the same skills and techniques (given the appropriate domain knowledge). If this is true, then the fact that a metamodel represents another model rather than “real-world” information should ...

Get Metamodelling for Software Engineering now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.