Subscribe
Issue No.04 - July/August (2010 vol.27)
pp: 80-86
Martin Robillard , McGill University, Montreal
Robert Walker , University of Calgary, Calgary
Thomas Zimmermann , Microsoft Corportation, Redmond
ABSTRACT
Software development can be challenging because of the large information spaces that developers must navigate. Without assistance, developers can become bogged down and spend a disproportionate amount of their time seeking information at the expense of other value-producing tasks. Recommendation systems for software engineering (RSSEs) are software tools that can assist developers with a wide range of activities, from reusing code to writing effective bug reports. The authors provide an overview of recommendation systems for software engineering: what they are, what they can do for developers, and what they might do in the future.
INDEX TERMS
software engineering, development tools, programming environments, software construction tools, coding tools and techniques, design tools and techniques
CITATION
Martin Robillard, Robert Walker, Thomas Zimmermann, "Recommendation Systems for Software Engineering", IEEE Software, vol.27, no. 4, pp. 80-86, July/August 2010, doi:10.1109/MS.2009.161
REFERENCES
1. J.A. Konstan et al., "Foreword," Proc. 2007 ACM Conf. Recommender Systems (RecSys 07), ACM Press, 2007. p. iii.
2. M.P. Robillard, R.J. Walker, and T. Zimmermann, "Foreword," Proc. Int'l Workshop on Recommendation Systems for Software Engineering, ACM Press, 2008; www.rsse.org.
3. Y. Ye and G. Fischer, "Reuse-Conducive Development Environments," Automated Software Eng., vol. 12, no. 2, 2005, pp. 199–235.
4. A. Mockus and J.D. Herbsleb, "Expertise Browser: A Quantitative Approach to Identifying Expertise," Proc. Int'l Conf. Software Eng. (ICSE 02), IEEE CS Press, 2002, pp. 503–512.
5. R. Holmes, R.J. Walker, and G.C. Murphy, "Approximate Structural Context Matching: An Approach for Recommending Relevant Examples," IEEE Trans. Software Eng., vol. 32, no. 1, 2006, pp. 952–970.
6. S. Thummalapenta and T. Xie, "PARSEWeb: A Programming Assistant for Reusing Open Source Code on the Web," Proc. IEEE/ACM Int'l Conf. Automated Software Eng. (ASE 07), ACM Press, 2007, pp. 204–213.
7. M.P. Robillard, "Topology Analysis of Software Dependencies," ACM Trans. Software Eng. and Methodology, vol. 17, no. 4, 2008, article no. 18.
8. T. Zimmermann et al., "Mining Version Histories to Guide Software Changes," IEEE Trans. Software Eng., vol. 31, no. 6, 2005, pp. 429–445.
9. B. Dagenais and M.P. Robillard, "Recommending Adaptive Changes for Framework Evolution," Proc. 30th Int'l Conf. Software Eng. (ICSE 08), IEEE CS Press, 2008, pp. 481–490.
10. A. Ankolekar et al., "Supporting Online Problem-Solving Communities with the Semantic Web," Proc. Int'l Conf. World Wide Web, ACM Press, 2006, pp. 575–584.
11. N. Nagappan, T. Ball, and A. Zeller, "Mining Metrics to Predict Component Failures," Proc. 28th Int'l Conf. Software Eng. (ICSE 06), IEEE CS Press, 2006, pp. 452-461.
12. H.-J. Happel and W. Maalej, "Potentials and Challenges of Recommendation Systems for Software Development," Proc. Int'l Workshop on Recommendation Systems for Software Eng. (RSSE 08), ACM, 2008, pp. 11–15.
13. M. Swaine, "Social Networks and Software Development," Dr. Dobb's, Feb. 2008; www.ddj.com/architect206104412.