Speculative Analysis of Integrated Development Environment Recommendations"/> Speculative Analysis of Integrated Development Environment Recommendations"/>
Modern integrated development environments recommend and automate common tasks, such as refactorings, auto-completions, and error corrections. However, these tools present little or no information about the consequences of the recommended changes. For example, a rename refactoring may: (1) modify the source code without changing program semantics, (2) modify the source code and (incorrectly) change program semantics, (3) modify the source code and (incorrectly) create compilation errors, (4) show a name collision warning and require developer input, or (5) show an error and not change the source code. Having to compute the consequences of a recommendation — either mentally or by making source code changes — puts an extra burden on the developers.
This paper aims to reduce this burden with a technique that informs developers of the consequences of code transformations. Taking Eclipse Quick Fix as an example, we build a plug-in, Quick Fix Scout, that computes the consequences of Quick Fix recommendations. Our experiments with 20 users demonstrate that developers complete compilation-error removal tasks 10% faster when using Quick Fix Scout than Eclipse's Quick Fix.
@inproceedings{Muslu12oopsla,
author = {K{\i}van{\c{c}} Mu{\c{s}}lu and Yuriy Brun and Reid Holmes and
Michael D. Ernst and David Notkin},
title =
{Speculative
Analysis of Integrated Development Environment Recommendations},
year = {2012},
address = {Tucson, AZ, USA},
booktitle = {Proceedings of the 27th ACM SIGPLAN Conference on
Object-Oriented Programming, Systems, Languages, and Applications
(OOPSLA)},
venue = {OOPSLA},
month = {October},
date = {23--25},
pages = {669--682},
note = {DOI:
10.1145/2384616.2384665},
doi = {10.1145/2384616.2384665},
accept = {$\frac{57}{228} = 25\%$},
abstract = {Modern integrated development environments recommend and
automate common tasks, such as refactorings, auto-completions, and error
corrections. However, these tools present little or no information about the
consequences of the recommended changes. For example, a rename refactoring
may: (1) modify the source code without changing program semantics, (2)
modify the source code and (incorrectly) change program semantics, (3)
modify the source code and (incorrectly) create compilation errors, (4) show
a name collision warning and require developer input, or (5) show an error
and not change the source code. Having to compute the consequences of a
recommendation --- either mentally or by making source code changes --- puts
an extra burden on the developers.
This paper aims to reduce this burden with a technique that informs
developers of the consequences of code transformations. Taking Eclipse Quick
Fix as an example, we build a plug-in, Quick Fix Scout, that computes the
consequences of Quick Fix recommendations. Our experiments with 20 users
demonstrate that developers complete compilation-error removal tasks 10%
faster when using Quick Fix Scout than Eclipse's Quick Fix.},
fundedBy = {NSF CNS-0937060 to the CRA for the CIFellows Project, NSF CCF-0963757,
Microsoft Research via a SEIF award},
}