Skip to main content

Context-Based Search, Recommendation and Browsing in Software Development

  • Chapter
  • First Online:
Context in Computing

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 169.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    http://eclipse.org

  2. 2.

    http://sdic.dei.uc.pt

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)

    Google Scholar 

  • 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)

    Google Scholar 

  • 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)

    Google Scholar 

  • 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)

    Google Scholar 

  • 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)

    Article  Google Scholar 

  • 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)

    Google Scholar 

  • DeLine, R., Venolia, G., Rowan, K.: Software development with code maps. Commun. ACM 53(8), 48–54 (2010)

    Article  Google Scholar 

  • 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)

    Google Scholar 

  • 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)

    Google Scholar 

  • Harris, Z.: Distributional structure. Word 10(23), 146–162 (1954)

    Google Scholar 

  • 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)

    Google Scholar 

  • 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)

    Google Scholar 

  • 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)

    Google Scholar 

  • 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)

    Article  Google Scholar 

  • LaToza, T.D., Myers, B.A.: Visualizing call graphs. In: VL/HCC, pp. 117–124 (2011)

    Google Scholar 

  • 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)

    Google Scholar 

  • 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)

    Google Scholar 

  • McCarey, F., Cinnéide, M.O., Kushmerick, N.: Rascal: a recommender agent for agile reuse. Artif. Intell. Rev. 24(3–4), 253–276 (2005)

    Article  Google Scholar 

  • Murphy, G.C., Kersten, M., Findlater, L.: How are Java software developers using the Elipse IDE? IEEE Softw. 23(4), 76–83 (2006)

    Article  Google Scholar 

  • 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)

    Google Scholar 

  • 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)

    Google Scholar 

  • Robillard, M.P.: Topology analysis of software dependencies. ACM Trans. Softw. Eng. Methodol. 17(4), 18:1–18:36 (2008)

    Article  Google Scholar 

  • Salton, G., Buckley, C.: Term-weighting approaches in automatic text retrieval. Inf. Process. Manag. 24(5), 513–523 (1988)

    Article  Google Scholar 

  • Salton, G., Wong, A., Yang, C.S.: A vector space model for automatic indexing. Commun. ACM 18(11), 613–620 (1975)

    Article  MATH  Google Scholar 

  • 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)

    Google Scholar 

  • 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)

    Google Scholar 

  • 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)

    Google Scholar 

  • 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)

    Google Scholar 

  • 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)

    Google Scholar 

  • 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)

    Google Scholar 

  • 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)

    Article  Google Scholar 

  • Zimmermann, T., Zeller, A., Weissgerber, P., Diehl, S.: Mining version histories to guide software changes. IEEE Trans. Softw. Eng. 31(6), 429–445 (2005)

    Article  Google Scholar 

  • 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)

    Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Bruno Antunes .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics