by Lukas Linsbauer, Roberto E. Lopez-Herrejon, Alexander Egyed
Abstract:
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 newproducts but as a means of maintaining the existing oneswith 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 diffcult 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.
Reference:
Recovering traceability between features and code in product variants. (Lukas Linsbauer, Roberto E. Lopez-Herrejon, Alexander Egyed), In Proceedings of the 17th International Software Product Line Conference (SPLC 2013), Tokyo, Japan, 2013.
Bibtex Entry:
@Conference{DBLP:conf/splc/LinsbauerLE13,
author = {Lukas Linsbauer and Roberto E. Lopez-Herrejon and Alexander Egyed},
title = {Recovering traceability between features and code in product variants.},
booktitle = {Proceedings of the 17th International Software Product Line Conference (SPLC 2013), Tokyo, Japan},
year = {2013},
pages = {131-140},
abstract = {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 newproducts
but as a means of maintaining the existing oneswith 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 diffcult 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.},
doi = {10.1145/2491627.2491630},
file = {:Conferences\\SPLC 2013 - Recovering Traceability between Features and Code in Product Variants\\Recovering Traceability between Features and Code in Product Variants-preprint.pdf:PDF},
keywords = {FWF P23115},
}