ABSTRACT
Modern integrated development environments make recommendations 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: modify the source code without changing program semantics; modify the source code and (incorrectly) change program semantics; modify the source code and (incorrectly) create compilation errors; show a name collision warning and require developer input; or 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. Using Eclipse Quick Fix as a domain, we describe a plug-in, Quick Fix Scout, that computes the consequences of Quick Fix recommendations. In our experiments, developers completed compilation-error removal tasks 10% faster when using Quick Fix Scout than Quick Fix, although the sample size was not large enough to show statistical significance.
- M. Bruch, M. Monperrus, and M. Mezini. Learning from examples to improve code completion systems. In Proceedings of the the 7th Joint Meeting of the European Software Engineering Conference and ACM SIGSOFT Symposium on The Foundations of Software Engineering (ESEC/FSE09), pages 213--222, Amsterdam, The Netherlands, 2009. doi: 10.1145/1595696.1595728. Google ScholarDigital Library
- Y. Brun, R. Holmes, M. D. Ernst, and D. Notkin. Speculative analysis: Exploring future states of software. In Proceedings of the 2010 Foundations of Software Engineering Working Conference on the Future of Software Engineering Research, FoSER '10, Santa Fe, NM, USA, November 2010. doi: 10.1145/1882362.1882375.{ Google ScholarDigital Library
- Y. Brun, R. Holmes, M. D. Ernst, and D. Notkin. Crys-tal: Proactive conflict detector for distributed version control. http://crystalvc.googlecode.com, 2010.Google Scholar
- Y. Brun, R. Holmes, M. D. Ernst, and D. Notkin. Proactive detection of collaboration conflicts. In Proceedings of the 8th Joint Meeting of the European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE '11, pages 168--178, Szeged, Hungary, September 2011. doi: 10.1145/2025113.2025139. Google ScholarDigital Library
- C. Castro-Herrera, C. Duan, J. Cleland-Huang, and B. Mobasher. A recommender system for requirements elicitation in large-scale software projects. In Proceedings of the 2009 ACM Symposium on Applied Computing, SAC '09, pages 1419--1426, 2009. doi: 10.1145/1529282.1529601. Google ScholarDigital Library
- R. Holmes, M. Robillard, R. Walker, T. Zimmermann, and W. Maalej. International Workshops on Recommendation Systems for Software Engineering (RSSE). https://sites.google.com/site/rsseresearch, 2012.Google Scholar
- W. Janjic, D. Stoll, P. Bostan, and C. Atkinson. Lowering the barrier to reuse through test-driven search. In Proceedings of the 2009 31st International Conference on Software Engineering Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation, SUITE '09, pages 21--24, 2009. doi: 10.1109/SUITE.2009.5070015. Google ScholarDigital Library
- P. Kapur, B. Cossette, and R. J. Walker. Refactoring references for library migration. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Lan-guages and Applications, OOPSLA '10, pages 726--738, 2010. doi: 10.1145/1869459.1869518. Google ScholarDigital Library
- F. M. Melo and A. Pereira Jr. A component-based open-source framework for general-purpose recommender systems. In Proceedings of the 14th International ACM SIGSOFT Symposium on Component Based Software Engineering, CBSE '11, pages 67--72, 2011. doi: 10.1145/2000229.2000239. Google ScholarDigital Library
- K. Mus¸ lu, Y. Brun, R. Holmes, M. D. Ernst, and D. Notkin. Quick Fix Scout. http://quick-fix-scout.googlecode.com, 2010.Google Scholar
- K. Mus¸ lu, Y. Brun, R. Holmes, M. D. Ernst, and D. Notkin. Improving IDE recommendations by considering global implications of existing recommendations. In Proceedings of the 34th International Conference on Software Engineering, New Ideas and Emerging Results Track, ICSE '12, Zurich, Switzerland, June 2012. doi: 10.1109/ICSE.2012.6227082. Google ScholarDigital Library
- G. C. Murphy, M. Kersten, and L. Findlater. How are Java software developers using the Eclipse IDE? IEEE Software, 23(4):76--83, July 2006. doi: 10.1109/MS.2006.105. Google ScholarDigital Library
- D. Perelman, S. Gulwani, T. Ball, and D. Grossman. Type-directed completion of partial expressions. In Proceedings of Programming Language Design and Implementation, PLDI '12, Beijing, China, June 2012. doi: 10.1145/2254064.2254098. Google ScholarDigital Library
- R. Robbes and M. Lanza. How program history can improve code completion. In Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering, ASE '08, pages 317--326, L'Aquila, Italy, 2008. doi: 10.1109/ASE.2008.42. Google ScholarDigital Library
- M. Robillard, R. Walker, and T. Zimmermann. Recommendation systems for software engineering. IEEE Software, 27: 80--86, 2010. doi: 10.1109/MS.2009.161. Google ScholarDigital Library
- K. Schneider, S. Gärtner, T. Wehrmaker, and B. Brugge. Recommendations as learning: From discrepancies to software improvement. In Proceedings of the International Workshop on Software Recommendation Systems, RSSE '12, pages 31--32, 2012. doi: 10.1109/RSSE.2012.6233405.Google ScholarCross Ref
- P. F. Xiang, A. T. T. Ying, P. Cheng, Y. B. Dang, K. Ehrlich, M. E. Helander, P. M. Matchen, A. Empere, P. L. Tarr, C. Williams, and S. X. Yang. Ensemble: a recommendation tool for promoting communication in software teams. In Proceedings of the International Workshop on Recommendation Systems for Software Engineering, RSSE '08, pages 2:1--2:1, 2008. doi: 10.1145/1454247.1454259. Google ScholarDigital Library
Index Terms
- Speculative analysis of integrated development environment recommendations
Recommendations
Speculative analysis of integrated development environment recommendations
OOPSLA '12Modern integrated development environments make recommendations 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 ...
Speculative analysis: exploring future development states of software
FoSER '10: Proceedings of the FSE/SDP workshop on Future of software engineering researchMost software tools and environments help developers analyze the present and past development states of their software systems. Few approaches have investigated the potential consequences of future actions the developers may perform. The commoditization ...
Comments