skip to main content
research-article

Speculative analysis of integrated development environment recommendations

Published:19 October 2012Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle Scholar
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. K. Mus¸ lu, Y. Brun, R. Holmes, M. D. Ernst, and D. Notkin. Quick Fix Scout. http://quick-fix-scout.googlecode.com, 2010.Google ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarCross RefCross Ref
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Speculative analysis of integrated development environment recommendations

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 47, Issue 10
      OOPSLA '12
      October 2012
      1011 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/2398857
      Issue’s Table of Contents
      • cover image ACM Conferences
        OOPSLA '12: Proceedings of the ACM international conference on Object oriented programming systems languages and applications
        October 2012
        1052 pages
        ISBN:9781450315616
        DOI:10.1145/2384616

      Copyright © 2012 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 19 October 2012

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!