Abstract
In Model-driven engineering (MDE), metamodels provide some sort of typing system on top of models, and provide a precise, regular and strong support for representations of systems by models. As we have already briefly introduced in the previous article, metamodels are further typed by metametamodels and, together with models that are typed by metamodels, they constitute three level structure. In this article, we not only provide a formal definition of this structure, but also show that they are uniformly treated as abstract models.
Although metamodels play the important roles mentioned above, they do not have enough power to reason or more generally to act upon these representations. Therefore, model transformation as another important notion is necessary. In MDE, it is usually suggested to take constructive approach that uses model transformations as main operations on models, rather than directly update models themselves. This approach has advantages such as enhancing interoperability between different tools. Moreover, in MDE, model transformation program is considered itself as a model, to be integrated into the unified treatment mentioned above. This article explains this unication where MDE can be considered to show its true worth, and several model management applications based on the constructive approach.