lbeurerkellner / ttc2020

0 stars 5 forks source link

Review of Henshin #6

Open azuendorf opened 4 years ago

azuendorf commented 4 years ago

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

georghinkel commented 4 years ago

The paper shows how the case is tackled using Henshin.

Expressiveness

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.

Comprehensibility

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.

Bidirectionality

The rules for forward and backward directions are entirely separated.

Re-usability

As pointed out in the paper, the rules are actually much too simple to justify a reuse.

Performance

In my opinion, the provided test models are way too small in order to get any reliable finding with regard to performance.

dstrueber commented 4 years ago

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!