Abstract
Traditional recommendation systems in software engineering (RSSE) analyze artifacts stored in large repositories to create relevant recommendations. More recently, researchers have started exploring interaction data as a new source of information—moving closer to the creation and usage of the artifacts rather than just looking at the outcome. In software engineering, interaction data refers to the data that captures and describes the interactions of developers with artifacts using tools. For instance, the interactions might be the edits or selections that affect specific source code entities or webpages (artifacts) using an integrated development environment or a web browser (tools). Interaction data allows to better investigate developers’ behaviors, their intentions, their information needs, and problems encountered, providing new possibilities for precise recommendations. While various recommendation systems that use interaction data have been proposed, there is a variety in the data being collected, the way the data is collected, and how the data is being processed and used. In this chapter, we survey and summarize the major approaches for RSSEs that create recommendations based on interaction data. Along with this, we propose a conceptual framework for collecting and processing interaction data for the purpose of recommendation.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Biehl, J.T., Czerwinski, M., Smith, G., Robertson, G.G.: FASTDash: A visual dashboard for fostering awareness in software teams. In: Proceedings of the ACM SIGCHI Conference on Human Factors in Computing Systems, pp. 1313–1322 (2007). doi:10.1145/1240624.1240823
Bruegge, B., Dutoit, A.: Object-Oriented Software Engineering, 3rd edn. Prentice Hall, Englewood Cliffs (2009)
DeLine, R., Czerwinski, M., Robertson, G.G.: Easing program comprehension by sharing navigation data. In: Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing, pp. 241–248 (2005). doi:10.1109/VLHCC.2005.32
Dourish, P., Bellotti, V.: Awareness and coordination in shared workspaces. In: Proceedings of the ACM Conference on Computer Supported Cooperative Work, pp. 107–114 (1992). doi:10.1145/143457.143468
Eick, S.G., Steffen, J.L., Sumner, E.E. Jr.: Seesoft: a tool for visualizing line oriented software statistics. IEEE Trans. Software Eng. 18(11), 957–968 (1992). doi:10.1109/32.177365
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
Google Official Blog: Personalized search for everyone. http://googleblog.blogspot.de/2009/12/personalized-search-for-everyone.html (2009). Retrieved 9 Oct 2013
Griss, M.L.: Software reuse: objects and frameworks are not enough. Technical Report HPL-95-03, Hewlett Packard Laboratories (1995)
Happel, H.J.: Social search and need-driven knowledge sharing in Wikis with Woogle. In: Proceedings of the International Symposium on Wikis and Open Collaboration, pp. 13:1–13:10 (2009). doi:10.1145/1641309.1641329
Happel, H.J., Maalej, W.: Potentials and challenges of recommendation systems for software development. In: Proceedings of the International Workshop on Recommendation Systems for Software Engineering, pp. 11–15 (2008). doi:10.1145/1454247.1454251
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)
Hill, W.C., Hollan, J.D., Wroblewski, D.A., McCandless, T.: Edit wear and read wear. In: Proceedings of the ACM SIGCHI Conference on Human Factors in Computing Systems, pp. 3–9 (1992). doi:10.1145/142750.142751
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
Lanza, M., Hattori, L., Guzzi, A.: Supporting collaboration awareness with real-time visualization of development activity. In: Proceedings of the European Conference on Software Maintenance and Reengineering, pp. 202–211 (2010). doi:10.1109/CSMR.2010.37
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
Maalej, W.: Task-first or context-first?: Tool integration revisited. In: Proceedings of the IEEE/ACM International Conference on Automated Software Engineering, pp. 344–355 (2009). doi:10.1109/ASE.2009.36
Maalej, W.: Intention-Based Integration of Software Engineering Tools. Verlag Dr. Hut, München (2010)
Maalej, W., Happel, H.J.: A lightweight approach for knowledge sharing in distributed software teams. In: Proceedings of the International Conference on Practical Aspects of Knowledge Management. Lecture Notes in Computer Science, vol. 5345, pp. 14–25 (2008). doi:10.1007/978-3-540-89447-6_4
Maalej, W., Happel, H.J.: From work to word: how do software developers describe their work? In: Proceedings of the International Working Conference on Mining Software Repositories, pp. 121–130 (2009). doi:10.1109/MSR.2009.5069490
Maalej, W., Happel, H.J.: Can development work describe itself? In: Proceedings of the International Working Conference on Mining Software Repositories, pp. 191–200 (2010). doi:10.1109/MSR.2010.5463344
Maalej, W., Pagano, D.: On the socialness of software. In: Proceedings of the IEEE International Conference on Dependable, Autonomic and Secure Computing, pp. 864–871 (2011). doi:10.1109/DASC.2011.146
Maalej, W., Sahm, A.: Assisting engineers in switching artifacts by using task semantic and interaction history. In: Proceedings of the International Workshop on Recommendation Systems for Software Engineering, pp. 59–63 (2010). doi:10.1145/1808920.1808935
Maalej, W., Happel, H.J., Rashid, A.: When users become collaborators: towards continuous and context-aware user input. In: Companion to the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 981–990 (2009). doi:10.1145/1639950.1640068
McKeen, J.D., Guimaraes, T.: Successful strategies for user participation in system development. J. Manag. Inf. Syst. 14(2), 133–150 (1997)
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)
Murphy-Hill, E., Jiresal, R., Murphy, G.C.: Improving software developers’ fluency by recommending development environment commands. In: Proceedings of the ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 42:1–42:11 (2012). doi:10.1145/2393596.2393645
Pagano, D., Juan, M.A., Bagnato, A., Roehm, T., Bruegge, B., Maalej, W.: FastFix: monitoring control for remote software maintenance. In: Proceedings of the ACM/IEEE International Conference on Software Engineering, pp. 1437–1438 (2012). doi:10.1109/ICSE.2012.6227076
Parnin, C., Rugaber, S.: Resumption strategies for interrupted programming tasks. In: Proceedings of the IEEE International Conference on Program Comprehenension, pp. 80–89 (2009). doi:10.1109/ICPC.2009.5090030
Rajlich, V.: Software Engineering: The Current Practice. CRC, West Palm Beach (2012)
Robbes, R., Lanza, M.: Characterizing and understanding development sessions. In: Proceedings of the IEEE International Conference on Program Comprehenension, pp. 155–166 (2007). doi:10.1109/ICPC.2007.12
Robbes, R., Lanza, M.: SpyWare: a change-aware development toolset. In: Proceedings of the ACM/IEEE International Conference on Software Engineering, pp. 847–850 (2008). doi:10.1145/1368088.1368219
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
Roehm, T., Maalej, W.: Automatically detecting developer activities and problems in software development work. In: Proceedings of the ACM/IEEE International Conference on Software Engineering (2012). doi:10.1109/ICSE.2012.6227104
Roehm, T., Gurbanova, N., Bruegge, B., Joubert, C., Maalej, W.: Monitoring user interactions for supporting failure reproduction. In: Proceedings of the IEEE International Conference on Program Comprehenension, pp. 73–82 (2013)
Sawadsky, N., Murphy, G.C., Jiresal, R.: Reverb: recommending code-related web pages. In: Proceedings of the ACM/IEEE International Conference on Software Engineering, pp. 812–821 (2013). doi:10.1109/ICSE.2013.6606627
Shen, J., Irvine, J., Bao, X., Goodman, M., Kolibaba, S., Tran, A., Carl, F., Kirschner, B., Stumpf, S., Dietterich, T.G.: Detecting and correcting user activity switches: algorithms and interfaces. In: Proceedings of the International Conference on Intelligent User Interfaces, pp. 117–126 (2009). doi:10.1145/1502650.1502670
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
Wexelblat, A., Maes, P.: Footprints: history-rich tools for information foraging. In: Proceedings of the ACM SIGCHI Conference on Human Factors in Computing Systems, pp. 270–277 (1999). doi:10.1145/302979.303060
Ying, A.T.T., Robillard, M.P.: The influence of the task on programmer behaviour. In: Proceedings of the IEEE International Conference on Program Comprehenension, pp. 31–40 (2011). doi:10.1109/ICPC.2011.35
Zou, L., Godfrey, M.W.: An industrial case study of Coman’s automated task detection algorithm: what worked, what didn’t, and why. In: Proceedings of the IEEE International Conference on Software Maintenance, pp. 6–14 (2012). doi:10.1109/ICSM.2012.6405247
Acknowledgments
We are grateful to Tobias Roehm, Zardosht Hodaie, and the reviewers for their constructive feedback on this chapter. We also thank Bernd Brügge and Bashar Nuseibeh for the comments on early versions of this work. The first author is supported by the EU research projects MUSES (grant FP7-318508).
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
Maalej, W., Fritz, T., Robbes, R. (2014). Collecting and Processing Interaction Data 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_7
Download citation
DOI: https://doi.org/10.1007/978-3-642-45135-5_7
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)