- This is the concept of metamodeling in computer science and related disciplines. For the language patterns known as the Meta-model in Neuro-linguistic programming see Meta model (NLP).
In computer science and related disciplines, metamodeling is the construction of a collection of "concepts" (things, terms, etc.) within a certain domain. A model is an abstraction of phenomena in the real world, and a metamodel is yet another abstraction, highlighting properties of the model itself. This model is said to conform to its metamodel like a program conforms to the grammar of the programming language in which it is written. 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
Definition
The following discussion can be viewed as a detailed application of
metamodeling techniques, related to
Model Driven Engineering. In software engineering, data engineering and 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. All the languages presented below could be defined as MOF
metamodels.
Types of meta-models
For software engineering, several
types of models (and their corresponding modeling activities) can be distinguished:
Zoos of metamodels. A library of similar meta-models has been called a
Zoo of meta-models in
paper.
Several meta-model zoos may be found at:
AtlanticZoo. 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, a
UML CASE tool.
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 Queries/Views/Transformations.
QVT is based on the
Meta-Object Facility or MOF. Among many other
Model Transformation Languages (MTLs), some examples of implementations of this standard are
AndroMDA,
VIATRA,
Tefkat or
MT.
- QVT (Transformation Model). In the case of MOF/QVT, a model transformation is also a model. This means that the transformation language should be defined by a precise meta-model. An example of a model transformation language based on a precise meta-model is ATL.
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 of discourse by utilizing a grammar for using vocabulary. The grammar specifies what it means to be a well-formed statement, assertion, query, etc. (formal constraints) on how terms in the ontology’s controlled vocabulary can be used together. *
Meta-modeling can be considered as an explicit description (constructs and rules) 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 ontology are modeled explicitly as metamodels” [Metamodel-b.
See also
References
- * Booch, G., Rumbaugh, J., Jacobson, I. (1999). 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
- * J. Bezivin. On the Unification Power of Models. Software and System Modeling (SoSym) 4(2):171--188. http://www.sciences.univ-nantes.fr/lina/atl/www/papers/OnTheUnificationPowerOfModels.pdf
- * What is meta-modeling? http://www.metamodel.com/staticpages/index.php?page=20021010231056977 . 11.10.2002
- * Johannes Ernst. What are the differences between a vocabulary, a taxonomy, a thesaurus, an ontology, and a meta-model? http://www.metamodel.com/article.php?story=20030115211223271 . 10.10.2002
- * E. Söderström, B. Andersson, P. Johannesson, E. Perjons, and B. Wangler. Towards a Framework for Comparing Process Modelling Languages. Lecture Notes In Computer Science; Vol. 2348. Proceedings of the 14th International Conference on Advanced Information Systems Engineering. Pages: 600 – 611, 2002
Software engineering | Systems engineering
Métamodèle