Metamodeling
Encyclopedia
Metamodeling, or meta-modeling in software engineering
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...

 and systems engineering
Systems engineering
Systems engineering is an interdisciplinary field of engineering that focuses on how complex engineering projects should be designed and managed over the life cycle of the project. Issues such as logistics, the coordination of different teams, and automatic control of machinery become more...

 among other disciplines, is the analysis, construction and development of the frames, rules, constraints, models and theories applicable and useful for modeling
Scientific modelling
Scientific modelling is the process of generating abstract, conceptual, graphical and/or mathematical models. Science offers a growing collection of methods, techniques and theory about all kinds of specialized scientific modelling...

 a predefined class of problems. As its name implies, this concept applies the notions of meta- and modeling.

Overview

"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; 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.

Common uses for metamodels are:
  • As a schema
    Logical schema
    A Logical Schema is a data model of a specific problem domain expressed in terms of a particular data management technology. Without being specific to a particular database management product, it is in terms of either relational tables and columns, object-oriented classes, or XML tags...

     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


Because of the "meta" character of metamodeling, both the praxis and theory of metamodels are of relevance to metascience
Metascience
Metascience can refer to:*Science and technology studies*Science of science policy*Metahistory*Metaphysics*Metageography*any other set of thought through which people order their knowledge;*a scientific review journal called Metascience ....

, metaphilosophy
Metaphilosophy
Metaphilosophy, also called philosophy of philosophy, is the study of the nature, aims, and methods of philosophy. The term is derived from Greek word meta μετά and philosophía φιλοσοφία ....

, metatheories
Metatheory
A metatheory or meta-theory is a theory whose subject matter is some other theory. In other words it is a theory about a theory. Statements made in the metatheory about the theory are called metatheorems....

 and systemics
Systemics
In the context of systems science and systems philosophy, the term systemics refers to an initiative to study systems from a holistic point of view...

, and meta-consciousness. The concept can be useful in mathematics
Mathematics
Mathematics is the study of quantity, space, structure, and change. Mathematicians seek out patterns and formulate new conjectures. Mathematicians resolve the truth or falsity of conjectures by mathematical proofs, which are arguments sufficient to convince other mathematicians of their validity...

, and has practical applications in computer science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...

 and computer engineering
Computer engineering
Computer engineering, also called computer systems engineering, is a discipline that integrates several fields of electrical engineering and computer science required to develop computer systems. Computer engineers usually have training in electronic engineering, software design, and...

/software engineering
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...

, which are the main focus of this article.

Metamodeling topics

Definition

In software engineering
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...

, 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
Model-driven architecture
Model-driven architecture 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 domain engineering, and supports model-driven engineering of...

 proposed by OMG
Object Management Group
Object Management Group is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling and model-based standards.- Overview :...

. This approach is based on the utilization of a language to write metamodels called the Meta Object Facility or MOF
Meta-Object Facility
The Meta-Object Facility is an Object Management Group standard for model-driven engineering. The official reference page may be found at OMG's website.- Overview :...

. Typical metamodels proposed by OMG
Object Management Group
Object Management Group is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling and model-based standards.- Overview :...

 are UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

, SysML, SPEM or CWM. ISO has also published the standard metamodel ISO/IEC 24744
ISO/IEC 24744
ISO/IEC 24744 Software Engineering — Metamodel for Development Methodologies is an ISO standard for software engineering metamodelling for development methodologies...

. All the languages presented below could be defined as MOF metamodels.

Metadata modeling

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 and useful some predefined class of problems....

 is a type of metamodeling used in software engineering
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...

 and systems engineering
Systems engineering
Systems engineering is an interdisciplinary field of engineering that focuses on how complex engineering projects should be designed and managed over the life cycle of the project. Issues such as logistics, the coordination of different teams, and automatic control of machinery become more...

 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 Language
Model Transformation Language
A model transformation language in systems and software engineering is a language for model transformation.- Overview :The notion of model transformation is of central importance to information technology. A software system may be seen as a set of information transformations...

s. The OMG has proposed a standard for this called QVT
QVT
QVT is a standard set of languages for model transformation defined by the Object Management Group .- Overview :...

 for Queries/Views/Transformations. QVT
