Static Data-Flow Analysis for Software Product Lines in C
Many critical codebases are written in C, and most of them use preprocessor directives to encode variability, effectively encoding software product lines. These preprocessor directives, however, challenge any static code analysis. SPLlift, a previously presented approach for analyzing software product lines, is limited to Java programs that use a rather simple feature encoding and to analysis problems with a finite and ideally small domain. Other approaches that allow the analysis of real-world C software product lines use special-purpose analyses, preventing the reuse of existing analysis infrastructures and ignoring the progress made by the static analysis community. This work presents VARALYZER, a novel static analysis approach for software product lines. VARALYZER first transforms preprocessor constructs to plain C while preserving their variability and semantics. It then solves any given distributive analysis problem on transformed product lines in a variability-aware manner. VARALYZER ’s analysis results are annotated with feature constraints that encode in which configurations each result holds. Our experiments with 95 compilation units of OpenSSL show that applying VARALYZER enables one to conduct inter-procedural, flow-, field- and context-sensitive data-flow analyses on entire product lines for the first time, outperforming the product-based approach for highly-configurable systems.
Wed 12 OctDisplayed time zone: Eastern Time (US & Canada) change
13:30 - 15:30 | Technical Session 14 - Bug Prediction and LocalizationJournal-first Papers / Research Papers / NIER Track / Industry Showcase at Banquet A Chair(s): David Lo Singapore Management University | ||
13:30 20mResearch paper | How Useful is Code Change Information for Fault Localization in Continuous Integration? Research Papers An Ran Chen Concordia University, Tse-Hsun (Peter) Chen Concordia University, Junjie Chen Tianjin University | ||
13:50 20mIndustry talk | Code Understanding Linter to Detect Variable Misuse Industry Showcase Yeonhee Ryou Samsung Research, Samsung Electronics, Sangwoo Joh Samsung Research, Samsung Electronics, Joonmo Yang Samsung Research, Samsung Electronics, Sujin Kim Samsung Research, Samsung Electronics, Youil Kim Samsung Research, Samsung Electronics | ||
14:10 20mPaper | Static Data-Flow Analysis for Software Product Lines in C Journal-first Papers Philipp Dominik Schubert Heinz Nixdorf Institut, Paderborn University, Paul Gazzillo University of Central Florida, Zachary Patterson University of Texas at Dallas, Julian Braha University of Central Florida, Fabian Schiebel Fraunhofer IEM, Ben Hermann Technical University Dortmund, Shiyi Wei University of Texas at Dallas, Eric Bodden University of Paderborn; Fraunhofer IEM DOI | ||
14:30 10mVision and Emerging Results | Boosting Spectrum-Based Fault Localization for Spreadsheets with Product Metrics in a Learning ApproachVirtual NIER Track Adil mukhtar Graz University of Technology, Birgit Hofer Graz University of Technology, Dietmar Jannach University of Klagenfurt, Franz Wotawa Graz University of Technology, Konstantin Schekotihin University of Klagenfurt | ||
14:40 20mResearch paper | Evolving Ranking-Based Failure Proximities for Better Clustering in Fault IsolationVirtual Research Papers Yi Song School of Computer Science, Wuhan University, Xiaoyuan Xie School of Computer Science, Wuhan University, China, Xihao Zhang School of Computer Science, Wuhan University, Quanming Liu School of Computer Science, Wuhan University, Ruizhi Gao Sonos Inc. | ||
15:00 20mPaper | Leveraging structural properties of source code graphs for just-in-time bug predictionVirtual Journal-first Papers Md Nadim University of Saskatchewan, Debajyoti Mondal University of Saskatchewan, Chanchal K. Roy University of Saskatchewan |