Everything about Metamodeling totally explained
» 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). For the approximating models known as the Meta-model in Computer_simulation see Surrogate model.
Most general,
metamodeling or
meta-modeling is the analysis, construction and development of the frames, rules, constraints, models and theories applicable and useful for the modeling in a predefined class of problems. This concept definition is composed with the notions of the terms
meta- and
modeling.
Overview
For the reason of the meta character of metamodeling, this activity and metamodels are the domain of interest of metascience,
metaphilosophy,
metatheories and
systemics, as well as, are related to meta-consciousness.
From the computational perspective, this concept is used in
mathematics, and is practically applied in
computer science and
computer engineering/
software engineering, what mainly is illustrated in this article.
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's 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
Topics in metamodeling
Definition
The following discussion can be viewed as a detailed application of
metamodeling techniques, related to
Model Driven Engineering. In 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(External Link
). 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 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.
Relationship to ontologies
Meta-models are closely related to
ontologies. Both are often used to describe and analyze the relations between concepts [Söderström2002].
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. (formal constraints) on how terms in the ontology’s controlled vocabulary can be used together. [Metamodel-b]
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. [Metamodel-a]. “A valid metamodel is an ontology, but not all ontology are modeled
explicitly as metamodels” [Metamodel-b].
Types of meta-models
For software engineering, several
types of models (and their corresponding modeling activities) can be distinguished:
Metadata modeling (MetaData Model)
Meta-Process Modeling (MetaProcess Model)
Executable Meta-Modeling (combining both of the above and much more, as in the general purpose tool Kermeta)
Model Transformation Language (see below)
Zoos of metamodels
A library of similar meta-models has been called a Zoo of meta-models.
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.
Further Information
Get more info on 'Metamodeling'.
|
External Link Exchanges
Do you know how hard it is to get a link from a large encyclopaedia? Well we're different and will prove it. To get a link from us just add the following HTML to your site on a relevant page:
<a href="http://metamodeling.totallyexplained.com">Metamodeling Totally Explained</a>
Then simply click through this link from your web page. Our crawlers will verify your link, extract the title of your web page and instantly add a link back to it. If you like you can remove the words Totally Explained and embed the link in article text.
As long as your link remains in place, we'll keep our link to you right here. Please play fair - our crawlers are watching. Your site must be closely related to this one's topic. Any kind of spamming, dubious practises or removing the link will result in your link from us being dropped and, potentially, your whole site being banned. |