Model Transformation Language
Encyclopedia
A model transformation language in systems
and software engineering
is a language for model transformation
.
is of central importance to information technology
. A software system may be seen as a set of information transformations. The Unix system itself may be viewed as a framework to use and to build transformation programs (filters
) from basic transformation languages like grep, sed, awk, perl, etc. A software development process itself may also be considered as a chain of transformation from abstract requirements to executable systems.
Some transformation languages exhibit the characteristic of homoiconicity
, in which the language used for expressing a data model
is also related to or identical to the transformation language. The most noteworthy example is the relationship between XML
and XSLT
. This kind of emphasis is viewed by some as having a favorable compatibility with model-driven 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...
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...
is a language for model transformation
Model transformation
A model transformation, in model-driven engineering, is an automatable way of ensuring that a family of models is consistent, in a precise sense which the software engineer can define...
.
Overview
The notion of model transformationModel transformation
A model transformation, in model-driven engineering, is an automatable way of ensuring that a family of models is consistent, in a precise sense which the software engineer can define...
is of central importance to information technology
Information technology
Information technology is the acquisition, processing, storage and dissemination of vocal, pictorial, textual and numerical information by a microelectronics-based combination of computing and telecommunications...
. A software system may be seen as a set of information transformations. The Unix system itself may be viewed as a framework to use and to build transformation programs (filters
Filter (software)
A filter is a computer program to process a data stream. Some operating systems such as Unix are rich with filter programs. Even Windows has some simple filters built into its command shell, most of which have significant enhancements relative to the similar filter commands that were available in...
) from basic transformation languages like grep, sed, awk, perl, etc. A software development process itself may also be considered as a chain of transformation from abstract requirements to executable systems.
Some transformation languages exhibit the characteristic of homoiconicity
Homoiconicity
In computer programming, homoiconicity is a property of some programming languages, in which the primary representation of programs is also a data structure in a primitive type of the language itself, from the Greek words homo meaning the same and icon meaning representation...
, in which the language used for expressing a data model
Data model
A data model in software engineering is an abstract model, that documents and organizes the business data for communication between team members and is used as a plan for developing applications, specifically how data is stored and accessed....
is also related to or identical to the transformation language. The most noteworthy example is the relationship between XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
and XSLT
XSLT
XSLT is a declarative, XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized by the processor in standard XML syntax or in another format,...
. This kind of emphasis is viewed by some as having a favorable compatibility with model-driven engineering
Model-driven engineering
Model-driven engineering is a software development methodology which focuses on creating and exploiting domain models , rather than on the computing concepts...
.
Available transformation languages
- ATLATLAS Transformation LanguageATL is a model transformation language and toolkit developed and maintained by OBEO and AtlanMod. It was initiated by the team...
: a transformation language developed by the INRIA - Beanbag (see http://code.google.com/p/synclib/) : an operation-based language for establishing consistency over data incrementally
- GReATGReATGraph Rewriting and Transformation is a Model Transformation Language for Model Integrated Computing available in the GME environment. GReAT has a rich pattern specification sublanguage, a graph transformation sublanguage and a high level control-flow sublanguage. It has been designed to address...
: a transformation language available in the GMEGeneric Modeling EnvironmentGeneric Modeling Environment is a model-integrated program synthesis tool for creating domain-specific models of large-scale systems. GME allows users to define new modeling languages using UML-based metamodels... - Epsilon family (see http://www.eclipse.org/gmt/epsilon) : a model management platform that provides transformation languages for model-to-model, model-to-text, update-in-place, and model merging transformations.
- JTLJTLjtL was a South Korean dance music group, consisting of the former H.O.T. members who did not stay with SM Entertainment- Jang Woo Hyuk, Tony An and Lee Jae Won. The group was named after the initials of the members' stage name...
: a bidirectional model transformation language specifically designed to support non-bijective transformations and change propagation (see http://jtl.di.univaq.it/). - KermetaKermeta-History:The Kermeta language was initiated by Franck Fleurey in 2005 within the team of IRISA ....
: a general purpose modeling and programming language, also able to perform transformations - Lx family (see http://lx.mii.lu.lv/) : a set of low-level transformation languages
- M2MM2M (Eclipse)M2M is the Eclipse implementation of the OMG QVT standard . M2M is a subproject of .Three components are available for model to model transformations:...
is the EclipseEclipse (software)Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...
implementation of the OMGObject Management GroupObject 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 :...
QVTQVTQVT is a standard set of languages for model transformation defined by the Object Management Group .- Overview :...
standard - Mia-TL : a transformation language developed by Mia-Software
- MOF Model to Text Transformation LanguageMOF Model to Text Transformation LanguageMOF Model to Text Transformation Language is an Object Management Group specification for a model transformation language. Specifically, it can be used to express transformations which transform a model into text , for example a platform-specific model into source code or documentation...
: the OMGObject Management GroupObject 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 :...
has defined a standard for expressing M2T transformations - MOLA (see http://mola.mii.lu.lv/) : a graphical high-level transformation language built in upon Lx.
- MT : a transformation language developed at King's College, London (UK) (based on Converge PLConverge PLConverge is a dynamic object-oriented programming language with compile-time meta-programming facilities.Developed by the British computer scientist Laurence Tratt, Converge was originally intended for implementing model transformations in the context of Model-Driven Software Development approaches...
) - QVTQVTQVT is a standard set of languages for model transformation defined by the Object Management Group .- Overview :...
: the OMGObject Management GroupObject 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 :...
has defined a standard for expressing M2M transformations, called MOF/QVT or in short QVT. - SiTra http://www.cs.bham.ac.uk/~bxb/SiTra.html : a pragmatic transformation approach based on using a standard programming language, e.g. Java, C#
- Stratego/XTStratego/XTStratego/XT is a language and toolset for constructing stand-alone program transformation systems.It combines the Stratego transformation language with the XT toolset of transformation components, providing a framework for constructing stand-alone...
: a transformation language based on rewriting with programmable strategies - TefkatTefkatTefkat 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 :...
: a transformation language and a model transformation engine - VIATRAVIATRAThe 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...
: a framework for transformation-based verification and validation environment
See also
- Data transformationData transformationIn metadata and data warehouse, a data transformation converts data from a source data format into destination data.Data transformation can be divided into two steps:...
- Domain-specific language (DSL)
- Filter (software)Filter (software)A filter is a computer program to process a data stream. Some operating systems such as Unix are rich with filter programs. Even Windows has some simple filters built into its command shell, most of which have significant enhancements relative to the similar filter commands that were available in...
- Model-driven engineeringModel-driven engineeringModel-driven engineering is a software development methodology which focuses on creating and exploiting domain models , rather than on the computing concepts...
(MDE) - Model-driven architectureModel-driven architectureModel-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) - Template processorTemplate processorA template processor is software or a software component that is designed to combine one or moretemplates with a data model to produceone or more result documents...
- Transformation languageTransformation languageA 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....
- Graph TransformationGraph rewritingGraph transformation, or Graph rewriting, concerns the technique of creating a new graph out of an original graph using some automatic machine. It has numerous applications, ranging from software verification to layout algorithms....
- Web templateWeb templateA web template is a tool used to separate content from presentation in web design, and for mass-production of web documents. It is a basic component of a web template system.Web templates can be used to set up any type of website...
- XSLTXSLTXSLT is a declarative, XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized by the processor in standard XML syntax or in another format,...
- a standard language
Further reading
- The MDA Journal: Model Driven Architecture Straight From The Masters
- Model Driven Architecture: Applying MDA to Enterprise Computing, David S. Frankel, John Wiley & Sons, ISBN 0-471-31920-1