Making Offline Analyses Continuous"/> Making Offline Analyses Continuous"/>
Developers use analysis tools to help write, debug, and understand software systems under development. A developer's change to the system source code may affect analysis results. Typically, to learn those effects, the developer must explicitly initiate the analysis. This may interrupt the developer's workflow and/or the delay until the developer learns the implications of the change. The situation is even worse for impure analyses — ones that modify the code on which it runs — because such analyses block the developer from working on the code.
This paper presents Codebase Replication, a novel approach to easily convert an offline analysis — even an impure one — into a continuous analysis that informs the developer of the implications of recent changes as quickly as possible after the change is made. Codebase Replication copies the developer's codebase, incrementally keeps this copy codebase in sync with the developer's codebase, makes that copy codebase available for offline analyses to run without disturbing the developer and without the developer's changes disturbing the analyses, and makes analysis results available to be presented to the developer.
We have implemented Codebase Replication in Solstice, an open-source, publicly-available Eclipse plug-in. We have used Solstice to convert three offline analyses — FindBugs, PMD, and unit testing — into continuous ones. Each conversion required on average 436 NCSL and took, on average, 18 hours. Solstice-based analyses experience no more than 2.5 milliseconds of runtime overhead per developer action.
@inproceedings{Muslu13fse,
author = {K{\i}van{\c{c}} Mu{\c{s}}lu and Yuriy Brun and Michael D.
Ernst and David Notkin},
title =
{Making
Offline Analyses Continuous},
booktitle = {Proceedings of the 9th Joint Meeting of the European
Software Engineering Conference and ACM SIGSOFT Symposium on the
Foundations of Software Engineering (ESEC/FSE)},
venue = {ESEC/FSE},
month = {August},
year = {2013},
date = {18--26},
address = {Saint Petersburg, Russia},
accept = {$\frac{51}{251} \approx 20\%$},
pages = {323--333},
note = {DOI:
10.1145/2491411.2491460},
doi = {10.1145/2491411.2491460},
abstract = {Developers use analysis tools to help write, debug, and
understand software systems under development. A developer's change
to the system source code may affect analysis results. Typically, to
learn those effects, the developer must explicitly initiate the
analysis. This may interrupt the developer's workflow and/or the
delay until the developer learns the implications of the change. The
situation is even worse for impure analyses --- ones that modify the
code on which it runs --- because such analyses block the developer
from working on the code.
This paper presents Codebase Replication, a novel approach to easily
convert an offline analysis --- even an impure one --- into a
continuous analysis that informs the developer of the implications
of recent changes as quickly as possible after the change is made.
Codebase Replication copies the developer's codebase, incrementally
keeps this copy codebase in sync with the developer's codebase,
makes that copy codebase available for offline analyses to run
without disturbing the developer and without the developer's changes
disturbing the analyses, and makes analysis results available to be
presented to the developer.
We have implemented Codebase Replication in Solstice, an
open-source, publicly-available Eclipse plug-in. We have used
Solstice to convert three offline analyses --- FindBugs, PMD, and
unit testing --- into continuous ones. Each conversion required on
average 436 NCSL and took, on average, 18 hours. Solstice-based
analyses experience no more than 2.5 milliseconds of runtime
overhead per developer action.},
fundedBy = {NSF CCF-0963757, NSF CCF-1016701},
}