Inter-procedural Static Analysis of Software Product Lines
during the past few months I have started some exciting new research on statically analyzing Software Produce Lines, which I will be presenting
next Tuesday, March 6th in Room A213 (Piloty), at 14:00. In case you enjoyed the lectures on static analysis, this may be interesting to you.
Here the title and abstract:
Analyzing Thousands of Programs in One Shot - Inter-procedural Static
Analysis of Software Product Lines
Software product lines can be seen as templates that use compiler
directives or other means to guard certain variation points, so-called
features, in a piece of software. Programmers can use software product
lines to automatically generate software products by supplying a set
of enabled features. Analyzing product lines, e.g. for correctness or
security is very complex, as it generally requires the analysis of all
possible products the product line induces. Given a set of n optional
features, those can be up to 2^n different products.
In this talk we discuss an ongoing research project that will make it
possible to automatically convert static program analyses originally
designed for normal Java programs into static program analyses that
work on Java-based software product lines. In every case in which the
original analysis would report that a certain analysis fact holds at a
given statement, the converted analysis will report the feature
combinations under which that fact will hold. Our solution is
formulated over the IFDS/IDE data-flow analysis framework by Reps,
Sagiv and Horwitz, and is currently being implemented on top of Soot
and the Color IDE (CIDE).