Reverse Engineering Feature Models in the Real
Abstract
Numerous organizations face the need to develop highly con figurable systems with thousands of functionalities and variable subsystems. Feature Models (FMs) are a popular formalism for modeling and reasoning about configurations of a system. As the manual construction or management of an FM is time-consuming, error-prone and not realistic for large software projects, automated operations for reverse engineering, slicing, diff , merging or refactoring FMs have been developed. With a basic strategy or without prior knowledge, these operations are likely to compute meaningless ontological relations (as defined by the hierarchy and feature groups) between features which may cause severe difficulties when reading, maintaining or exploiting the resulting FM. In this paper, we address the problem of synthesizing an FM both valid w.r.t. a set of logical dependencies (representing a set of configurations) while having an appropriate ontological semantics. We define a generic procedure and evaluate a series of heuristics for clustering and weighting the syntactic and semantic relationships between feature names to assist users in selecting a hierarchy and feature groups. We also present an interactive environment that use our techniques and offer a way to include the user's knowledge. The experiments on hundreds of realistic FMs show that our tool-supported procedures effectively reduce the information a user has to consider during the synthesis of an FM. This work is a necessary step for reverse engineering feature models in the real, i.e., in realistic projects whose variability is scattered in numerous artefacts and where developers may not have a global view of the project.
Loading...