A Study on Implementations of Feature Interaction in Software Product Lines

文信 武山, Fuminobu Takeyama · 2013

A software product line is a family of similar software products built from common software artifacts. One approach to develop a product line is to decompose software into features and customize the resulting product by selecting a subset of those features. Feature-oriented programming is a paradigm that offers mechanisms for modularizing features. It allows implementing code related to a feature separately into a feature module. The key technique for the separation is destructive class extensions, which can extend the definition of existing classes from the outside of those classes. Developers generate products by combining feature modules. Aspect-oriented programming also supports destructive class extensions, and hence it is usable for implementing feature modules. However, naive combination of feature modules may cause problematic behavior if the features interact with each other. Feature interaction is essential behavior between a specific combination of features. Programmers must implement interaction so that such combinations of feature modules work correctly. A modular approach is to implement interaction separately in derivatives, but the number of the derivatives is too large to maintain. Interaction in aspect-oriented programming is conflict of aspects, which happens when multiple advices extend the same method. Programmers need to specify how conflicting advices are executed. An incomplete approach for advice composition used in the existing languages is to specify precedence order to conflicting aspect to linearize them. This is because some combinations of aspects do not have acceptable order. To address these problems, this dissertation proposes two language extensions with mechanisms for implementing feature interaction: FeatureGluonJ and Airia. FeatureGluonJ introduces a new module system for features supporting inheritance. Inheritance of feature module enables to implement a generic derivative reusable for multiple combinations of features, which re-

Read the paper · More papers on PaperTik