The reason that metamodeling is important within the MDA framework is twofold. First, we need a mechanism to define modeling languages, such that they are unambiguously defined. A transformation tool can then read, write, and understand the models. Within MDA we define languages through metamodels.
Secondly, the transformation rules that constitute a transformation definition describe how a model in a source language can be transformed into a model in a target language. These rules use the metamodels of the source and target languages to define the transformations. This is further explained in section 9.1. For now it suffices to say that to be able to understand and make transformation definitions, we must understand the metamodels of the source and target language.
8.3.1 The Extended MDA Framework
Figure 8-8 shows how the MDA framework is completed with the metamodeling level. The lower half of the figure is identical to the basic MDA framework from Figure 2-7. This is what most developers will see eventually. At the upper half we introduce the metalanguage for defining languages.
Figure 8-8. The extended MDA framework, including the metalanguage
Typical developers will see the basis framework only, without the additional metalevel. A smaller group of developers, usually the more experienced ones, will need to define languages and transformations between languages. For this group a thorough understanding of the metalevel in the extended MDA framework is essential.