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

SPLLIFT: statically analyzing software product lines in minutes instead of years
复制标题

SPLIFT:在几分钟而不是几年内静态分析软件产品线

DOI:
10.1145/2491956.2491976
复制
发表时间:
2013
期刊:
Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation
影响因子:
--
通讯作者:
M. Mezini
M. Mezini
中科院分区:
--
文献类型:
--
作者:
E. Bodden;T. Tolêdo;Márcio Ribeiro;Claus Brabrand;Paulo Borba;M. Mezini

文献摘要

被引文献

相似文献

软件产品线(SPL)编码可能有各种各样的软件产品作为某些常见代码库的变体。到目前为止,重复使用SPL的传统静态分析几乎是棘手的,因为它要求程序员分别生成和分析所有产品。但是,在这项工作中,我们展示了如何将一类重要的现有过程间静态分析透明地提升到SPL。我们的方法在不要求程序员更改一行代码的情况下,SPLLIFT会自动转换针对流行的IFDS框架中为传统程序制定的任何分析,用于在IDE框架中为SPL感知的分析,用于IDE框架中的SPL感知分析, IFD的众所周知的扩展。使用基于英雄,烟灰,Cide和Javabdd的完整实现,我们表明,使用Spllift可以重复使用基于IFD的分析而无需更改一行代码。通过使用适用于四个基于Java的产品线的三个静态分析的实验,我们能够证明我们的方法可以产生正确的结果,并以几个数量级以优于传统方法。
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.