skip to main content
10.1145/2491956.2491976acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

SPLLIFT: statically analyzing software product lines in minutes instead of years

Published: 16 June 2013 Publication History

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.

References

[1]
S. Guarnieri, M. Pistoia, O. Tripp, J. Dolby, S. Teilhet, and R. Berg, "Saving the world wide web from vulnerable JavaScript," in Proc. 2011 int. symp. on Software Testing and Analysis, ser. ISSTA'11, 2011, pp. 177--187.
[2]
S. J. Fink, E. Yahav, N. Dor, G. Ramalingam, and E. Geay, "Effective typestate verification in the presence of aliasing," ACM Trans. Softw. Eng. Methodol., vol. 17, no. 2, pp. 9:1--9:34, May 2008.
[3]
N. A. Naeem and O. Lhotak, "Typestate-like analysis of multiple interacting objects," in OOPSLA, 2008, pp. 347--366.
[4]
V. Sundaresan, L. Hendren, C. Razafimahefa, R. Vallée-Rai, P. Lam, E. Gagnon, and C. Godin, "Practical virtual method call resolution for Java," in OOPSLA, 2000, pp. 264--280.
[5]
T. Reps, S. Horwitz, and M. Sagiv, "Precise interprocedural dataflow analysis via graph reachability," in Proc. 22nd ACM SIGPLAN-SIGACT symp. on Principles of programming languages, ser. POPL'95, 1995, pp. 49--61.
[6]
E. Bodden, "Efficient hybrid typestate analysis by determining continuation-equivalent states,"in ICSE 2010, May 2010, pp. 5--14.
[7]
N. A. Naeem and O. Lhoták, "Efficient alias set analysis using SSA form," in Proc. 2009 int. symp. on Memory Management, ser. ISMM ’09, 2009, pp. 79--88.
[8]
S. Shoham, E. Yahav, S. Fink, and M. Pistoia, "Static specification mining using automata-based abstractions," IEEE TSE, vol. 34, no. 5, pp. 651--666, 2008.
[9]
N. Rinetzky, M. Sagiv, and E. Yahav, "Interprocedural shape analysis for cutpoint-free programs," in Static Analysis, ser. Lecture Notes in Computer Science, C. Hankin and I. Siveroni, Eds. Springer Berlin / Heidelberg, 2005, vol. 3672, pp. 284--302.
[10]
H. Yang, O. Lee, J. Berdine, C. Calcagno, B. Cook, D. Distefano, and P. O'Hearn, "Scalable shape analysis for systems code," in CAV, 2008, pp. 385--398.
[11]
M. Sagiv, T. Reps, and S. Horwitz, "Precise interprocedural dataflow analysis with applications to constant propagation," in TAPSOFT'95, 1996, pp. 131--170.
[12]
C. Kästner and S. Apel, "Virtual separation of concerns - a second chance for preprocessors," Journal of Object Technology, vol. 8, no. 6, pp. 59--78, 2009.
[13]
C. Kästner, S. Apel, and M. Kuhlemann, "Granularity in Software Product Lines," in Proc. 30th int. conf. on Software Engineering (ICSE'08), 2008, pp. 311--320.
[14]
E. Bodden, "Inter-procedural data-flow analysis with ifds/ide and soot," in SOAP 2012, Jul. 2012, pp. 3--8, heros website: http://sable.github.com/heros/.
[15]
R. Vallée-Rai, L. Hendren, V. Sundaresan, P. Lam, E. Gagnon, and P. Co, "Soot - a Java optimization framework," in Proceedings of CASCON 1999, 1999, pp. 125--135. {Online}. Available: www.sable.mcgill.ca/publications\BIBentrySTDinterwordspacing
[16]
C. Kästner, "Virtual separation of concerns," Ph.D. dissertation, Universit\"at Magdeburg, 2010.
[17]
"The Eclipse IDE," http://eclipse.org/.
[18]
E. Bodden, "Position Paper: Static flow-sensitive & context-sensitive information-flow analysis for software product lines'" in PLAS 2012, Jun. 2012, pp. 6:1--6:6.
[19]
D. Batory, "Feature models, grammars, and propositional formulas,"; in Software Product Lines (SPLC) 2005, ser. LNCS, vol. 3714, 2005, pp. 7--20.
[20]
J. Liebig, C. Kästner, and S. Apel, "Analyzing the discipline of preprocessor annotations in 30 million lines of c code,"; in Proc. 10th int. conf. on Aspect-oriented software development, ser. AOSD '11, 2011, pp. 191--202.
[21]
R. Drechsler and B. Becker, phBinary decision diagrams: theory and implementation Springer, 1998.
[22]
C. Kästner, P. G. Giarrusso, T. Rendel, S. Erdweg, K. Ostermann, and T. Berger, "Variability-aware parsing in the presence of lexical macros and conditional compilation," in Proc. 2011 ACM int. conf. on Object oriented programming systems languages and applications, ser. OOPSLA"11, 2011, pp. 805--824.
[23]
E. Bodden, A. Sewe, J. Sinschek, H. Oueslati, and M. Mezini, "Taming reflection: Aiding static analysis in the presence of reflection and custom class loaders," in ICSE 2011, May 2011, pp. 241--250.
[24]
T. Reps, S. Schwoon, and S. Jha, "Weighted pushdown systems and their application to interprocedural dataflow analysis," in Static Analysis, ser. Lecture Notes in Computer Science, R. Cousot, Ed. Springer Berlin / Heidelberg, 2003, vol. 2694, pp. 1075--1075.
[25]
C. Brabrand, M. Ribeiro, T. Tolêdo, and P. Borba, "Intraprocedural dataflow analysis for software product lines," in phProc. 11th annual int. conf. on Aspect-oriented Software Development, ser. AOSD'12, 2012, pp. 13--24.
[26]
S. Apel, C. Kästner, A. Grösslinger, and C. Lengauer, "Type safety for feature-oriented product lines," Automated Software Eng., vol. 17, no. 3, pp. 251--300, Sep. 2010.
[27]
"Typechef analysis engine," http://ckaestne.github.com/TypeChef/.
[28]
T. Thüm, S. Apel, C. Kästner, M. Kuhlemann, I. Schaefer, and G. Saake, "Analysis strategies for software product lines'" School of Computer Science, University of Magdeburg, Tech. Rep. FIN-004--2012, Apr. 2012.
[29]
C. Kästner and S. Apel, "Type-checking software product lines - a formal approach," in Proc. 2008 23rd IEEE/ACM int. conf. on Automated Software Engineering, ser. ASE'08, 2008, pp. 258--267.
[30]
A. Classen, P. Heymans, P.-Y. Schobbens, A. Legay, and J.-F. Raskin, "Model checking lots of systems: efficient verification of temporal properties in software product lines," in Proc. 32nd ACM/IEEE int. conf. on Software Engineering - Volume 1, ser. ICSE'10, 2010, pp. 335--344.
[31]
A. Classen, P. Heymans, P.-Y. Schobbens, and A. Legay, "Symbolic model checking of software product lines," in Proc. 33rd int. conf. on Software Engineering, ser. ICSE'11, 2011, pp. 321--330.
[32]
H. Post and C. Sinz, "Configuration lifting: Verification meets software configuration," in Proc. 2008 23rd IEEE/ACM int. conf. on Automated Software Engineering, ser. ASE'08, 2008, pp. 347--350.
[33]
C. H. P. Kim, E. Bodden, D. Batory, and S. Khurshid, "Reducing configurations to monitor in a software product line," in Proc. First int. conf. on Runtime verification, ser. RV'10, 2010, pp. 285--299.
[34]
S. Apel, H. Speidel, P. Wendler, A. von Rhein, and D. Beyer, "Detection of feature interactions using feature-aware verification," in Proc. 2011 26th IEEE/ACM int. conf. on Automated Software Engineering, ser. ASE'11, 2011, pp. 372--375.
[35]
C. Hwan, P. Kim, D. Batory, and S. Khurshid, "Reducing combinatorics in testing product lines," in Proc. 10th int. conf. on Aspect-oriented Software Development (AOSD'11), 2011, pp. 57--68.
[36]
J. Shi, M. Cohen, and M. Dwyer, "Integration testing of software product lines using compositional symbolic execution," in Fundamental Approaches to Software Engineering, ser. Lecture Notes in Computer Science, J. de Lara and A. Zisman, Eds. Springer Berlin / Heidelberg, 2012, vol. 7212, pp. 270--284.
[37]
V. Stricker, A. Metzger, and K. Pohl, "Avoiding redundant testing in application engineering," in Software Product Lines: Going Beyond, ser. Lecture Notes in Computer Science, J. Bosch and J. Lee, Eds. Springer Berlin / Heidelberg, 2010, vol. 6287, pp. 226--240.
[38]
T. Ball and S. K. Rajamani, "Bebop: a path-sensitive interprocedural dataflow engine," in Proc. 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, ser. PASTE'01, 2001, pp. 97--103.
[39]
G. Ammons and J. R. Larus, "Improving data-flow analysis with path profiles," SIGPLAN Not., vol. 39, no. 4, pp. 568--582, Apr. 2004.
[40]
M. N. Wegman and F. K. Zadeck, "Constant propagation with conditional branches," ACM Trans. Program. Lang. Syst., vol. 13, no. 2, pp. 181--210, Apr. 1991.
[41]
S. Moon, M. W. Hall, and B. R. Murphy, "Predicated array data-flow analysis for run-time parallelization," in Proc. 12th int. conf. on Supercomputing, ser. ICS'98, 1998, pp. 204--211.
[42]
M. Ribeiro, H. Pacheco, L. Teixeira, and P. Borba, "Emergent feature modularization," in Proc. ACM int. conf. companion on Object oriented programming systems languages and applications companion, ser. SPLASH'10, 2010, pp. 11--18.

Cited By

View all
  • (2023)Adding Product-Line Capabilities to Your Favourite Modeling LanguageProceedings of the 17th International Working Conference on Variability Modelling of Software-Intensive Systems10.1145/3571788.3571791(3-12)Online publication date: 25-Jan-2023
  • (2023)Annotative Software Product Line Analysis Using Variability-Aware DatalogIEEE Transactions on Software Engineering10.1109/TSE.2022.317575249:3(1323-1341)Online publication date: 1-Mar-2023
  • (2022)Tseitin or not Tseitin? The Impact of CNF Transformations on Feature-Model AnalysesProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering10.1145/3551349.3556938(1-13)Online publication date: 10-Oct-2022
  • Show More Cited By

Index Terms

  1. SPLLIFT: statically analyzing software product lines in minutes instead of years

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      PLDI '13: Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation
      June 2013
      546 pages
      ISBN:9781450320146
      DOI:10.1145/2491956
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 48, Issue 6
        PLDI '13
        June 2013
        515 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2499370
        Issue’s Table of Contents
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Sponsors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 16 June 2013

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. context sensitive
      2. flow sensitive
      3. inter-procedural static analysis
      4. software product lines

      Qualifiers

      • Research-article

      Conference

      PLDI '13
      Sponsor:

      Acceptance Rates

      PLDI '13 Paper Acceptance Rate 46 of 267 submissions, 17%;
      Overall Acceptance Rate 406 of 2,067 submissions, 20%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)18
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 27 Feb 2025

      Other Metrics

      Citations

      Cited By

      View all
      • (2023)Adding Product-Line Capabilities to Your Favourite Modeling LanguageProceedings of the 17th International Working Conference on Variability Modelling of Software-Intensive Systems10.1145/3571788.3571791(3-12)Online publication date: 25-Jan-2023
      • (2023)Annotative Software Product Line Analysis Using Variability-Aware DatalogIEEE Transactions on Software Engineering10.1109/TSE.2022.317575249:3(1323-1341)Online publication date: 1-Mar-2023
      • (2022)Tseitin or not Tseitin? The Impact of CNF Transformations on Feature-Model AnalysesProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering10.1145/3551349.3556938(1-13)Online publication date: 10-Oct-2022
      • (2022)SugarCProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3512763(2056-2067)Online publication date: 21-May-2022
      • (2022)Causality in configurable software systemsProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510200(325-337)Online publication date: 21-May-2022
      • (2022)Property Satisfiability Analysis for Product Lines of Modelling LanguagesIEEE Transactions on Software Engineering10.1109/TSE.2020.298950648:2(397-416)Online publication date: 1-Feb-2022
      • (2021)A Formal Framework of Software Product Line AnalysesACM Transactions on Software Engineering and Methodology10.1145/344238930:3(1-37)Online publication date: 23-Apr-2021
      • (2021)Applying Declarative Analysis to Software Product Line Models: An Industrial Study2021 ACM/IEEE 24th International Conference on Model Driven Engineering Languages and Systems (MODELS)10.1109/MODELS50736.2021.00023(145-155)Online publication date: Oct-2021
      • (2021)Towards Modal Software Engineering2021 IEEE/ACM 43rd International Conference on Software Engineering: New Ideas and Emerging Results (ICSE-NIER)10.1109/ICSE-NIER52604.2021.00026(86-90)Online publication date: May-2021
      • (2021)Efficient static analysis and verification of featured transition systemsEmpirical Software Engineering10.1007/s10664-020-09930-827:1Online publication date: 23-Oct-2021
      • Show More Cited By

      View Options

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Figures

      Tables

      Media

      Share

      Share

      Share this Publication link

      Share on social media