
A metamodel is a model of a model, and metamodeling is the process of generating such metamodels. Thus 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
Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining Application software, software applications. It involves applying engineering design process, engineering principl ...
and
systems engineering
Systems engineering is an interdisciplinary field of engineering and engineering management that focuses on how to design, integrate, and manage complex systems over their Enterprise life cycle, life cycles. At its core, systems engineering uti ...
. Metamodels are of many types and have diverse applications.
Overview
A metamodel/ surrogate model is a model of the 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
A model is an informative representation of an object, person, or system. The term originally denoted the plans of a building in late 16th-century English, and derived via French and Italian ultimately from Latin , .
Models can be divided in ...
is an abstraction of phenomena in the
real world; a metamodel is yet another abstraction, highlighting the 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 networks,
Kriging
In statistics, originally in geostatistics, kriging or Kriging (), also known as Gaussian process regression, is a method of interpolation based on Gaussian process governed by prior covariances. Under suitable assumptions of the prior, kriging g ...
, etc. "Metamodeling" is the construction of a collection of "concepts" (things, terms, etc.) within a certain domain. Metamodeling typically involves studying the output and input relationships and then fitting the right metamodels to represent that behavior.
Common uses for metamodels are:
* As a
schema
Schema may refer to:
Science and technology
* SCHEMA (bioinformatics), an algorithm used in protein engineering
* Schema (genetic algorithms), a set of programs or bit strings that have some genotypic similarity
* Schema.org, a web markup vocab ...
for
semantic
Semantics is the study of linguistic Meaning (philosophy), meaning. It examines what meaning is, how words get their meaning, and how the meaning of a complex expression depends on its parts. Part of this process involves the distinction betwee ...
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
* As an approximation of a higher-fidelity model for use when reducing time, cost, or computational effort is necessary
Because of the "meta" character of metamodeling, both the
praxis
Praxis may refer to:
Philosophy and religion
*Praxis (process), the process by which a theory, lesson, or skill is enacted, practised, embodied, or realised
* Praxis model, a way of doing theology
* Praxis (Byzantine Rite), the practice of fai ...
and theory of metamodels are of relevance to
metascience
Metascience (also known as meta-research) is the use of scientific methodology to study science itself. Metascience seeks to increase the quality of scientific research while reducing inefficiency. It is also known as "research on research" and ...
,
metaphilosophy
Metaphilosophy, sometimes called the philosophy of philosophy, is "the investigation of the nature of philosophy". Its subject matter includes the aims of philosophy, the boundaries of philosophy, and its methods. Thus, while philosophy character ...
,
metatheories and
systemics
In the context of systems science and systems philosophy, systemics is an initiative to study systems. It is an attempt at developing logical, mathematical, engineering and philosophical paradigms and frameworks in which physical, technological, ...
, and meta-consciousness. The concept can be useful in
mathematics
Mathematics is a field of study that discovers and organizes methods, Mathematical theory, theories and theorems that are developed and Mathematical proof, proved for the needs of empirical sciences and mathematics itself. There are many ar ...
, and has practical applications in
computer science
Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
and
computer engineering
Computer engineering (CE, CoE, or CpE) is a branch of engineering specialized in developing computer hardware and software.
It integrates several fields of electrical engineering, electronics engineering and computer science.
Computer engi ...
/
software engineering
Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining Application software, software applications. It involves applying engineering design process, engineering principl ...
. The latter are the main focus of this article.
Topics
Definition
In
software engineering
Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining Application software, software applications. It involves applying engineering design process, engineering principl ...
, the use of
model
A model is an informative representation of an object, person, or system. The term originally denoted the plans of a building in late 16th-century English, and derived via French and Italian ultimately from Latin , .
Models can be divided in ...
s is an alternative to more common code-based development techniques. A model always conforms to a unique metamodel. One of the currently most active branches of
Model Driven Engineering
Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract r ...
is the approach named
model-driven architecture
Model-driven architecture (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model Driven Architecture is a kind of doma ...
proposed by
OMG. This approach is embodied in the
Meta Object Facility
The Meta-Object Facility (MOF) is an Object Management Group (OMG) standard for model-driven engineering. Its purpose is to provide a type system for entities in the CORBA architecture and a set of interfaces through which those types can be creat ...
(MOF) specification.
Typical metamodelling specifications proposed by
OMG are
UML,
SysML, SPEM or CWM.
ISO
The International Organization for Standardization (ISO ; ; ) is an independent, non-governmental, international standard development organization composed of representatives from the national standards organizations of member countries.
Me ...
has also published the standard metamodel
ISO/IEC 24744
ISO/IEC 24744 ''Software Engineering — Metamodel for Development Methodologies'' is an ISO/ IEC standard for software engineering metamodelling for development methodologies. It defines a metamodel from which development methodologies (so ...
. All the languages presented below could be defined as MOF metamodels.
Metadata modeling
Metadata modeling Metadata modeling is a type of metamodeling used in software engineering and systems engineering for the analysis and construction of models applicable to and useful for some predefined class of problems.
Meta-modeling is the analysis, constructio ...
is a type of metamodeling used in
software engineering
Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining Application software, software applications. It involves applying engineering design process, engineering principl ...
and
systems engineering
Systems engineering is an interdisciplinary field of engineering and engineering management that focuses on how to design, integrate, and manage complex systems over their Enterprise life cycle, life cycles. At its core, systems engineering uti ...
for the analysis and construction of models applicable and useful to some predefined class of problems. (see also:
data modeling
Data modeling in software engineering is the process of creating a data model for an information system by applying certain formal techniques. It may be applied as part of broader Model-driven engineering (MDE) concept.
Overview
Data modeli ...
).
Model transformations
One important move in
model-driven engineering
Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual model (computer science), conceptual models of all the topics related to a specific problem. Hence, i ...
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 (MOF). Among many other
model transformation languages (MTLs), some examples of implementations of this standard are AndroMDA,
VIATRA
VIATRA
is an open-source model transformation framework based on the Eclipse Modeling Framework (EMF) and hosted by the Eclipse Foundation.
VIATRA supports the development of model transformations with specific focus on event-driven,
reactive ...
,
Tefkat,
MT,
ManyDesigns Portofino.
Relationship to ontologies
Meta-models are closely related to
ontologies
In information science, an ontology encompasses a representation, formal naming, and definitions of the categories, properties, and relations between the concepts, data, or entities that pertain to one, many, or all domains of discourse. More ...
. Both are often used to describe and analyze the relations between concepts:
* Ontologies: express something meaningful within a specified universe or
domain of discourse
In the formal sciences, the domain of discourse or universe of discourse (borrowing from the mathematical concept of ''universe'') is the set of entities over which certain variables of interest in some formal treatment may range.
It is also ...
by utilizing 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 ontologies are modeled ''explicitly'' as metamodels."
[
]
Types of metamodels
For software engineering, several ''types'' of models (and their corresponding modeling activities) can be distinguished:
*Metadata modeling Metadata modeling is a type of metamodeling used in software engineering and systems engineering for the analysis and construction of models applicable to and useful for some predefined class of problems.
Meta-modeling is the analysis, constructio ...
(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
Kermeta is a modeling and programming language for metamodel engineering.
History
The Kermeta language was initiated by Franck Fleurey in 2005 within thTriskellteam of IRISA (gathering researchers of the INRIA, CNRS, INSA and the University of ...
)
* Model transformation language (see below)
* Polynomial metamodels
*Neural network
A neural network is a group of interconnected units called neurons that send signals to one another. Neurons can be either biological cells or signal pathways. While individual neurons are simple, many of them together in a network can perfor ...
metamodels
*Kriging
In statistics, originally in geostatistics, kriging or Kriging (), also known as Gaussian process regression, is a method of interpolation based on Gaussian process governed by prior covariances. Under suitable assumptions of the prior, kriging g ...
metamodels
* Piecewise polynomial (spline) metamodels
* Gradient-enhanced kriging (GEK)
Zoos of metamodels
A library of similar metamodels has been called a Zoo of metamodels.
There are several types of meta-model zoos.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 for UML, a
UML CASE
Case or CASE may refer to:
Instances
* Instantiation (disambiguation), a realization of a concept, theme, or design
* Special case, an instance that differs in a certain way from others of the type
Containers
* Case (goods), a package of relate ...
tool.
See also
*
Business reference model
Business reference model (BRM) is a reference model, concentrating on the functional and organizational aspects of the core business of an Business, enterprise, Tertiary sector of the economy, service organization or government agency.
In enterpri ...
*
Data governance
*
Model-driven engineering
Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual model (computer science), conceptual models of all the topics related to a specific problem. Hence, i ...
(MDE)
*
Model-driven architecture
Model-driven architecture (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model Driven Architecture is a kind of doma ...
(MDA)
*
Domain-specific language
A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging ...
(DSL)
*
Domain-specific modeling (DSM)
*
Generic Eclipse Modeling System
Generic Eclipse Modeling System (GEMS) is a configurable toolkit for creating domain-specific modeling and program synthesis environments for Eclipse. The project aims to bridge the gap between the communities experienced with visual metamodeling ...
(GEMS)
*
Kermeta
Kermeta is a modeling and programming language for metamodel engineering.
History
The Kermeta language was initiated by Franck Fleurey in 2005 within thTriskellteam of IRISA (gathering researchers of the INRIA, CNRS, INSA and the University of ...
(Kernel Meta-modeling)
*
Metadata
Metadata (or metainformation) is "data that provides information about other data", but not the content of the data itself, such as the text of a message or the image itself. There are many distinct types of metadata, including:
* Descriptive ...
*
MetaCASE tool (tools for creating tools for
computer-aided software engineering
Computer-aided software engineering (CASE) is a domain of software tools used to design and implement applications. CASE tools are similar to and are partly inspired by computer-aided design (CAD) tools used for designing hardware products. CASE ...
tools)
*
Method engineering
Method engineering in the "field of information systems is the List of academic disciplines, discipline to construct new methods from existing methods".F. Harmsen & M. Saeki (1996). "Comparison of four method engineering languages". In: Sjaak ...
*
MODAF Meta-Model
*
MOF Queries/Views/Transformations (MOF QVT)
*
Object Process Methodology
*
Requirements analysis
In systems engineering and software engineering, requirements analysis focuses on the tasks that determine the needs or conditions to meet the new or altered product or project, taking account of the possibly conflicting requirements of the v ...
*
Space mapping
*
Surrogate model
*
Transformation language
A transformation language is a computer language designed to transform some input text in a certain formal language into a modified output text that meets some specific goal.
Program transformation systems such as Stratego/XT, TXL, Tom, DMS, ...
*
VIATRA
VIATRA
is an open-source model transformation framework based on the Eclipse Modeling Framework (EMF) and hosted by the Eclipse Foundation.
VIATRA supports the development of model transformations with specific focus on event-driven,
reactive ...
(Viatra)
*
XML transformation language
An XML transformation language is a programming language designed specifically to transform an ''input'' XML document into an ''output'' document which satisfies some specific goal.
There are two special cases of transformation:
* XML to XML: ...
(XML TL)
References
Further reading
*
* 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
* Gopi Bulusu, hamara.in, 200
''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 (UK): Wiley. 210 p.
* M.A. Jeusfeld, M. Jarke, and
J. Mylopoulos, 2009. Metamodeling for Method Engineering. Cambridge (USA): The MIT Press. 424 p. , Open access via http://conceptbase.sourceforge.net/2021_Metamodeling_for_Method_Engineering.pdf
* G. Caplat ''Modèles & Métamodèles'', 2008 -
* 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.
{{Meta-prefix
Software design
Scientific modelling