A User-Guided Approach to Program Analysis
- Ravi Mangal ,
- Xin Zhang ,
- Mayur Naik ,
- Aditya Nori
Foundations of Software Engineering (FSE) |
Published by ACM - Association for Computing Machinery
ACM SIGSOFT Distinguished Paper
Program analysis tools often produce undesirable output due to various approximations. We present an approach and a system \system\ that allows user feedback to guide such approximations towards producing the desired output. We formulate the problem of user-guided program analysis in terms of solving a combination of hard rules and soft rules: hard rules capture soundness while soft rules capture degrees of approximations and preferences of users. Our technique solves the rules using an off-the-shelf solver in a manner that is sound (satisfies all hard rules), optimal (maximally satisfies soft rules), and scales to real-world analyses and programs. We evaluate EUGENE on two different analyses with labeled output on a suite of seven Java programs of size {131}–{198} KLOC. We also report upon a user study involving nine users who employ EUGENE to guide an information-flow analysis on three Java micro-benchmarks. In our experiments, EUGENE significantly reduces misclassified reports upon providing limited amounts of feedback.
© ACM. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version can be found at http://dl.acm.org.