Metamodeling

Metamodeling
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

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.

Metamodeling topics

Meta-Object Facility Illustration.
An US FEA Business reference model.[2]
Example of an ontology.
A DoDAF metamodel.

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.

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

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

Types of meta-models

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

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.

See also

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.

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)

Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • metamodeling — noun The design, construction and use of metamodels …   Wiktionary

  • Meta-Object Facility — Illustration of the Meta Object Facility. The Meta Object Facility (MOF) is an Object Management Group (OMG) standard for model driven engineering. The official reference page may be found at OMG s website.[1] Contents …   Wikipedia

  • ConceptBase — All 4 MOF levels for Entity Relationship Diagrams displayed in the ConceptBase Graph Editor ConceptBase is a deductive and object oriented database management system developed at University of Aachen and Tilburg University. It is mainly used for… …   Wikipedia

  • 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. Another definition: Meta CASE tools are software tools that support the design …   Wikipedia

  • 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 some predefined problems. Meta process support the effort of creating flexible process models. The… …   Wikipedia

  • MetaEdit+ — Developer(s) MetaCase Initial release 1995 Stable release 4.5 SR1a / 2009 08 18 Development status Active Operating system …   Wikipedia

  • Modeling language — A modeling language is any artificial language that can be used to express information or knowledge or systems in a structure that is defined by a consistent set of rules. The rules are used for interpretation of the meaning of components in the… …   Wikipedia

  • Automatic programming — In computer science, the term automatic programming [Ricardo Aler Mur, [http://et.evannai.inf.uc3m.es/icml06/aiptutorial.htm Automatic Inductive Programming] , ICML 2006 Tutorial . June 2006.] identifies a type of computer programming in which… …   Wikipedia

  • Glossary of Unified Modeling Language terms — This glossary of Unified Modeling Language terms covers all versions of UML. Individual entries will point out any distinctions that exist between versions.A* Abstract An indicator applied to a classifier (e.g., actor, class, use case) or to some …   Wikipedia

  • Eclipse Modeling Project — The Eclipse Modeling Project (EMP) focuses on the evolution and promotion of model based development technologies within the Eclipse community. Borland Software and IBM are co leaders of the project and are teaming to continue to advance Eclipse… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”