Incremental re-execution of programs
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
A categorized bibliography on incremental computation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Does continuous visual feedback aid debugging in direct-manipulation programming systems?
Proceedings of the ACM SIGCHI Conference on Human factors in computing systems
Continuous execution: the VisiProg environment
ICSE '85 Proceedings of the 8th international conference on Software engineering
Software Engineering Economics
Software Engineering Economics
Implementing Level 4 Liveness in Declarative Visual Programming Languages
VL '98 Proceedings of the IEEE Symposium on Visual Languages
Reducing wasted development time via continuous testing
ISSRE '03 Proceedings of the 14th International Symposium on Software Reliability Engineering
Queue - Power Management
An experimental evaluation of continuous testing during development
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Proceedings of the 27th international conference on Software engineering
DITTO: automatic incrementalization of data structure invariant checks (in Java)
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Differential symbolic execution
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Batch, conversational, and incremental compilers
AFIPS '69 (Spring) Proceedings of the May 14-16, 1969, spring joint computer conference
Example-centric programming: integrating web search into the development environment
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Speculative analysis: exploring future development states of software
Proceedings of the FSE/SDP workshop on Future of software engineering research
Differential static analysis: opportunities, applications, and challenges
Proceedings of the FSE/SDP workshop on Future of software engineering research
Proactive detection of collaboration conflicts
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Improving early detection of software merge conflicts
Proceedings of the 34th International Conference on Software Engineering
Speculative analysis of integrated development environment recommendations
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Data debugging with continuous testing
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Hi-index | 0.00 |
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.