SPLLIFT: Statically Analyzing Software Product Lines in Minutes instead of Years
- Eric Bodden,
- Társis Tolêdo,
- Márcio Ribeiro,
- ,
- Paulo Borba,
- Mira Mezini
- Darmstadt University of Technology,
- Federal University of Pernambuco
Open access
Publication Information
Output type
Original language
EnglishPages from-to (Number of pages)
Pages 355-364 (10 pages)Journal (Volume, Issue Number)
ACM SIGPLAN Notices (Volume 48, Issue 6)Publication milestones
- Published - 06/2013
Publication status
ISSN
1523-2867Publication IDs
- Scopus: 84883087403
Abstract
A software product line (SPL) encodes a potentially large variety
of software products as variants of some common code base. Up
until now, re-using traditional static analyses for SPLs was virtually intractable, as it required programmers to generate and analyze
all products individually. In this work, however, we show how an
important class of existing inter-procedural static analyses can be
transparently lifted to SPLs. Without requiring programmers to
change a single line of code, our approach SPLLIFT automatically
converts any analysis formulated for traditional programs within the
popular IFDS framework for inter-procedural, finite, distributive,
subset problems to an SPL-aware analysis formulated in the IDE
framework, a well-known extension to IFDS. Using a full implementation based on Heros, Soot, CIDE and JavaBDD, we show that
with SPLLIFT one can reuse IFDS-based analyses without changing a single line of code. Through experiments using three static
analyses applied to four Java-based product lines, we were able to
show that our approach produces correct results and outperforms
the traditional approach by several orders of magnitude.
