Department of Computer Engineering
S E M I N A R
Making Offline Analyses Continuous
A continuous program analysis reduces development interruptions by automatically recomputing results whenever the developer changes the code.
Implementing a continuous analysis is difficult because of the need for isolation and currency. Isolation requires the analysis not to block the developer and the developer not to invalidate the analysis. Currency requires the analysis to quickly react to simultaneous developer edits and make most relevant analysis results available to the developer.
This talk introduces Codebase Replication, a novel technique that makes it easy to implement continuous analyses. The analysis uses a copy of the code that is kept in sync with the developer's view in the IDE. The copy codebase enables Codebase Replication to transform an existing file-based analysis into an IDE-integrated continuous analysis without any modifications to the analysis source code. Codebase Replication can be used to develop speculative analyses: analyses that use predictions of future developer actions to guide the developer to make more informed decisions.
I have built a publicly-available Eclipse plug-in implementation of Codebase Replication and five continuous analysis tools. The first four tools make an existing analysis continuous and improve feedback frequency for bug finding, code smell detection, testing, and data race detection.
The last analysis computes the consequences of Eclipse quick fixes, by continuously applying all available quick fixes, before the developer invokes a quick fix. Showing the consequences of quick fixes inside the quick fix dialog improved developer efficiency by 10% in removing compilation errors. These continuous analyses satisfy isolation and currency, and they have no perceivable run-time overhead.
Bio: Kıvanç Muşlu is a last-year PhD candidate in Computer Science & Engineering at the University of Washington. His research interests are software engineering and programming languages. He develops techniques and tools that improve existing analyses and make it easier to implement new analyses. Kıvanç was the 5th best student, out of over 1.8 million students, in the University Entrance Exams (ÖSS). He received his B.Sc. degree in Computer Engineering with the valedictorian award from Koç University. He has been an intern at Microsoft Research, Facebook, and the University of Twente.
DATE: 9 July, 2014, Wednesday @ 15:40