Abstract
Developer profiles are representations that capture the characteristics of a software developer, including software development knowledge, organizational information, and communication networks. In recommendation systems in software engineering, developer profiles can be used for personalizing recommendations and for recommending developers who can assist with a task. This chapter describes techniques for capturing, representing, storing, and using developer profiles.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Using data from older VCSes requires mapping lines to high-level program elements such as methods. For more information about this step, readers can refer to Zimmermann and WeiĂŸgerber [58].
- 2.
Terms are typically tokens from document corpus, stemmed or not depending on the application, after removing stop words and non-alphabetic tokens [30].
References
Anand, S., Mobasher, B.: Intelligent techniques for web personalization. In: Revised Selected Papers of the IJCAI Workshop on Intelligent Techniques for Web Personalization. Lecture Notes in Computer Science, vol. 3169, pp. 1–36 (2005). doi:10.1007/11577935_1
Anvik, J., Murphy, G.C.: Determining implementation expertise from bug reports. In: Proceedings of the International Workshop on Mining Software Repositories (2007). doi:10.1109/MSR.2007.7
Anvik, J., Murphy, G.C.: Reducing the effort of bug report triage: Recommenders for development-oriented decisions. ACM Trans. Software Eng. Methodol. 20(3), 10:1–10:35 (2011). doi:10.1145/2000791.2000794
Bachmann, A., Bird, C., Rahman, F., Devanbu, P., Bernstein, A.: The missing links: bugs and bug-fix commits. In: Proceedings of the ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 97–106 (2010). doi:10.1145/1882291.1882308
Bird, C., Gourley, A., Devanbu, P., Gertz, M., Swaminathan, A.: Mining email social networks. In: Proceedings of the International Workshop on Mining Software Repositories, pp. 137–143 (2006). doi:10.1145/1137983.1138016
Canny, J.: Collaborative filtering with privacy. In: Proceedings of the IEEE Symposium on Security and Privacy, pp. 45–57 (2002). doi:10.1109/SECPRI.2002.1004361
Cataldo, M., Wagstrom, P.A., Herbsleb, J.D., Carley, K.M.: Identification of coordination requirements: Implications for the design of collaboration and awareness tools. In: Proceedings of the ACM Conference on Computer Supported Cooperative Work, pp. 353–362 (2006). doi:10.1145/1180875.1180929
Cheng, L.T., de Souza, C.R.B., Hupfer, S., Patterson, J., Ross, S.: Building collaboration into IDEs. ACM Queue 1(9), 40–50 (2003). doi:10.1145/966789.966803
Coman, I.D., Sillitti, A.: Automated identification of tasks in development sessions. In: Proceedings of the IEEE International Conference on Program Comprehenension, pp. 212–217 (2008). doi:10.1109/ICPC.2008.16
Dagenais, B., Hendren, L.: Enabling static analysis for partial Java programs. In: Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 313–328 (2008). doi:10.1145/1449955.1449790
de Alwis, B., Murphy, G.C.: Using visual momentum to explain disorientation in the Eclipse IDE. In: Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing, pp. 51–54 (2006). doi:10.1109/VLHCC.2006.49
Findlater, L., McGrenere, J., Modjeska, D.: Evaluation of a role-based approach for customizing a complex development environment. In: Proceedings of the ACM SIGCHI Conference on Human Factors in Computing Systems, pp. 1267–1270 (2008). doi:10.1145/1357054.1357251
Fischer, G.: User modeling in human–computer interaction. User Model. User-Adapt. Interact. 11(1), 65–86 (2001). doi:10.1023/A:1011145532042
Fritz, T., Ou, J., Murphy, G.C., Murphy-Hill, E.: A degree-of-knowledge model to capture source code familiarity. In: Proceedings of the ACM/IEEE International Conference on Software Engineering, vol. 1, pp. 385–394 (2010). doi:10.1145/1806799.1806856
Gauch, S., Speretta, M., Chandramouli, A., Micarelli, A.: User profiles for personalized information access. In: Brusilovsky, P., Kobsa, A., Nejdl, W. (eds.) The Adaptive Web: Methods and Strategies of Web Personalization. Lecture Notes in Computer Science, vol. 4321, Chap. 2, pp. 54–89. Springer, Berlin (2007). doi:10.1007/978-3-540-72079-9_2
Google Official Blog: Personalized search for everyone. URL http://googleblog.blogspot.de/2009/12/personalized-search-for-everyone.html (2009). Retrieved 9Â Oct 2013
Herbsleb, J.D.: Global software engineering: the future of socio-technical coordination. In: Proceedings of the Future of Software Engineering, pp. 188–198 (2007). doi:10.1109/FOSE.2007.5
Herzig, K., Zeller, A.: Mining bug data: a practitioner’s guide. In: Robillard, M., Maalej, W., Walker, R.J., Zimmermann, T. (eds.) Recommendation Systems in Software Engineering. Springer, Berlin (2014)
Jameson, A.: Adaptive interfaces and agents. In: Sears, A., Jacko, J.A. (eds.) The Human-Computer Interaction Handbook: Fundamentals, Evolving Technologies and Emerging Applications, 2nd edn., pp. 433–458. CRC Press, West Palm Beach (2008)
Keenoy, K., Levene, M.: Personalisation of web search. In: Proceedings of the IJCAI Workshop on Intelligent Techniques for Web Personalization. Lecture Notes in Computer Science, vol. 3169, pp. 201–228 (2005). doi:10.1007/11577935_11
Kelly, D., Teevan, J.: Implicit feedback for inferring user preference: a bibliography. ACM SIGIR Forum 37(2), 18–28 (2003). doi:10.1145/959258.959260
Kersten, M., Murphy, G.C.: Mylar: A degree-of-interest model for IDEs. In: Proceedings of the International Conference on Aspect-Oriented Software Development, pp. 159–168 (2005). doi:10.1145/1052898.1052912
Kersten, M., Murphy, G.C.: Using task context to improve programmer productivity. In: Proceedings of the ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 1–11 (2006). doi:10.1145/1181775.1181777
Kobsa, A.: Privacy-enhanced personalization. Commun. ACM 50(8), 24–33 (2007). doi:10.1145/1278201.1278202
Kobsa, A.: Privacy-enhanced web personalization. In: Brusilovsky, P., Kobsa, A., Nejdl, W. (eds.) The Adaptive Web: Methods and Strategies of Web Personalization, Chap. 21, pp. 628–670. Springer (2007). doi:10.1007/978-3-540-72079-9_21
Lam, S.K.T., Frankowski, D., Riedl, J.: Do you trust your recommendations?: an exploration of security and privacy issues in recommender systems. In: Proceedings of the International Conference on Emerging Trends in Information and Communication Security. Lecture Notes in Computer Science, vol. 3995, pp. 14–29 (2006). doi:10.1007/11766155_2
Lee, T., Nam, J., Han, D., Kim, S., In, H.P.: Micro interaction metrics for defect prediction. In: Proceedings of the European Software Engineering Conference/ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 311–321 (2011). doi:10.1145/2025113.2025156
Ma, D., Schuler, D., Zimmermann, T., Sillito, J.: Expert recommendation with usage expertise. In: Proceedings of the IEEE International Conference on Software Maintenance, pp. 535–538 (2009). doi:10.1109/ICSM.2009.5306386
Maalej, W., Fritz, T., Robbes, R.: Collecting and processing interaction data for recommendation systems. In: Robillard, M., Maalej, W., Walker, R.J., Zimmermann, T. (eds.) Recommendation Systems in Software Engineering. Springer, Berlin (2014)
Manning, C.D., Raghavan, P., Schutze, H.: Introduction to Information Retrieval. Cambridge University Press, Cambridge (2008)
Matter, D., Kuhn, A., Nierstrasz, O.: Assigning bug reports using a vocabulary-based expertise model of developers. In: Proceedings of the International Working Conference on Mining Software Repositories, pp. 131–140 (2009). doi:10.1109/MSR.2009.5069491
McDonald, D.W., Ackerman, M.S.: Expertise recommender: a flexible recommendation system and architecture. In: Proceedings of the ACM Conference on Computer Supported Cooperative Work, pp. 231–240 (2000). doi:10.1145/358916.358994
Menzies, T.: Data mining: a tutorial. In: Robillard, M., Maalej, W., Walker, R.J., Zimmermann, T. (eds.) Recommendation Systems in Software Engineering. Springer, Berlin (2014)
Minto, S., Murphy, G.C.: Recommending emergent teams. In: Proceedings of the International Workshop on Mining Software Repositories, pp. 5:1–5:8 (2007). doi:10.1109/MSR.2007.27
Mockus, A., Herbsleb, J.D.: Expertise browser: a quantitative approach to identifying expertise. In: Proceedings of the ACM/IEEE International Conference on Software Engineering, pp. 503–512 (2002). doi:10.1145/581339.581401
Montaner, M., LĂ³pez, B., De La Rosa, J.L.: A taxonomy of recommender agents on the internet. Artif. Intell. Rev. 19(4), 285–330 (2003). doi:10.1023/A:1022850703159
Nagappan, N., Ball, T.: Use of relative code churn measures to predict system defect density. In: Proceedings of the ACM/IEEE International Conference on Software Engineering, pp. 284–292 (2005). doi:10.1145/1062455.1062514
Nagappan, N., Murphy, B., Basili, V.: The influence of organizational structure on software quality: an empirical case study. In: Proceedings of the ACM/IEEE International Conference on Software Engineering, pp. 521–530 (2008). doi:10.1145/1368088.1368160
Ohira, M., Ohsugi, N., Ohoka, T., Matsumoto, K.: Accelerating cross-project knowledge collaboration using collaborative filtering and social networks. In: Proceedings of the International Workshop on Mining Software Repositories, pp. 15:1–15:5 (2005). doi:10.1145/1083142.1083163
Pariser, E.: The Filter Bubble: What the Internet Is Hiding from You. Penguin Press HC, New York (2011)
Ricci, F., Rokach, L., Shapira, B.: Introduction to Recommender Systems Handbook. In: Ricci, F., Rokach, L., Shapira, B. (eds.) Recommender Systems Handbook, pp. 1–35. Springer, Berlin (2011). doi:10.1007/978-0-387-85820-3_1
Robbes, R., Lanza, M.: Characterizing and understanding development sessions. In: Proceedings of the IEEE International Conference on Program Comprehension, pp. 155–166 (2007). doi:10.1109/ICPC.2007.12
Robbes, R., Lanza, M.: Improving code completion with program history. Autom. Software Eng. Int. J. 17(2), 181–212 (2010). doi:10.1007/s10515-010-0064-x
Robillard, M.P., Coelho, W., Murphy, G.C.: How effective developers investigate source code: an exploratory study. IEEE Trans. Software Eng. 30(12), 889–903 (2004). doi:10.1109/TSE.2004.101
Schuler, D., Zimmermann, T.: Mining usage expertise from version archives. In: Proceedings of the International Workshop on Mining Software Repositories, pp. 121–124 (2008). doi:10.1145/1370750.1370779
Singer, J., Elves, R., Storey, M.A.D.: NavTracks: supporting navigation in software maintenance. In: Proceedings of the IEEE International Conference on Software Maintenance, pp. 325–334 (2005). doi:10.1109/ICSM.2005.66
Sleeman, D., Brown, J.S.: Intelligent Tutoring Systems. Academic, New York (1982)
Steichen, B., Ashman, H., Wade, V.: A comparative survey of personalised information retrieval and adaptive hypermedia techniques. Inf. Process. Manag. 48(4), 698–724 (2012). doi:10.1016/j.ipm.2011.12.004
Teevan, J., Dumais, S.T., Horvitz, E.: Personalizing search via automated analysis of interests and activities. In: Proceedings of the ACM SIGIR International Conference on Research and Development in Information Retrieval, pp. 449–456 (2005). doi:10.1145/1076034.1076111
Viriyakattiyaporn, P., Murphy, G.C.: Improving program navigation with an active help system. In: Proceedings of the IBM Centre for Advanced Studies Conference on Collaborative Research, pp. 27–41 (2010). doi:10.1145/1923947.1923951
Wahlster, W., Kobsa, A.: User models in dialog systems. In: Kobsa, A., Wahlster, W. (eds.) User Models in Dialog Systems, Symbolic Computation, Chap. 1, pp. 4–34. Springer, Berlin (1989). doi:10.1007/978-3-642-83230-7_1
White, R.W., Ruthven, I., Jose, J.M.: Finding relevant documents using top ranking sentences: an evaluation of two alternative schemes. In: Proceedings of the ACM SIGIR International Conference on Research and Development in Information Retrieval, pp. 57–64 (2002). doi:10.1145/564376.564389
Ye, Y.: Supporting component-based software development with active component repository systems. Ph.D. thesis, Department of Computer Science, University of Colorado, Boulder (2001)
Ye, Y., Fischer, G.: Supporting reuse by delivering task-relevant and personalized information. In: Proceedings of the ACM/IEEE International Conference on Software Engineering, pp. 513–523 (2002). doi:10.1145/581339.581402
Ye, Y., Yamamoto, Y., Nakakoji, K.: A socio-technical framework for supporting programmers. In: Proceedings of the European Software Engineering Conference/ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 351–360 (2007). doi:10.1145/1287624.1287674
Ye, Y., Yamamoto, Y., Nakakoji, K., Nishinaka, Y., Asada, M.: Searching the library and asking the peers: learning to use Java APIs on demand. In: Proceedings of the International Symposium on Principles and Practice of Programming in Java, pp. 41–50 (2007). doi:10.1145/1294325.1294332
Ying, A.T.T., Robillard, M.P.: The influence of the task on programmer behaviour. In: Proceedings of the IEEE International Conference on Program Comprehension, pp. 31–40 (2011). doi:10.1109/ICPC.2011.35
Zimmermann, T., WeiĂŸgerber, P.: Preprocessing CVS data for fine-grained analysis. In: Proceedings of the International Workshop on Mining Software Repositories, pp. 2–6 (2004)
Acknowledgments
We are grateful for the help from the following people and organizations: Christoph Treude helped us greatly improve the structure of the chapter since early on and provided us comments on a previous draft. Ben Steichen acted as a reviewer external to software engineering, provided us with his expert advice on user modeling, and gave us numerous pointers to work in the user modeling community. The editors of this book provided guidance and feedback throughout the whole writing process. Mik Kersten and Yunwen Ye kindly allowed us to reproduce figures from their respective theses. Finally, NSERC and McGill have provided financial support.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Ying, A.T.T., Robillard, M.P. (2014). Developer Profiles for Recommendation Systems. In: Robillard, M., Maalej, W., Walker, R., Zimmermann, T. (eds) Recommendation Systems in Software Engineering. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-45135-5_8
Download citation
DOI: https://doi.org/10.1007/978-3-642-45135-5_8
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-45134-8
Online ISBN: 978-3-642-45135-5
eBook Packages: Computer ScienceComputer Science (R0)