Metamodeling
|
|
This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. (June 2008) |
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
[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:
- 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)
[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
| Wikimedia Commons has media related to: Metamodeling |
- 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)
- MetaCASE tool (tools for creating tools for Computer-aided software engineering tools)
- Meta model (NLP)
- Method engineering
- MODAF Meta-Model
- MOF Queries/Views/Transformations (MOF QVT)
- Object Process Methodology
- Requirements analysis
- Surrogate model
- Transformation language
- VIATRA (Viatra)
- XML transformation language (XML TL)
[edit] References
- ^ 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.
- ^ FEA (2005) FEA Records Management Profile, Version 1.0. December 15, 2005.
- ^ International Organization for Standardization / International Electrotechnical Commission, 2007. ISO/IEC 24744. Software Engineering - Metamodel for Development Methodologies.
- ^ 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
- ^ 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
- ^ Ernst, Johannes (2002) What is metamodeling, and what is it good for? http://infogrid.org/wiki/Reference/WhatIsMetaModeling
- ^ Jean-Marie Favre: Towards a Basic Theory to Model Driven Engineering..
- ^ 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)
|
|||||||||||||||||||||||||||||||