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.
Overview A metamodel or surrogate model is a model
of a model, i.e. a simplified model of an actual model of a circuit, system, or software
like entity. Metamodel can be a mathematical relation or algorithm representing input and
output relations. A model is an abstraction of phenomena in the real world; a metamodel
is yet another abstraction, highlighting properties of the model itself. A model conforms to its
metamodel in the way that a computer program conforms to the grammar of the programming
language in which it is written. Various types of metamodels include polynomial equations,
neural network, Kriging, etc. "Metamodeling" is the construction of a collection of "concepts"
within a certain domain. Metamodeling typically involves studying the output and input relationships
and then fitting right metamodels to represent that behavior.
Common uses for metamodels are: As a schema for semantic data that needs to
be exchanged or stored As a language that supports a particular method
or process As a language to express additional semantics
of existing information As a mechanism to create tools that work with
a broad class of models at run time As a schema for modeling and automatically
exploring sentences of a language with applications to automated test synthesis
Because of the "meta" character of metamodeling, both the praxis and theory of metamodels are
of relevance to metascience, metaphilosophy, metatheories and systemics, and meta-consciousness.
The concept can be useful in mathematics, and has practical applications in computer
science and computer engineering/software engineering. The latter are the main focus
of this article. Metamodeling topics
Definition In software engineering, the use of models
is more and more recommended. This should be contrasted with the classical code-based
development techniques. A model always conforms to a unique metamodel. One of the currently
most active branch of Model Driven Engineering is the approach named model-driven architecture
proposed by OMG. This approach is based on the utilization of a language to write metamodels
called the Meta Object Facility or MOF. Typical metamodels proposed by OMG are UML, SysML,
SPEM or CWM. ISO has also published the standard metamodel ISO/IEC 24744. All the languages
presented below could be defined as MOF metamodels. Metadata modeling
Metadata modeling is a type of metamodeling used in software engineering and systems engineering
for the analysis and construction of models applicable and useful to some predefined class
of problems.. Model transformations
One important move in Model Driven Engineering is the systematic use of Model Transformation
Languages. The OMG has proposed a standard for this called QVT for QueriesTransformations.
QVT is based on the Meta-Object Facility or MOF. Among many other Model Transformation
Languages, some examples of implementations of this standard are AndroMDA, VIATRA, Tefkat,
MT, ManyDesigns Portofino. Relationship to ontologies
Meta-models are closely related to ontologies. Both are often used to describe and analyze
the relations between concepts Ontologies: express something meaningful within
a specified universe or domain of discourse by utilizing a grammar for using vocabulary.
The grammar specifies what it means to be a well-formed statement, assertion, query,
etc. on how terms in the ontology’s controlled vocabulary can be used together.
Meta-modeling: can be considered as an explicit description of how a domain-specific model
is built. In particular, this comprises a formalized specification of the domain-specific
notations. Typically, metamodels are – and always should follow - a strict rule set.
“A valid metamodel is an ontology, but not all ontologies are modeled explicitly as metamodels”.
Types of metamodels For software engineering, several types of
models can be distinguished: Metadata modeling
Meta-Process Modeling Executable Meta-Modeling
Model Transformation Language Polynomial Metamodels
Neural network Metamodels Kriging Metamodels
Piecewise Polynomial Metamodels Zoos of metamodels
A library of similar metamodels has been called a Zoo of metamodels. There are several types
of meta-model zoos. Some are expressed in ECore. Others are written in MOF 1.4 - XMI
1.2. The metamodels expressed in UML-XMI1.2 may be uploaded in Poseidon for UML, a UML
CASE tool. See also
Business reference model Data governance
Model Driven Engineering Model-driven architecture
Domain Specific Language Domain-Specific Modeling
Generic Eclipse Modeling System Kermeta
Metadata MetaCASE tool
Method engineering MODAF Meta-Model
MOF QueriesTransformations Object Process Methodology
Requirements analysis Surrogate model
Transformation language VIATRA
XML transformation language References
Further reading J. Bezivin, On the Unification Power of Models,
in: Software and System Modeling 4(2):171—188. Booch, G., Rumbaugh, J., Jacobson, I., The
Unified Modeling Language User Guide, Redwood City, CA: Addison Wesley Longman Publishing
Co., Inc. J. P. van Gigch, System Design Modeling and
Metamodeling, Plenum Press, New York, 1991 Gopi Bulusu, hamara.in, 2004 Model Driven
Transformation P. C. Smolik, Mambo Metamodeling Environment,
Doctoral Thesis, Brno University of Technology. 2006
Gonzalez-Perez, C. and B. Henderson-Sellers, 2008. Metamodelling for Software Engineering.
Chichester: Wiley. 210 p. ISBN 978-0-470-03036-3 M.A. Jeusfeld, M. Jarke, and J. Mylopoulos,
2009. Metamodeling for Method Engineering. Cambridge: The MIT Press. 424 p. ISBN 978-0-262-10108-0
G. Caplat Modèles & Métamodèles, 2008 - ISBN 978-2-88074-749-7
Fill, H.-G., Karagiannis, D., 2013. On the Conceptualisation of Modelling Methods Using
the ADOxx Meta Modelling Platform, Enterprise Modelling and Information Systems Architectures,
Vol. 8, Issue 1, 4-25.