Open azuendorf opened 4 years ago
The paper shows how the case is tackled using Henshin.
Obviously, Henshin is well suited to express the case in an unidirectional manner. However, I would expect that model migrations are usually small and Henshin requires rules also for unchanged parts. Therefore, many rules appear useless as the preserve part is exactly the same as the create part.
The bunch of the identical rules conceal the rules that carry the actual changes between the models. Otherwise, Henshin rules are generally very easy to comprehend and the embedded JavaScript expressions make it easy to grasp also algorithm bits.
The rules for forward and backward directions are entirely separated.
As pointed out in the paper, the rules are actually much too simple to justify a reuse.
In my opinion, the provided test models are way too small in order to get any reliable finding with regard to performance.
Hi Georg,
thanks for your review. Could you also comment on the specific evaluation criteria mentioned in the case description? That's the interface I implemented against, so I think it would be fair to consider them.
For expressiveness, the criterion is whether the test cases pass. For re-usability, the criterion is whether the solution does support reuse (for example, in the form of delegation).
Thanks!
The paper shows a solution to the round trip case by Henshin.
Expressiveness: the case is pretty simple and obviously Henshin is able to cover it very easily.
Comprehensibility: to me the Henshin solution looks very verbose. However I like how close the solution matches the case description.
Bidirectionality: The solution has one rule for forward and one rule for backward migration. Thus you specify both directions separately but the result is bidirectional.
Performance: 100 times slower than the reference solution.
Allover a nice and straight forward solution to the case