QVT
QVT is a standard set of languages for model transformation defined by the Object Management Group .- Overview :...

 is based on the Meta-Object Facility
Meta-Object Facility
The Meta-Object Facility is an Object Management Group standard for model-driven engineering. The official reference page may be found at OMG's website.- Overview :...

 or MOF. Among many other Model Transformation Language
Model Transformation Language
A model transformation language in systems and software engineering is a language for model transformation.- Overview :The notion of model transformation is of central importance to information technology. A software system may be seen as a set of information transformations...

s (MTLs), some examples of implementations of this standard are AndroMDA, VIATRA
VIATRA
The VIATRA framework is the core of a transformation-based verification and validation environment for improving the quality of systems designed using the Unified Modeling Language by automatically checking consistency, completeness, and dependability requirements.- Target Application Domains...

, Tefkat
Tefkat
Tefkat is a Model Transformation Language and a model transformation engine. The language is based on F-logic and the theory of stratified logic programs. The engine is an Eclipse plug-in for the Eclipse Modeling Framework .- History :...

, MT
MT
-Automotive:* Honda MT, a motorcycle* Hyundai Mega Truck, a medium-duty truck* Manual transmission, a part of a car* Motor Trend, an automotive magazine-Computing and the Internet:* Machine translation, a subfield of computational linguistics...

, ManyDesigns Portofino
ManyDesigns Portofino
ManyDesigns Portofino is an open-source web application framework written in Java, supporting several commercial and open source databases, and based on the Struts2 MVC framework...

.

Relationship to ontologies

Meta-models are closely related to ontologies
Ontology (computer science)
In computer science and information science, an ontology formally represents knowledge as a set of concepts within a domain, and the relationships between those concepts. It can be used to reason about the entities within that domain and may be used to describe the domain.In theory, an ontology is...

. Both are often used to describe and analyze the relations between concepts
  • Ontologies: express something meaningful within a specified universe or domain of discourse
    Domain of discourse
    In the formal sciences, the domain of discourse, also called the universe of discourse , is the set of entities over which certain variables of interest in some formal treatment may range...

     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 ontologies are modeled explicitly as metamodels”.

Types of meta-models

