Dataflow Analysis for Software Product Lines

Claus Brabrand, Társis Tolêdo, Johnni Winther, Paulo Henrique Monteiro Borba, Luis Alfonso Núñez-Freire, Marcelle Pereira Mota · 2013

Software product lines (SPLs) developed using annotative approaches such as conditional compilation come with an inherent risk of constructing erroneous products. For this reason, it is essential to be able to analyze such SPLs. However, as dataflow analysis techniques are not able to deal with SPLs, developers must generate and analyze all valid products individually, which is expensive for non-trivial SPLs. In this paper, we demonstrate how to take any standard intraproce- dural dataflow analysis and automatically turn it into a feature-sensitive dataflow analysis in five different ways where the last is a combination of the other four. All analyses are capable of analyzing all valid products of an SPL without having to generate all of them explicitly. We have implemented all analyses using SOOT's intraprocedural dataflow analysis framework and experimentally evaluated four of them according to their performance and memory characteristics on five quali- tatively different SPLs. On our benchmarks, the combined analysis strat- egy is up to almost eight times faster than the brute-force approach.

Read the paper · More papers on PaperTik