Objective: To present 60 metamodel-based transformation tools and compare them using a qualitative framework.
Method: Classification by transformation approach and compare by 46 facets in 6 categories.
- More than half (6 of 11) of the tools based on a relational transformation language have been discontinued.
- Four out of nine tools targeting the QVT standard have been discontinued
Already seen
Support for different languages and standards to express models and metamodels, repositories, and model management.
Tool | DSML | GPML |
---|---|---|
UML-RSDS | UML 2.x | - |
MagicDraw | UML 1.x/2.x & SysML & BPMN | - |
SPARX | UML 2.x & SysML & BPMN & BPEL & UPDM & TOGAF & SOAML & SOMF | - |
Blu Age | UML 2.x | OOP |
AToMPM | UML 2.x | - |
Umple | UML 2.x | - |
Actifsource | UML 2.x | - |
VMTS | UML 2.x | OOP |
Fujaba | UML 2.x | - |
Together | UML 2.x/1.x & BPMN | - |
Modelio | SysML & BPMN & TOGAF & UPDM & SOAML & UTP | - |
MetaEdit+ | SysML | Petri Nets |
AToM3 | - | Petri Nets |
GrGen.NET | Proprietary | OOP |
AGG | ATG | - |
Meta-Object Facility (MOF)
- eMOF - subset of UML class diagrams
- cMOF - UML
- Ecore - based on eMOF (EMF)
- Kernel MetaModel (KM3) - subset of Ecore
Others exist
GOPPRR (MetaEdit+), ArkM3 (AToMPM), Genmodel (Henshin), MOLA MOF (MOLA), VPM (VIATRA before June 2015), VMTS Root (VMTS), MetaModeler (ModelMorf), and Umple (Umple).
To identify similarities and differences between homogeneous and heterogeneous models for tasks such as testing and model evolution management.
diff
Tools: ModelAnt, MetaEdit+, Umple, SPARX, Together, Epsilon (ECL), Blu Age, GRoundTram, MOMoT and VIATRA.
Used to request specific contents or a selection of the model elements. Model query can be categorized according to its supporting query language as: Graph patterns or OCL based.
context Meeting::isConfirmed : Boolean
init: false
context Teammember:meetings : Set(Meetings)
init: Set{}
Querying can be also used for other purposes, such as model analysis and evolution, and reporting.
Some tools provide model query as a standalone feature retrieving information without any side-effects on the models.
Whether the tool can be used to define metamodels.
Tools:
- Melange
- MetaEdit+
- Kermeta2
- AToM3
- AToMPM
- VMTS (supports an arbitrary number of metamodel levels)
Repositories such as the Eclipse Modeling Framework (EMF) and the NetBeans Meta-data Repository (MDR) are used to store large models, using an API to access and manipulate the models.
EMF, a Java modeling framework and code generation facility based on a structured data model, is widely used by transformation tools.
Other model repositories:
- Connected Data Objects (CDO) - can use many databases backends
- ModelBus - webservice application to manage a subversion (
argh) engine - EMFStore - collaborative editing and versioning of models
- Neo4EMF - based on the Neo4j model repository
- MDR is a Java Meta-data Interface (JMI) implementation of MOF - uses XML
Other tools use their own model repositories. Some model repositories can be extended using an API.
Standards:
- CORBA Model Interchange (CMI)
- XML Metadata Interchange (XMI)
- Human-Usable Textual Notation (HUTN)
- Java Metadata Interface (JMI)
- Diagram Definition (DD)
- Common Warehouse Metamodel (CWM)
- Object Constraint Language (OCL)
M2T: MOF Model to Text Transformation Language (MOFM2T) - templates and OCL M2M: Query/View/Transformation language (QVT)
Generates models from code.
Tools:
- MDWorkbench
- ModelAnt
- MetaEdit+
- Modelio
- Umple
- Blu Age
- Fujaba
- MagicDraw
- SPARX
- Together
- and Acceleo.
Usually Java only
Is an effort to keep these models consistent by propagating changes from one model to other related models.
- detecting changes to a model under consideration
- finding other models affected by the change
- propagating the change to the affected models
bi-directional transformation, incremental transformation, model synchronization, reverse engineering and traceability, can be used to implement round-trip engineering.
Hard to support.
Aspects of transformation implementation and execution such as rule scheduling, organization, and application control.
Syntax of the model transformation language of the tool.
Textual or graphical syntax.
M2M:
- in-place (destructive) - optimizarions are one example
- out-place (conservative)
M2T:
- XMI - Prolog
- XMI - SQL tables
- RTF
- Plain text
- HTML
- XML
- DB Schema
- JavaDoc
- Source code (Java, C#, Python, PHP, C++, SQL...)
Number of input-output models the tool can handle.
1-to-1, 1-to-N, N-to-1, N-to-N
(...)
User friendliness of the tool, such as editor features and support for typical development activities such as debugging, refactoring, and profiling.
Collaborative development, interoperability, reuse, and extensibility.
Assumptions the tool makes about its operating environment, such as operating systems, hosting frameworks, and IDEs.
Where the tools were developed:
- 77% - Europe
- 13% - North America
- 7% - Asia
- 3% - Australia
M2T: 31 tools
- 19 - template
- 5 - visitor
- 7 - hybrid
M2M: 56 tools
- 17 - imperative
- 15 - graph-based
- 13 - hybrid
- 11 - relational
27% have been discontinued 5% have been replaced by successors
- More than 55% of the relational tools have been discontinued;