Feature Separation: An Approach for Product Line Evolution

Although evolution is a critical aspect of software product line engineering, the body of knowledge surrounding it is still inadequate. The contribution of this paper is to show how the practice of feature separation practice addresses the evolution challenges, specifically in a telecommunications software product line case study. The main idea behind feature separation is to achieve a one-to-one relationship between features in the feature model to feature realizations in code, which keeps feature realizations separate in the code. This not only prevents the software product line architecture from deteriorating, but in fact improves it. To apply this in an industrial context, it is necessary to also take into account schedule pressures and legacy artifacts. Application into the telecommunications software product line case study shows significant productivity and architecture improvements.