Metamodeling

From Wikipedia, the free encyclopedia
  (Redirected from Meta-modeling)
Jump to: navigation, search
Example of a Geologic map information meta-model, with four types of meta-objects, and their self-references.[1]

Metamodeling, or meta-modeling in software engineering and systems engineering among other disciplines, 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.

Contents

[edit] 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 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[disambiguation needed ], 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, which are the main focus of this article.

[edit] Metamodeling topics

Meta-Object Facility Illustration.
Example of an ontology.
A DoDAF metamodel.

[edit] Definition

In 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. ISO has also published the standard metamodel ISO/IEC 24744.[3] All the languages presented below could be defined as MOF metamodels.

[edit] 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.

[edit] 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, MT[disambiguation needed ], ManyDesigns Portofino.

[edit] Relationship to ontologies

Meta-models are closely related to ontologies. Both are often used to describe and analyze the relations between concepts[4]

  • 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.[5]
  • 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.[6] “A valid metamodel is an ontology, but not all ontologies are modeled explicitly as metamodels”.[5]

[edit] Types of meta-models

For software engineering, several types of models (and their corresponding modeling activities) can be distinguished:

[edit] Zoos of metamodels

A library of similar meta-models has been called a Zoo of meta-models.[7] There are several types of meta-model zoos.[8] 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.

[edit] See also

[edit] References

  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. ^ FEA (2005) FEA Records Management Profile, Version 1.0. December 15, 2005.
  3. ^ International Organization for Standardization / International Electrotechnical Commission, 2007. ISO/IEC 24744. Software Engineering - Metamodel for Development Methodologies.
  4. ^ 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
  5. ^ a b Pidcock, Woody (2003) What are the differences between a vocabulary, a taxonomy, a thesaurus, an ontology, and a meta-model? http://infogrid.org/wiki/Reference/PidcockArticle 
  6. ^ Ernst, Johannes (2002) What is metamodeling, and what is it good for? http://infogrid.org/wiki/Reference/WhatIsMetaModeling 
  7. ^ Jean-Marie Favre: Towards a Basic Theory to Model Driven Engineering..
  8. ^ AtlanticZoo.

[edit] 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 (French)
Personal tools
Namespaces

Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages