Metamodel or surrogate model is a model of a model, and metamodeling is the process of generating such metamodels.
Metamodeling or
meta-modeling is the analysis, construction and development of the frames, rules, constraints, models and theories applicable and useful for
modeling a predefined class of problems. As its name implies, this concept applies the notions of
meta- and modeling in
software engineering and
systems engineering. Metamodels are of many types and have diverse applications. A thorough discussion is presented in the following text.