PhD Seminar - Steven Heep-Dong She

Friday, July 26, 2013 10:00 am - 10:00 am EDT (GMT -04:00)

Speaker

Steven Heep-Dong She

Title

Feature Model Synthesis

Abstract

Variability is a software system's ability to adapt and customize itself for a particular context. While variability enables code reuse, it is often tangled within a software artifact and scattered over multiple artifacts. This makes the system harder to maintain for developers, and harder to understand for users that configure the software.


Feature models provide a centralized source for describing the variability in a software system. A feature model consists of a hierarchy of features-the common and variable system characteristics-with constraints between features. While feature models are beneficial for both developers and users, manually synthesizing a feature model is an arduous and time-consuming process requiring in-depth analysis by a domain expert.  We developed two techniques for feature model synthesis. The first, FEATURE-GRAPH-EXTRACTION, is an automated algorithm for recovering a feature graph that describes all possible feature diagrams given the input features and propositional constraints in either conjunctive normal form (CNF), or disjunctive normal form (DNF).


The second technique, FEATURE-TREE-SYNTHESIS, is a semi-automated algorithm for building a feature model given a feature graph. This technique uses both logical constraints and text to address the most challenging part of feature model synthesis- constructing the feature hierarchy-by ranking potential parents of a feature with a natural language similarity heuristic. We found that the procedure effectively reduced a modeler's choices from thousands, to five or less when synthesizing the Linux and eCos variability models.


Our third contribution is the analysis of Kconfig-a language similar to feature model used to specify the variability model of the Linux kernel with over 6000 features.  While large feature models are reportedly used in industry, these models have not been available to the research community. Kconfig models make excellent large-scale benchmarks for feature model analysis and synthesis techniques. We compare Kconfig with feature modeling, reverse engineer formal semantics for the language, and translate the Linux model to propositional logic.

Supervisor

Professor Krzysztof Czarnecki