This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Recommendation Systems for Software Engineering
July/August 2010 (vol. 27 no. 4)
pp. 80-86
Martin Robillard, McGill University, Montreal
Robert Walker, University of Calgary, Calgary
Thomas Zimmermann, Microsoft Corportation, Redmond
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.

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.

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-Aug. 2010, doi:10.1109/MS.2009.161
Usage of this product signifies your acceptance of the Terms of Use.