Copenhagen Programming Language Seminar

Dataflow Analysis for Software Product Lines

Claus Brabrand
IT University, Copenhagen, Denmark

Thursday, May 24th, 2012, 15:00 - 16:00
DIKU, Universitetsparken 1, Room 3-1-25


Software product lines (SPLs) are commonly developed using annotative approaches such as conditional compilation that come with an inherent risk of constructing erroneous products. For this reason, it is essential to be able to analyze SPLs. However, as dataflow analysis techniques are not able to deal with SPLs, developers must generate and analyze /all/ valid methods individually, which is expensive for non-trivial SPLs.

In this paper, we demonstrate how to take any intraprocedural standard dataflow analysis and automatically turn it into a /feature-sensitive/ dataflow analysis in three different ways. All are capable of analyzing all valid methods of an SPL without having to generate all of them explicitly. We have implemented all analyses as extensions of SOOT's intraprocedural dataflow analysis framework and experimentally evaluated their performance and memory characteristics on four qualitatively different SPLs.

The results indicate that the feature-sensitive analyses are respectively on average three, four, and five times faster than the naive brute force approach on our SPLs, and that they have different time and space tradeoffs.

Joint work with Marcio Ribeiro, Tarsis Toledo, Paulo Borba (Universidade Federal de Pernambuco, Recife, Brazil) and Johnni Winther (Aarhus University, Aarhus, Denmark). This work was recently presented at AOSD 2012. The paper is available online.

Scientific host: Fritz Henglein Administrative host:Jette Møller. All are welcome.
The Copenhagen Programming Language Seminar (COPLAS) is a collaboration between DIKU, DTU, ITU, and RUC.
COPLAS is part of the FIRST Research School.
To receive information about COPLAS talks by email, send a message to prog-lang-request@mail.it-c.dk with the word 'subscribe' as subject or in the body.

For more information about COPLAS, see http://www.coplas.org