Programming Languages

Detecting Dependences and Interactions in Feature-Oriented Design

by Sven Apel, Wolfgang Scholz, Christian Lengauer, and Christian Kästner

In Proceedings of the 21st IEEE International Symposium on Software Reliability Engineering (ISSRE), pages 161–170. IEEE Computer Society, 2010.


Feature-oriented software development (FOSD) aims at the construction, customization, and synthesis of large-scale software systems. We propose a novel software design paradigm, called feature-oriented design, which takes the distinguishing properties of FOSD into account, especially the clean and consistent mapping between features and their implementations as well as the tendency of features to interact inadvertently. We extend the lightweight modeling language Alloy with support for feature-oriented design and call the extension FeatureAlloy. By means of an implementation and four case studies, we demonstrate how feature-oriented design with FeatureAlloy facilitates separation of concerns, variability, and reuse of models of individual features and helps in defining and detecting semantic dependences and interactions between features.