Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Review of Henshin #6

Open
azuendorf opened this issue Jul 3, 2020 · 3 comments
Open

Review of Henshin #6

azuendorf opened this issue Jul 3, 2020 · 3 comments

Comments

@azuendorf
Copy link

No description provided.

@azuendorf
Copy link
Author

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
Copy link

georghinkel commented Jul 3, 2020

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
Copy link

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants