"Reverse Engineering Feature Models" accepted at ICSE 2011

Our paper, "Reverse Engineering Feature Models", has been accepted at the upcoming ICSE 2011 conference.

Abstract

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.