Feature oriented refactoring of legacy applications
Proceedings of the 28th international conference on Software engineering
Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering
Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering
Evolving software product lines with aspects: an empirical study on design stability
Proceedings of the 30th international conference on Software engineering
Comparison and evaluation of code clone detection techniques and tools: A qualitative approach
Science of Computer Programming
On the impact of the optional feature problem: analysis and case studies
Proceedings of the 13th International Software Product Line Conference
Extracting Software Product Lines: A Case Study Using Conditional Compilation
CSMR '11 Proceedings of the 2011 15th European Conference on Software Maintenance and Reengineering
Scalable Prediction of Non-functional Properties in Software Product Lines
SPLC '11 Proceedings of the 2011 15th International Software Product Line Conference
SPLC '11 Proceedings of the 2011 15th International Software Product Line Conference
Reverse Engineering Feature Models from Programs' Feature Sets
WCRE '11 Proceedings of the 2011 18th Working Conference on Reverse Engineering
Feature Identification from the Source Code of Product Variants
CSMR '12 Proceedings of the 2012 16th European Conference on Software Maintenance and Reengineering
Combining related products into product lines
FASE'12 Proceedings of the 15th international conference on Fundamental Approaches to Software Engineering
Locating distinguishing features using diff sets
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Feature Location in a Collection of Product Variants
WCRE '12 Proceedings of the 2012 19th Working Conference on Reverse Engineering
Hi-index | 0.00 |
Many companies offer a palette of similar software products though they do not necessarily have a Software Product Line (SPL). Rather, they start building and selling individual products which they then adapt, customize and extend for different customers. As the number of product variants increases, these companies then face the severe problem of having to maintain them all. Software Product Lines can be helpful here - not so much as a platform for creating new products but as a means of maintaining the existing ones with their shared features. Here, an important first step is to determine where features are implemented in the source code and in what product variants. To this end, this paper presents a novel technique for deriving the traceability between features and code in product variants by matching code overlaps and feature overlaps. This is a difficult problem because a feature's implementation not only covers its basic functionality (which does not change across product variants) but may include code that deals with feature interaction issues and thus changes depending on the combination of features present in a product variant. We empirically evaluated the approach on three non-trivial case studies of different sizes and domains and found that our approach correctly identifies feature to code traces except for code that traces to multiple disjunctive features, a rare case involving less than 1% of the code.