skip to main content
10.1145/2597073.2597077acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Mining StackOverflow to turn the IDE into a self-confident programming prompter

Published:31 May 2014Publication History

ABSTRACT

Developers often require knowledge beyond the one they possess, which often boils down to consulting sources of information like Application Programming Interfaces (API) documentation, forums, Q&A websites, etc. Knowing what to search for and how is non- trivial, and developers spend time and energy to formulate their problems as queries and to peruse and process the results. We propose a novel approach that, given a context in the IDE, automatically retrieves pertinent discussions from Stack Overflow, evaluates their relevance, and, if a given confidence threshold is surpassed, notifies the developer about the available help. We have implemented our approach in Prompter, an Eclipse plug-in. Prompter has been evaluated through two studies. The first was aimed at evaluating the devised ranking model, while the second was conducted to evaluate the usefulness of Prompter.

References

  1. J. Anvik, L. Hiew, and G. Murphy. Who should fix this bug? In Proceedings of ICSE 2006, pages 361–370. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. Bacchelli, T. dal Sasso, M. D’Ambros, and M. Lanza. Content classification of development emails. In Proceedings of ICSE 2012, pages 375–385, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. R. Baeza-Yates and B. Ribeiro-Neto. Modern Information Retrieval. Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. Bajracharya and C. Lopes. Mining search topics from a code search engine usage log. In Proceedings of MSR 2009, pages 111–120, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. R. D. Baker. Modern permutation test software. In Randomization Tests. Marcel Decker, 1995.Google ScholarGoogle Scholar
  6. L. Constantine. Constantine on Peopleware. Yourdon, 1995.Google ScholarGoogle Scholar
  7. J. Cordeiro, B. Antunes, and P. Gomes. Context-based recommendation to support problem solving in software development. In Proceedings of RSSE 2012, pages 85–89. IEEE Press, 2012.Google ScholarGoogle ScholarCross RefCross Ref
  8. T. Cover and J. Thomas. Elements of Information Theory. Wiley-Interscience, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. Cubranic and G. Murphy. Hipikat: recommending pertinent software development artifacts. In Proceedings of ICSE 2003, pages 408–418. IEEE Press, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. Goldman and R. Miller. Codetrail: Connecting source code and web resources. Journal of Visual Languages & Computing, pages 223––235, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. J. Grissom and J. J. Kim. E ffect sizes for research: A broad practical approach. Lawrence Associates, 2005.Google ScholarGoogle Scholar
  12. J. L. Hintze and R. D. Nelson. Violin plots: A box plot-density trace synergism. The American Statistician, 52(2):181–184, 1998.Google ScholarGoogle ScholarCross RefCross Ref
  13. S. Holm. A simple sequentially rejective Bonferroni test procedure. Scandinavian Journal of Statistics, 6:65–70, 1979.Google ScholarGoogle Scholar
  14. R. Holmes and A. Begel. Deep intellisense: a tool for rehydrating evaporated information. In Proceedings of MSR 2008, pages 23–26. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. R. Holmes, R. Walker, and G. Murphy. Approximate structural context matching: An approach to recommend relevant examples. IEEE TSE, 32(12):952–970, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R. Holmes, R. J. Walker, and G. C. Murphy. Strathcona example recommendation tool. In Proceedings of ESEC /FSE 2005, pages 237–240, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. Kersten and G. Murphy. Using task context to improve programmer productivity. In Proceedings of FSE-14, pages 1–11. ACM Press, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. J. Ko, R. DeLine, and G. Venolia. Information needs in collocated software development teams. In Proceedings of ICSE 2007, pages 344–353. IEEE CS Press, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. O. Kononenko, D. Dietrich, R. Sharma, and R. Holmes. Automatically locating relevant programming help online. In Proceedings of VL /HCC 2012, pages 127–134, 2012.Google ScholarGoogle ScholarCross RefCross Ref
  20. T. D. LaToza, G. Venolia, and R. DeLine. Maintaining mental models: a study of developer work habits. In Proceedings of ICSE 2006, pages 492–501. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. V. I. Levenshtein. Binary codes capable of correcting deletions, insertions, and reversals. Cybernetics and Control Theory, (10):707–710, 1966.Google ScholarGoogle Scholar
  22. E. Linstead, P. Rigor, S. Bajracharya, C. Lopes, and P. Baldi. Mining internet-scale software repositories. In In Proceedings of NIPS 2007. MIT Press, 2007.Google ScholarGoogle Scholar
  23. L. Mamykina, B. Manoim, M. Mittal, G. Hripcsak, and B. Hartmann. Design lessons from the fastest q&a site in the west. In Proceedings of CHI 2011, pages 2857––2866. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. C. Manning, P. Raghavan, and H. Schütze. Introduction to Information Retrieval. Cambridge University Press, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. C. McMillan, M. Grechanik, D. Poshyvanyk, C. Fu, and Q. Xie. A source code search engine for finding highly relevant applications. IEEE TSE, 38(5):1069–1087, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. C. McMillan, M. Grechanik, D. Poshyvanyk, Q. Xie, and C. Fu. Portfolio: finding relevant functions and their usage. In Proceedings of ICSE 2011, pages 111–120. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. A. N. Oppenheim. Questionnaire Design, Interviewing and Attitude Measurement. Pinter, London, 1992.Google ScholarGoogle Scholar
  28. L. Ponzanelli, A. Bacchelli, and M. Lanza. Leveraging crowd knowledge for software comprehension and development. In Proceedings of CSMR 2013, pages 59–66, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. M. Rahman, S. Yeasmin, and C. Roy. Towards a context-aware ide-based meta search engine for recommendation about programming errors and exceptions. In Proceedings of CSMR /WCRE 2014, page To appear, 2014.Google ScholarGoogle ScholarCross RefCross Ref
  30. R. H. Reid and G. C. Murphy. Using structural context to recommend source code examples. In Proceedings of ICSE 2005, pages 117–125. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. S. Reiss. Semantics-based code search. In Proceedings of ICSE 2009, pages 243–253. IEEE, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. P. Rigby and M. Robillard. Discovering essential code elements in informal documentation. In Proceedings of ICSE 2013, pages 832–841, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. M. Robillard, R. Walker, and T. Zimmermann. Recommendation systems for software engineering. IEEE Software, pages 80–86, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. N. Sawadsky and G. Murphy. Fishtail: from task context to source code examples. In Proceedings of TOPI 2011, pages 48–51. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. S. Sim, M. Umarji, S. Ratanotayanon, and C. Lopes. How well do search engines support code retrieval on the web? ACM TOSEM, pages 1–25, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. J. Stylos and B. A. Myers. Mica: A web-search tool for finding api components and examples. In Proceedings of VL /HCC 2006, pages 195–202, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. W. Takuya and H. Masuhara. A spontaneous code recommendation tool based on associative search. In Proceedings of SUITE 2011, pages 17–20. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. S. Thummalapenta. Exploiting code search engines to improve programmer productivity. In Proceedings of OOPSLA 2007, pages 921–922. ACM, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. S. Thummalapenta and T. Xie. Parseweb: a programmer assistant for reusing open source code on the web. In Proceedings of ASE 2007, pages 204–213. ACM, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. S. Thummalapenta and T. Xie. Spotweb: Detecting framework hotspots and coldspots via mining open source code on the web. In Proceedings of ASE 2008, pages 327–336. IEEE, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. M. Umarji, S. Sim, and C. Lopes. Archetypal internet-scale source code searching. In Proceedings of OSS 2008, pages 257–263, 2008.Google ScholarGoogle ScholarCross RefCross Ref
  42. L. Williams. Integrating pair programming into a software development process. In Proceedings of CSEET 2001, pages 27–36. IEEE, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. T. Zimmermann, P. Weißgerber, S. Diehl, and A. Zeller. Mining version histories to guide software changes. In Proceedings of ICSE 2004, pages 563–572. IEEE, 2004. 10 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Mining StackOverflow to turn the IDE into a self-confident programming prompter

    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
    • Published in

      cover image ACM Conferences
      MSR 2014: Proceedings of the 11th Working Conference on Mining Software Repositories
      May 2014
      427 pages
      ISBN:9781450328630
      DOI:10.1145/2597073
      • General Chair:
      • Premkumar Devanbu,
      • Program Chairs:
      • Sung Kim,
      • Martin Pinzger

      Copyright © 2014 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 31 May 2014

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Upcoming Conference

      ICSE 2025

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader