Nothing Special   »   [go: up one dir, main page]

Metamodeling: Jump To Navigation Jump To Search

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 6

Metamodeling

From Wikipedia, the free encyclopedia


Jump to navigationJump to search
"Meta model" redirects here. For other uses, see Meta model (disambiguation).

Example of a Geologic map information meta-model, with four types of meta-objects, and their self-
references.[1]
A metamodel or surrogate model 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 and systems
engineering. Metamodels are of many types and have diverse applications. [2]

Contents

 1Overview
 2Topics

o 2.1Definition

o 2.2Metadata modeling

o 2.3Model transformations

o 2.4Relationship to ontologies

o 2.5Types of metamodels

o 2.6Zoos of metamodels

o 2.7Metamodeling software

 3See also

 4References
 5Further reading

Overview[edit]
A metamodel or 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.[3][4] 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" (things, terms, etc.) 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
 As an approximation of a higher-fidelity model for use when reducing computational
cost is necessary

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.

Topics[edit]

Meta-Object Facility Illustration.


A US FEA Business reference model.[5]

Example of an ontology.

A DoDAF metamodel.
Definition[edit]
In software engineering, the use of models is an alternative to more common 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.[6] All the languages presented below could be defined as MOF
metamodels.
Metadata modeling[edit]
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. (see also: data modeling).
Model transformations[edit]
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, MT, ManyDesigns Portofino.
Relationship to ontologies[edit]
Meta-models are closely related to ontologies. Both are often used to describe and analyze
the relations between concepts[7]

 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. [8]
 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.[9] "A valid metamodel is an ontology, but not all ontologies
are modeled explicitly as metamodels".[8]

Types of metamodels[edit]
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)
 Polynomial metamodels[10]
 Neural network metamodels
 Kriging metamodels
 Piecewise polynomial (spline) metamodels
 Gradient-enhanced kriging (GEK)

Zoos of metamodels[edit]
A library of similar metamodels has been called a Zoo of metamodels. [11] There are several
types of meta-model zoos.[12] 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.
Metamodeling software[edit]

 Surrogate Modeling Toolbox (SMT: https://github.com/SMTorg/smt): is a Python


package that contains a collection of surrogate modeling methods, sampling techniques,
and benchmarking functions. This package provides a library of surrogate models that is
simple to use and facilitates the implementation of additional methods. SMT is different
from existing surrogate modeling libraries because of its emphasis on derivatives,
including training derivatives used for gradient-enhanced modeling, prediction
derivatives, and derivatives with respect to the training data. It also includes new
surrogate models that are not available elsewhere: kriging by partial-least squares
reduction and energy-minimizing spline interpolation. [13]

See also[edit]
 Business reference model
 Data governance
 Model-driven engineering (MDE)
 Model-driven architecture (MDA)
 Domain Specific Language (DSL)
 Domain-Specific Modeling (DSM)
 Generic Eclipse Modeling System (GEMS)
 Kermeta (Kernel Meta-modeling)
 Metadata
 MetaCASE tool (tools for creating tools for computer-aided software
engineering tools)
 Method engineering
 MODAF Meta-Model
 MOF Queries/Views/Transformations (MOF QVT)
 Object Process Methodology
 Requirements analysis
 Space mapping
 Surrogate model
 Transformation language
 VIATRA (Viatra)
 XML transformation language (XML TL)

References[edit]
1. ^ David R. Soller et al. (2001) Progress Report on the National Geologic Map
Database, Phase 3: An Online Database of Map Information Digital Mapping Techniques '01
-- Workshop Proceedings U.S. Geological Survey Open-File Report 01-223.
2. ^ Saraju Mohanty, Chapter 12 Metamodel-Based Fast AMS-SoC Design
Methodologies, "Nanoelectronic Mixed-Signal System Design", ISBN 978-0071825719 and
0071825711, 1st Edition, McGraw-Hill, 2015.
3. ^ Oleg Garitselov, Saraju Mohanty, and Elias Kougianos, "A Comparative Study of
Metamodels for Fast and Accurate Simulation of Nano-CMOS Circuits Archived 23
September 2015 at the Wayback Machine", IEEE Transactions on Semiconductor
Manufacturing (TSM), Vol. 25, No. 1, February 2012, pp. 26–36.
4. ^ Saraju Mohanty Ultra-Fast Design Exploration of Nanoscale Circuits through
Metamodeling Archived 23 September 2015 at the Wayback Machine, Invited Talk,
Semiconductor Research Corporation (SRC), Texas Analog Center for Excellence (TxACE),
27 April 2012.
5. ^ FEA (2005) FEA Records Management Profile, Version 1.0. December 15, 2005.
6. ^ International Organization for Standardization / International Electrotechnical
Commission, 2007. ISO/IEC 24744. Software Engineering - Metamodel for Development
Methodologies.
7. ^ E. Söderström, et al. (2001) "Towards a Framework for Comparing Process
Modelling Languages", in: Lecture Notes In Computer Science; Vol. 2348. Proceedings of the
14th International Conference on Advanced Information Systems Engineering. Pages: 600 –
611, 2001
8. ^ Jump up to:a b Pidcock, Woody (2003), What are the differences between a
vocabulary, a taxonomy, a thesaurus, an ontology, and a meta-model?
9. ^ Ernst, Johannes (2002), What is metamodeling, and what is it good for?
10. ^ Saraju Mohanty and Elias Kougianos, "Polynomial Metamodel Based Fast
Optimization of Nano-CMOS Oscillator Circuits Archived 10 August 2014 at the Wayback
Machine", Springer Analog Integrated Circuits and Signal Processing Journal, Volume 79,
Issue 3, June 2014, pp. 437–453.
11. ^ Jean-Marie Favre: Towards a Basic Theory to Model Driven
Engineering. Archived15 October 2006 at the Wayback Machine.
12. ^ AtlanticZoo Archived 29 April 2006 at the Wayback Machine.
13. ^ Bouhlel, M.A.; Hwang, J.H.; Bartoli, Nathalie; Lafage, R.; Morlier, J.; Martins,
J.R.R.A. (2019). "A Python surrogate modeling framework with derivatives". Advances in
Engineering Software. doi:10.1016/j.advengsoft.2019.03.005.

You might also like