Abstract
With workspaces frequently comprising hundreds, or even thousands, of artifacts, developers spend a considerable amount of time navigating the source code or searching for a specific source code artifact they need to work. With the aim of helping developers during their work, the authors propose a context-based approach to search, recommend and browse source code in the workspace. The source code structure stored in the workspace of the developer is represented in a knowledge base, and a context model represents the source code elements that are more relevant for the developer in a specific moment. These structures are then used to improve the retrieval, ranking and navigation of source code elements. The experiments conducted with developers showed that the use of contextual information is of valuable importance to help identify the most relevant source code elements for the developer at each moment.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
References
Antunes, B., Cordeiro, J., Gomes, P.: An approach to context-based recommendation in software development. In: Proceedings of the 6th ACM Conference on Recommender Systems (RecSys 2012), pp. 171–178. ACM Press, New York, NY, USA (2012a)
Antunes, B., Cordeiro, J., Gomes, P.: Context-based search in software development. In: Proceedings of the 7th Conference on Prestigious Applications of Intelligent Systems (PAIS 2012) of the 20th European Conference on Artificial Intelligence (ECAI 2012), pp. 937–942. IOS Press (2012b)
Antunes, B., Cordeiro, J., Gomes, P.: An approach to context modeling in software development. In: Cordeiro J., Hammoudi S., Sinderen M. (eds.) Software and Data Technologies, Communications in Computer and Information Science, vol. 411, pp. 188–202. Springer, Berlin (2013)
Bragdon, A., Zeleznik, R., Reiss, S.P., Karumuri, S., Cheung, W., Kaplan, J., Coleman, C., Adeputra, F., LaViola Jr., J.J.: Code bubbles: a working set-based interface for code understanding and maintenance. In: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, CHI '10, pp. 2503–2512. ACM, New York, NY, USA (2010)
Cubranic, D., Murphy, G.C., Singer, J., Booth, K.S.: Hipikat: a project memory for software development. IEEE Trans. Softw. Eng. 31(6), 446–465 (2005)
DeLine, R., Khella, A., Czerwinski, M., Robertson, G.: Towards understanding programs through wear-based filtering. In: Proceedings of the ACM Symposium on Software Visualization (SoftVis '05), pp. 183–192. ACM, New York, NY, USA (2005)
DeLine, R., Venolia, G., Rowan, K.: Software development with code maps. Commun. ACM 53(8), 48–54 (2010)
Doan, B.L., Brézillon, P.: How the notion of context can be useful to search tools. In: Proceedings of the World Conference E-learn 2004. Washington, DC, USA (2004)
Gay, G., Haiduc, S., Marcus, A., Menzies, T.: On the use of relevance feedback in IR-based concept location. In: Proceedings of the IEEE International Conference on Software Maintenance (ICSM 2009), pp. 351–360 (2009)
Harris, Z.: Distributional structure. Word 10(23), 146–162 (1954)
Jones, G.J.F., Brown, P.J.: The role of context in information retrieval. In: Proceedings of the ACM SIGIR Workshop on Information Retrieval in Context. Sheffield, UK (2004)
Karrer, T., Krämer, J.P., Diehl, J., Hartmann, B., Borchers, J.: Stacksplorer: call graph navigation helps increasing code maintenance efficiency. In: Proceedings of the ACM UIST 2011 Symposium on User Interface Software and Technology (2011)
Kersten, M., Murphy, G.C.: Using task context to improve programmer productivity. In: Proceedings of the 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering (SIGSOFT '06/FSE-14), pp. 1–11. ACM, New York, NY, USA (2006)
Ko, A.J., Myers, B.A., Coblenz, M.J., Aung, H.H.: An exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks. IEEE Trans. Softw. Eng. 32(12), 971–987 (2006)
LaToza, T.D., Myers, B.A.: Visualizing call graphs. In: VL/HCC, pp. 117–124 (2011)
Lukins, S.K., Kraft, N.A., Etzkorn, L.H.: Source code retrieval for bug localization using latent Dirichlet allocation. In: Proceedings of the 15th Working Conference on Reverse Engineering (WCRE '08), pp. 155–164 (2008)
Marcus, A., Sergeyev, A., Rajlich, V., Maletic, J.I.: An information retrieval approach to concept location in source code. In: Proceedings of the 11th Working Conference on Reverse Engineering (WCRE'04), pp. 214–223 (2004)
McCarey, F., Cinnéide, M.O., Kushmerick, N.: Rascal: a recommender agent for agile reuse. Artif. Intell. Rev. 24(3–4), 253–276 (2005)
Murphy, G.C., Kersten, M., Findlater, L.: How are Java software developers using the Elipse IDE? IEEE Softw. 23(4), 76–83 (2006)
Parnin, C., Gorg, C.: Building usage contexts during program comprehension. In: Proceedings of the 14th IEEE International Conference on Program Comprehension (ICPC '06), pp. 13–22. IEEE Computer Society, Washington, DC, USA (2006)
Piorkowski, D., Fleming, S., Scaffidi, C., Bogart, C., Burnett, M., John, B., Bellamy, R., Swart, C.: Reactive information foraging: an empirical investigation of theory-based recommender systems for programmers. In: Proceedings of the ACM Annual Conference on Human Factors in Computing Systems (CHI '12), pp. 1471–1480. ACM, New York, NY, USA (2012)
Robillard, M.P.: Topology analysis of software dependencies. ACM Trans. Softw. Eng. Methodol. 17(4), 18:1–18:36 (2008)
Salton, G., Buckley, C.: Term-weighting approaches in automatic text retrieval. Inf. Process. Manag. 24(5), 513–523 (1988)
Salton, G., Wong, A., Yang, C.S.: A vector space model for automatic indexing. Commun. ACM 18(11), 613–620 (1975)
Saul, Z.M., Filkov, V., Devanbu, P., Bird, C.: Recommending random walks. In: Proceedings of the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC-FSE '07), pp. 15–24. ACM, New York, NY, USA (2007)
Shao, P., Smith, R.K.: Feature location by IR modules and call graph. In: Proceedings of the 47th Annual Southeast Regional Conference (ACM-SE 47), pp. 70:1–70:4. ACM, New York, NY, USA (2009)
Singer, J., Elves, R., Storey, M.A.: NavTracks: supporting navigation in software maintenance. In: Proceedings of the 21st IEEE International Conference on Software Maintenance, pp. 325–334. IEEE, Budapest, Hungary (2005)
Sinha, V., Karger, D., Miller, R.: Relo: helping users manage context during interactive exploratory visualization of large codebases. In: Proceedings of the 2005 OOPSLA Workshop on Eclipse Technology eXchange, Eclipse '05, pp. 21–25. ACM, New York, NY, USA (2005)
Starke, J., Luce, C., Sillito, J.: Searching and skimming: an exploratory study. In: Proceedings of the IEEE International Conference on Software Maintenance (ICSM 2009), pp. 157–166. IEEE, Edmonton, Alberta, Canada (2009)
Storey, M.A.D., Muller, H.A.: Manipulating and documenting software structures using shrimp views. In: Proceedings of the International Conference on Software Maintenance, ICSM '95, pp. 275–284. IEEE Computer Society, Washington, DC, USA (1995)
Ying, A.T.T., Murphy, G.C., Ng, R., Chu-Carroll, M.C.: Predicting source code changes by mining change history. IEEE Trans. Softw. Eng. 30(9), 574–586 (2004)
Zimmermann, T., Zeller, A., Weissgerber, P., Diehl, S.: Mining version histories to guide software changes. IEEE Trans. Softw. Eng. 31(6), 429–445 (2005)
Zuniga, G.L.: Ontology: its transformation from philosophy to information systems. In: Proceedings of the International Conference on Formal Ontology in Information Systems, pp. 187–197. ACM Press (2001)
Acknowledgement
Bruno Antunes was supported by a FCT (Fundaç˜ao para a Ciência e a Tecnologia) scholarship grant SFRH/BD/43336/2008, co-funded by ESF (European Social Fund).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer Science+Business Media New York
About this chapter
Cite this chapter
Antunes, B., Furtado, B., Gomes, P. (2014). Context-Based Search, Recommendation and Browsing in Software Development. In: Brézillon, P., Gonzalez, A. (eds) Context in Computing. Springer, New York, NY. https://doi.org/10.1007/978-1-4939-1887-4_4
Download citation
DOI: https://doi.org/10.1007/978-1-4939-1887-4_4
Published:
Publisher Name: Springer, New York, NY
Print ISBN: 978-1-4939-1886-7
Online ISBN: 978-1-4939-1887-4
eBook Packages: Computer ScienceComputer Science (R0)