Our extensive industrial collaboration enables us to do research with immediate application to software development practices in realistic settings.
Reverse Engineering Feature Models
|Title||Reverse Engineering Feature Models|
|Publication Type||Conference Paper|
|Year of Publication||2011|
|Authors||She, S., R. Lotufo, T. Berger, A. Wąsowski, and K. Czarnecki|
|Conference Name||ICSE 2011|
Feature models describe the common and variable characteristics of a product line. Their advantages are well recognized in product line methods. Unfortunately, the task of creating a feature model for an existing project is both daunting and time-consuming, requiring substantial effort from a modeler.
We present procedures for reverse engineering feature models, based on a crucial heuristic for identifying parents---the major challenge of this task. We also automatically recover constructs such as feature groups, mandatory features, and implies/exclude edges. We evaluate the technique on two large-scale software product lines with existing reference feature models---the Linux and eCos kernels---and FreeBSD, a project without a feature model. Our heuristic is effective across all three projects. It ranks the correct parent among the top results for vast majority of features. We effectively reduce the information a modeler has to consider from thousands of choices to typically five or less.