Choosing between ATL and QVT for model to model transformation

1.1k Views Asked by At

I want to transform a model (in XMI format) based on the JaMoPP Java 5 metamodel to another model (also in XMI format) based on a basic C++ metamodel that I created using Xtext. After some research, I found two tools for Model To Model transformations: ATL and QVT.

What are the main differences between the two and what are some reasons to use either one instead of the other?

1

There are 1 best solutions below

0
On

Using/choosing a model transformation language is the same as using a general purpose language (GPL): own preference and background. As with GPLs, some transformation languages will probably fit your programing style better or exhibit better performance for your specific domain. IT might boil down to only the couple that support your modeling technology (e.g. your models are csv files). Additioanly, as opposed to GPLs, modeling languages are quite young and hence an important question atm when picking is tool support and possibly language future developemnt.

On a side note, let me remind you that the QVT specification actually defines three languages: QVTr, QVTc and QVTo.

ATL, QVTr and QVTc are all declarative, while QVTo is imperative (altough ATL allows some mixed descriptions). Other transformation langauges out there can be classified accordignly and should be an important decision point. Also, current tool support for QVTr is limited and unexistent for QVTc. I would recomend reading about them a bit more, perhaps inlcuidng other languages like Epsilon's ETL, Kermeta, etc., and based on your needs make a pick.