Closed tsdh closed 7 years ago
Great! One of our goals was exactly that one can filter for only the tests that make sense for a specific tool, so nice to see that this works.
Please consider adding and documenting the results for FunnyQT here: https://github.com/eMoflon/benchmarx/blob/master/examples/familiestopersons/BenchmarxFamiliesToPersons/results/TestResults.xlsx This way others can understand why certain tests are failing (expected limitation vs. error).
Ok, will do.
@anthonyanjorin In the Excel sheet, what does "runtime" mean in the tool column headers?
the values refer to the bx tool features from our paper: http://ceur-ws.org/Vol-1827/paper6.pdf (the feature model was also in the case description).
runtime
as opposed to fixed
refers to the type of update policy (configuration) the tool supports. runtime
means you can make decisions and state preferences during the synchronisation and not only at design time (I believe your solution is runtime
).
I don't quite understand. Right now, the preferences (parents over children, existing families over new) are given as arguments to the transformation and the relations are coded in a way that acknowledges these preferences. So this has been done by me at design time.
Instead of providing just booleans, you could also have a higher-order transformation (not in the sense of higher-order transformation but in the sense of higher-order functions) which receives other relations and uses them in its own relations. But still, the relations you'd pass to the transformation have been written at design time.
Well, of course these relations passed in could query the user, perform a google search, or let a neural network decide...
So I'd say that there's possibility for "runtime" but right now it is just as encoded at design time.
A tool that supports runtime configuration obviously supports design time configuration as well (just as you explained). For our tests to run deterministically the "runtime" configuration is actually hard coded in the tests, but if this can be supplied as an extra argument (without the tool knowing what is going to be required for a certain test) then the tool must support runtime configuration in general.
Some solutions or tools, however, might require forward and backward propagation to be deterministic functions, meaning that all required decisions must be encoded at design time and that there is no means to influence decision making at runtime. This might be necessary to ensure well-behavedness (whatever that means for the specific tool), or perform certain analyses or optimisations. Such tools will simply ignore the extra argument (just like how state-based tools ignore the provided deltas).
Concrete examples: applications conditions in TGG rules to ensure that no two rules are applicable at the same time, a BiGUL implementation without preferences as an extra input argument, ...
Ok, understood. Thank you!
Here's my FunnyQT version. I can do all the batch cases but fails for almost all the incremental ones. The incremental scenario is now what I designed FunnyQT's BX transformation API for, so that's fine. :-)