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

Holistic recommender systems for software engineering

Published:31 May 2014Publication History

ABSTRACT

Software maintenance is a relevant and expensive phase of the software development process. Developers have to deal with legacy and undocumented code that hinders the comprehension of the software system at hand. Enhancing program comprehension by means of recommender systems in the Integrated Development Environment (IDE) is a solution to assist developers in these tasks. The recommender systems proposed so far generally share common weaknesses: they are not proactive, they consider a single type of data-source, and in case of multiple data-source, relevant items are suggested together without considering interactions among them. We envision a future where recommender systems follow a holistic approach: They provide knowledge regarding a programming context by considering information beyond the one provided by single elements in the context of the software development. The recommender system should consider different elements such as development artifact (e.g., bug reports, mailing lists), and online resources (e.g., blogs, Q&A web sites, API documentation), developers activities, repository history etc. The provided information should be novel and emerge from the semantic links created by the analysis of the interactions among these elements.

References

  1. A. Bacchelli, M. D’Ambros, and M. Lanza. Are popular classes more defect prone? In Proceedings of FASE 2010 (13th international conference on Fundamental Approaches to Software Engineering), pages 59–73. Springer-Verlag, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. Bacchelli, L. Ponzanelli, and M. Lanza. Harnessing stack overflow for the ide. In Proceedings of RSSE 2012 (3rd International Workshop on Recommendation Systems for Software Engineering), pages 26–30. IEEE CS Press, 2012.Google ScholarGoogle Scholar
  3. V. R. Basili, L. C. Briand, and W. L. Melo. A validation of object-oriented design metrics as quality indicators. IEEE Transactions on Software Engineering, 22(10):751–761, Oct. 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. A. Bragdon, S. P. Reiss, R. Zeleznik, S. Karumuri, W. Cheung, J. Kaplan, C. Coleman, F. Adeputra, and J. J. Laviola. Code bubbles: Rethinking the user interface paradigm of integrated development environments. In Proceedings of ICSE 2010 (32nd ACM /IEEE International Conference on Software Engineering), pages 293–296. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. T. Corbi. Program Understanding: Challenge for the 1990s. IBM Systems Journal, 28(2):294–306, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. D. Cubranic and G. Murphy. Hipikat: recommending pertinent software development artifacts. In Proceedings of ICSE 2003 (25th IEEE International Conference on Software Engineering), pages 408–418. IEEE CS Press, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. A. Davis. 201 Principles of Software Development. McGraw-Hill, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. R. DeLine and K. Rowan. Code canvas: zooming towards better development environments. In Proceedings of ICSE 2010 (32nd ACM /IEEE International Conference on Software Engineering), pages 207–210. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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
  10. R. Holmes and A. Begel. Deep intellisense: a tool for rehydrating evaporated information. In Proceedings of MSR 2008 (5th international working conference on Mining software repositories), pages 23–26. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. Holmes, R. Walker, and G. Murphy. Strathcona example recommendation tool. SIGSOFT Software Engineering Notes, 30:237–240, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. O. Kononenko, D. Dietrich, R. Sharma, and R. Holmes. Automatically locating relevant programming help online. In Proceedings of VL /HCC 2012 (The IEEE Symposium on Visual Languages and Human-Centric Computing), pages 127–134. IEEE, 2012.Google ScholarGoogle Scholar
  13. D. Lam, S. L. Rohall, C. Schmandt, and M. K. Stern. Exploiting e-mail structure to improve summarization. In Proceeding of CSCW 2002 (ACM Conference on Computer Supported Cooperative). ACM, 2002.Google ScholarGoogle Scholar
  14. T. D. LaToza, G. Venolia, and R. DeLine. Maintaining mental models: a study of developer work habits. In Proceedings of ICSE 2006 (28th ACM International Conference on Software Engineering), pages 492–501. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. B. Lientz and B. Swanson. Problems in Application Software Maintenance. Communications of the ACM, 24(11):763–769, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 (29th Conference on Human factors in computing systems), pages 2857––2866. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. R. Moser, W. Pedrycz, and G. Succi. A comparative analysis of the e fficiency of change metrics and static code attributes for defect prediction. In Proceedings of ICSE 2008 (30th International Conference on Software Engineering), pages 181–190. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. N. Nagappan, T. Ball, and A. Zeller. Mining metrics to predict component failures. In Proceedings of ICSE 2006 (28th International Conference on Software Engineering), pages 452–461. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. L. Ponzanelli, A. Bacchelli, and M. Lanza. Leveraging crowd knowledge for software comprehension and development. In Proceedings of CSMR 2013 (17th IEEE European Conference on Software Maintenance and Reengineering), pages 59–66. IEEE, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. L. Ponzanelli, A. Bacchelli, and M. Lanza. Seahawk: Stack Overflow in the IDE. In Proceedings of ICSE 2013 (35th ACM /IEEE International Conference on Software Engineering), pages 1295–1298. IEEE CS Press, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. S. Rastkar, G. Murphy, and G. Murray. Summarizing software artifacts: a case study of bug reports. In Proceedings of ICSE 2010 (32nd ACM /IEEE International Conference on Software Engineering), pages 505–514. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. M. P. Robillard, R. J. Walker, and T. Zimmermann. Recommendation systems for software engineering. IEEE Software, 27(4):80–86, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. N. Sawadsky and G. Murphy. Fishtail: from task context to source code examples. In Proceedings of TOPI 2011 (1st Workshop on Developing Tools as Plug-ins), pages 48–51. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. I. Sommerville. Software Engineering. Addison-Wesley, 7th edition, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. A. M. Sonia Haiduc, Jairo Aponte. Supporting program comprehension with source code summarization. In Proceedings of ICSE 2010 (32nd ACM /IEEE International Conference on Software Engineering), pages 223–226. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. K. Spärck Jones. Automatic summarising: The state of the art. Information Processing and Management, 43(6):1449–1481, Nov. 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. J. Stylos and B. A. Myers. Mica: A web-search tool for finding api components and examples. In Proceedings of VL /HCC (The IEEE Symposium on Visual Languages and Human-Centric Computing), pages 195–202, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. C. Treude, O. Barzilay, and M. A. Storey. How do programmers ask and answer questions on the web? (NIER track). In Proceedings of ICSE 2011 (33rd International Conference on Software Engineering), pages 804–807. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. T. Zimmermann, R. Premraj, and A. Zeller. Predicting defects for eclipse. In Proceedings of PROMISE 2007 (3rd International Workshop on Predictor Models in Software Engineering), page 9. IEEE Computer Society, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. T. Zimmermann, P. Weißgerber, S. Diehl, and A. Zeller. Mining version histories to guide software changes. In 26th International Conference on Software Engineering (ICSE 2004), pages 563–572. IEEE CS Press, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Holistic recommender systems for software engineering

    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
      ICSE Companion 2014: Companion Proceedings of the 36th International Conference on Software Engineering
      May 2014
      741 pages
      ISBN:9781450327688
      DOI:10.1145/2591062

      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

      Acceptance Rates

      Overall Acceptance Rate276of1,856submissions,15%

      Upcoming Conference

      ICSE 2025

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader