lbeurerkellner / ttc2020

0 stars 5 forks source link

Review of EMFSyncer #5

Open dstrueber opened 4 years ago

dstrueber commented 4 years ago

The author (@arturboronat) presents a solution based on the EMFSyncer tool. EMFSyncer is an excellent match to the case, since it is able to infer the mappings between the two metamodel versions and generate the transformation code automatically. Where required (specially, in the attribute value processing of Scenario 2 and 3), users can specify custom translation strategies. The solution is very fast, outperforming the Java-based reference solution (apparently, to some extent, a side effect of using EMF-generated code, which was necessary to make the models amenable to EMFSyncer).

The solution description is in an excellent shape. I was also able to run the solution on my own machine and reproduce the excellent performance in the related benchmark.

The author presents a self-assessment of the evaluation criteria. For the criteria 1, 3 and 4, I agree to the author's argumentation - the solution deserves the maximal possible score in all cases. I also verify the reported performance measurements for criterion 5.

I'm a bit more reserved about criterion 2 (understandability). On the positive side, I agree to the author's argument that using EMF's generated code is better for understandability than using reflection. On the negative side, the actual synchronisation logic (forwardSync and backSync method implementations) is hidden from the user - which stands in the way of understandability. There's also a dependency to AspectJ, which is not mentioned in the paper, and raises a question mark. Given these positive and negative aspects, I assess the understandability as comparable to the reference implementation (leading to a score of 1 in all cases).

KosrenDQ commented 4 years ago

This solution used the EMFSyncer tool which is also developed by the author. The tool brings all needed function for a perfect fit to the case, like forward and backward migration and the ability to describe special transformations. The solutions were created with Xtend. This leads to very a readable and understandable code.

Expressiveness All test cases runs without problems.

Comprehensibility As mention in the upper part, the code is easy understandable because of the usage of Xtend. However, the real magic is hidden behind the EMFSyncer tool. However, I really would like to see the plain java code.

Bidirectionality The tool brings two main function for all migration and transformations steps. The methods syncForwad and syncBack does all bidirectional changes.

Re-usability The authors reuses their implementation trough the tasks.

Performance The authors presents a performance benchmark with an outstanding result. The tool achieves a similar result on my own machine.