For software engineering, several types of models (and their corresponding modeling activities) can be distinguished:
  • 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 and useful some predefined class of problems....

     (MetaData Model)
  • Meta-Process Modeling
    Meta-Process Modeling
    Meta-process 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 problems....

     (MetaProcess Model)
  • Executable Meta-Modeling (combining both of the above and much more, as in the general purpose tool Kermeta
    Kermeta
    -History:The Kermeta language was initiated by Franck Fleurey in 2005 within the team of IRISA ....

    )
  • Model Transformation Language
    Model Transformation Language
    A model transformation language in systems and software engineering is a language for model transformation.- Overview :The notion of model transformation is of central importance to information technology. A software system may be seen as a set of information transformations...

     (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
Meta-Object Facility
The Meta-Object Facility is an Object Management Group standard for model-driven engineering. The official reference page may be found at OMG's website.- Overview :...

 1.4 - XMI
XML Metadata Interchange
The XML Metadata Interchange is an Object Management Group standard for exchanging metadata information via Extensible Markup Language .It can be used for any metadata whose metamodel can be expressed in Meta-Object Facility ....

 1.2. The metamodels expressed in UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

-XMI
XML Metadata Interchange
The XML Metadata Interchange is an Object Management Group standard for exchanging metadata information via Extensible Markup Language .It can be used for any metadata whose metamodel can be expressed in Meta-Object Facility ....

1.2 may be uploaded in Poseidon for UML
Poseidon for UML
Poseidon for UML is a software application used to create models with the Unified Modeling Language. It originated from the ArgoUML project, but massive changes were necessary in order to make ArgoUML into a commercial project; as a result the two efforts are very divergent....

, a UML
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

 CASE
Computer-aided software engineering
Computer-aided software engineering is the scientific application of a set of tools and methods to a software system which is meant to result in high-quality, defect-free, and maintainable software products...

 tool.

See also

  • Business reference model
    Business reference model
    Business reference model is a reference model, concentrating on the functional and organizational aspects of the core business of an enterprise, service organization or government agency....

  • Data governance
    Data governance
    Data governance is an emerging discipline with an evolving definition. The discipline embodies a convergence of data quality, data management, data policies, business process management, and risk management surrounding the handling of data in an organization...

  • Model Driven Engineering (MDE)
  • Model-driven architecture
    Model-driven architecture
    Model-driven architecture 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 domain engineering, and supports model-driven engineering of...

     (MDA)
  • Domain Specific Language (DSL)
  • Domain-Specific Modeling
    Domain-Specific Modeling
    Domain-specific modeling is a software engineering methodology for designing and developing systems, such as computer software. It involves systematic use of a domain-specific language to represent the various facets of a system...

     (DSM)
  • Generic Eclipse Modeling System
    Generic Eclipse Modeling System
    Generic Eclipse Modeling System is a configurable toolkit for creating domain-specific modeling and program synthesis environments for Eclipse...

     (GEMS)
  • Kermeta
    Kermeta
    -History:The Kermeta language was initiated by Franck Fleurey in 2005 within the team of IRISA ....

     (Kernel Meta-modeling)
  • MetaCASE tool
    MetaCASE tool
    meta-CASE tool is a type of application software that provides possibility to use more than one modelling metodics or notations within process of software development....

     (tools for creating tools for Computer-aided software engineering
    Computer-aided software engineering
    Computer-aided software engineering is the scientific application of a set of tools and methods to a software system which is meant to result in high-quality, defect-free, and maintainable software products...

     tools)
  • Meta model (NLP)
    Meta model (NLP)
    The meta-model is a pragmatic communications model used to specify information in a speaker's language. It is often contrasted with the intentionally ambiguous Milton Erickson inspired-Milton model...

  • Method engineering
    Method engineering
    Method engineering in the "field of information systems is the discipline to construct new methods from existing methods". It focuses on "the design, construction and evaluation of methods, techniques and support tools for information systems development"....

  • MODAF Meta-Model
    MODAF Meta-Model
    The MODAF Meta-Model is the underlying model for the UK MoD Architecture Framework . It defines a UML profile by extending the UML 2.1 Meta-Model. The M3 was one of the key inputs to the OMG UPDM specification.Version 1.1 of the M3 was released on 18 May 2007...

  • MOF Queries/Views/Transformations
    QVT
    QVT is a standard set of languages for model transformation defined by the Object Management Group .- Overview :...

     (MOF QVT)
  • Object Process Methodology
    Object Process Methodology
    Object Process Methodology is an approach to designing information systems by depicting them using object models and process models. OPM was conceived and developed by Prof. Dov Dori, at the Technion – Israel Institute of Technology. A paper that first presented ideas underlying OPM was published...

  • Requirements analysis
    Requirements analysis
    Requirements analysis in systems engineering and software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various stakeholders, such as beneficiaries or users...

  • Surrogate model
    Surrogate model
    Most engineering design problems require experiments and/or simulations to evaluate design objective and constraint functions as function of design variables. For example, in order to find the optimal airfoil shape for an aircraft wing, an engineer simulates the air flow around the wing for...

  • Transformation language
    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....

  • VIATRA
    VIATRA
    The VIATRA framework is the core of a transformation-based verification and validation environment for improving the quality of systems designed using the Unified Modeling Language by automatically checking consistency, completeness, and dependability requirements.- Target Application Domains...

     (Viatra)
  • XML transformation language
    XML transformation language
    An XML transformation language is a programming language designed specifically to transform an input XML document into an output XML document which satisfies some specific goal.There are two special cases of transformation:...

    (XML TL)

Further reading

  • J. Bezivin, On the Unification Power of Models, in: Software and System Modeling (SoSym) 4(2):171—188.
  • 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
  • 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. ISBN 9780470030363
  • M.A. Jeusfeld, M. Jarke, and J. Mylopoulos, 2009. Metamodeling for Method Engineering. Cambridge (USA): The MIT Press. 424 p. ISBN 9780262101080
  • G. Caplat Modèles & Métamodèles, 2008 - ISBN 978-2-88074-749-7
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK