eMoflon / benchmarx

Infrastructure for implementing benchmarx: benchmarks for bidirectional transformation (bx) tools. Also contains a collection of example benchmarx and test runners for various and diverse bx tools.
GNU General Public License v3.0
9 stars 12 forks source link

What happens if a person is renamed? #36

Closed georghinkel closed 7 years ago

georghinkel commented 7 years ago

If the name of a person changes, i.e. "Lisa Simpson" -> "Lisa Flanders" (I am not really into Simpsons to judge how realistic that is), what should be the desired effect?

The problem is that renaming the family Simpson to Flanders also has an effect on the other members of this family, so the result model would be quite different.

anthonyanjorin commented 7 years ago

The backward transformation is non-deterministic, meaning that there is no clear cut answer to your question in general. In each relevant test, however, the expected behaviour is controlled by the update policy (e.g., preferring existing families to creating new ones).

Concerning the first option (renaming Lisa's family), the expected behaviour is basically given by the test -- we had some discussions about this exact point and finally decided against renaming families in this manner (due to the potential ripple effect you already mention); But please view this just as a requirement (I could also argue for renaming in many cases) and a test to see if your tool can be configured correspondingly or not.

georghinkel commented 7 years ago

the expected behaviour is basically given by the test

So do you expect me to reverse-engineer the requirements from the tests?

anthonyanjorin commented 7 years ago

Yes

georghinkel commented 7 years ago

OK. For anyone else that thinks about a submission: Basically the answer is to create a new family if either PreferExistingFamily is false or no suitable family exists. Otherwise, an existing family is reused and the family member is transferred.