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.
- J. Anvik, L. Hiew, and G. Murphy. Who should fix this bug? In Proceedings of ICSE 2006, pages 361–370. ACM, 2006. Google ScholarDigital Library
- 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 ScholarDigital Library
- R. Baeza-Yates and B. Ribeiro-Neto. Modern Information Retrieval. Addison-Wesley, 1999. Google ScholarDigital Library
- 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 ScholarDigital Library
- R. D. Baker. Modern permutation test software. In Randomization Tests. Marcel Decker, 1995.Google Scholar
- L. Constantine. Constantine on Peopleware. Yourdon, 1995.Google Scholar
- 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 ScholarCross Ref
- T. Cover and J. Thomas. Elements of Information Theory. Wiley-Interscience, 1991. Google ScholarDigital Library
- D. Cubranic and G. Murphy. Hipikat: recommending pertinent software development artifacts. In Proceedings of ICSE 2003, pages 408–418. IEEE Press, 2003. Google ScholarDigital Library
- M. Goldman and R. Miller. Codetrail: Connecting source code and web resources. Journal of Visual Languages & Computing, pages 223––235, 2009. Google ScholarDigital Library
- R. J. Grissom and J. J. Kim. E ffect sizes for research: A broad practical approach. Lawrence Associates, 2005.Google Scholar
- J. L. Hintze and R. D. Nelson. Violin plots: A box plot-density trace synergism. The American Statistician, 52(2):181–184, 1998.Google ScholarCross Ref
- S. Holm. A simple sequentially rejective Bonferroni test procedure. Scandinavian Journal of Statistics, 6:65–70, 1979.Google Scholar
- R. Holmes and A. Begel. Deep intellisense: a tool for rehydrating evaporated information. In Proceedings of MSR 2008, pages 23–26. ACM, 2008. Google ScholarDigital Library
- 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 ScholarDigital Library
- R. Holmes, R. J. Walker, and G. C. Murphy. Strathcona example recommendation tool. In Proceedings of ESEC /FSE 2005, pages 237–240, 2005. Google ScholarDigital Library
- M. Kersten and G. Murphy. Using task context to improve programmer productivity. In Proceedings of FSE-14, pages 1–11. ACM Press, 2006. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- V. I. Levenshtein. Binary codes capable of correcting deletions, insertions, and reversals. Cybernetics and Control Theory, (10):707–710, 1966.Google Scholar
- 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 Scholar
- 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 ScholarDigital Library
- C. Manning, P. Raghavan, and H. Schütze. Introduction to Information Retrieval. Cambridge University Press, 2008. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- A. N. Oppenheim. Questionnaire Design, Interviewing and Attitude Measurement. Pinter, London, 1992.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- S. Reiss. Semantics-based code search. In Proceedings of ICSE 2009, pages 243–253. IEEE, 2009. Google ScholarDigital Library
- P. Rigby and M. Robillard. Discovering essential code elements in informal documentation. In Proceedings of ICSE 2013, pages 832–841, 2013. Google ScholarDigital Library
- M. Robillard, R. Walker, and T. Zimmermann. Recommendation systems for software engineering. IEEE Software, pages 80–86, 2010. Google ScholarDigital Library
- N. Sawadsky and G. Murphy. Fishtail: from task context to source code examples. In Proceedings of TOPI 2011, pages 48–51. ACM, 2011. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- S. Thummalapenta. Exploiting code search engines to improve programmer productivity. In Proceedings of OOPSLA 2007, pages 921–922. ACM, 2007. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- M. Umarji, S. Sim, and C. Lopes. Archetypal internet-scale source code searching. In Proceedings of OSS 2008, pages 257–263, 2008.Google ScholarCross Ref
- L. Williams. Integrating pair programming into a software development process. In Proceedings of CSEET 2001, pages 27–36. IEEE, 2001. Google ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Mining StackOverflow to turn the IDE into a self-confident programming prompter
Comments