Speculative Analysis of Integrated Development Environment Recommendations
by Kıvanç Muşlu, Yuriy Brun, Reid Holmes, Michael D. Ernst, David Notkin
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.

Citation:
Kıvanç Muşlu, Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin, Speculative Analysis of Integrated Development Environment Recommendations, in Proceedings of the 27th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2012, pp. 669–682.
Bibtex:
@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 =
  {\href{http://people.cs.umass.edu/brun/pubs/pubs/Muslu12oopsla.pdf}{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 = {\href{http://dx.doi.org/10.1145/2384616.2384665}{DOI:
  10.1145/2384616.2384665}},
  doi = {10.1145/2384616.2384665},
  accept = {$\frac{57}{228} = 25\%$},
  
  abstract = {<p>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.</p>
  
  <p>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.</p>},

  fundedBy = {NSF CNS-0937060 to the CRA for the CIFellows Project, NSF CCF-0963757,
  Microsoft Research via a SEIF award},
}