flamapy / fm_metamodel

This repo host the feature model concrete classes
3 stars 5 forks source link

Bug in core features in FM implementation #55

Open jmhorcas opened 2 years ago

jmhorcas commented 2 years ago

The core feature operation implemented using the FM structure (without any kind of solver) works fine for all tests and real-world feature models except for the Linux feature model (Test cases in benchmarking project). In such a test case, there are two core features that are not detected, possibly because of the presence of dead-features + false-optional features, or complex cross-tree constraints.

A possible solution is to take into account basic constraints (see code commented in the operation) but I've tried it and it doesn't pass still the test, possibly because the affected core features are involved in complex cross-tree constraints.

Another solution (actually not implemented) would be to refactor the constraints to represent them as abstract trees in the FM structure. It is worthy to check out and implement the paper of Knuppel et al 2017 in FSE, and "Sans constraints" paper about the elimination of complex and simple constraints. This can be implemented as a model-to-model transformation to obtain a equivalent feature model without constraints that can facilitate the implementation of several operations over the FM structure directly. The main problem of this is the size of the resulting feature models, and the scalability of this needs to be investigated.