Skip to main content

A Study on Guiding Programmers’ Code Navigation with a Graphical Code Recommender

  • Chapter
Software Engineering Research,Management and Applications 2011

Part of the book series: Studies in Computational Intelligence ((SCI,volume 377))

Abstract

While performing an evolution task, programmers spend significant time trying to understand a code base. To facilitate programmers’ comprehension of code, researchers have developed software visualization tools. However, those tools have not predicted the information that programmers seek during their program comprehension activities. To responsively provide informative diagrams in a timely manner, we suggest a graphical code recommender and conduct an iterative Wizard of Oz study in order to examine when and what diagrammatic contents should appear in a graphical view to guide a programmer in exploring source code. We found that programmers positively evaluate a graphical code recommender that changes in response to their code navigation. They favored a graphical view that displays the source locations frequently visited by other programmers during the same task. They commented that the graphical code recommender helped in particular when they were uncertain about where to look while exploring the code base.

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Baddeley, A.: Working Memory: Looking Back and Looking Forward. Neuroscience 4(10), 829–839 (2003)

    Google Scholar 

  2. 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: Proc. CHI 2010, pp. 2503–2512. ACM, New York (2010)

    Google Scholar 

  3. Cherubini, M., Venolia, G., DeLine, R., Ko, A.J.: Let’s Go to the Whiteboard: How and Why Software Developers Use Drawings. In: Proc. CHI 2007, pp. 557–566 (2007)

    Google Scholar 

  4. Coblenz, M.J.: JASPER: facilitating software maintenance activities with explicit task representations, TR CMU-CS-06-150, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA (2006)

    Google Scholar 

  5. Cox, A., Fisher, M., Muzzerall, J.: User Perspectives on a Visual Aid to Program Comprehension. In: Int’l Workshop on Visualizing Software for Understanding and Analysis(VISSOFT), pp. 70–75 (2005)

    Google Scholar 

  6. DeLine, R., Czerwinski, M., Robertson, G.: Easing Program Comprehension by Sharing Navigation Data. In: Proc. VLHCC 2005, pp. 241–248 (2005)

    Google Scholar 

  7. DeLine, R., Venolia, G., Rowan, K.: Software development with code maps. ACM Queue 8(7), 10–19

    Google Scholar 

  8. Dow, S., MacIntyre, B., Lee, J., Oezbek, C., Bolter, J.D., Gandy, M.: Wizard of Oz Support throughout an Iterative Design Process. IEEE Pervasive Computing, 18–26 (2005)

    Google Scholar 

  9. Fjeldstad, R., Hamlen, W.: Application program maintenance-report to our respondents. Tutorial on Software Maintenance, 13–27 (1983)

    Google Scholar 

  10. Hendrix, T., Cross II, J., Maghsoodloo, S., McKinney, M.: Do Visualizations Improve Program Comprehensibility? Experiments with Control Structure Diagrams for Java. In: 31st SIGCSE Technical Symp. on Computer Science Education, pp. 382–386 (2000)

    Google Scholar 

  11. Kelley, J.F.: An Iterative Design Methodology for User-friendly Natural Language Office Information Applications. ACM TOIS 2(1), 26–41 (1984)

    Article  MathSciNet  Google Scholar 

  12. 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, Portland, Oregon, USA, November 5-11 (2006)

    Google Scholar 

  13. Ko, A.J., Aung, H., Myers, B.A.: Eliciting Design Requirements for Maintenance-Oriented IDEs: A Detailed Study of Corrective and Perfective Maintenance Tasks. In: Proc. ICSE 2005, pp. 126–135 (2005)

    Google Scholar 

  14. Ko, A.J., Myers, B.A., Coblenz, M.J., Aung, H.: An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks. IEEE TSE 32(12), 971–987 (2006)

    Google Scholar 

  15. Lee, S., Murphy, G.C., Fritz, T., Allen, M.: How Can Diagramming Tools Help Support Programming Activities. In: Proc. VLHCC 2008, pp. 246–249 (2008)

    Google Scholar 

  16. Letovsky, S.: Cognitive Processes in Program Comprehension. In: Proc. ESP 1986, pp. 58–79 (1986)

    Google Scholar 

  17. Mayrhauser, A., Vans, A.M.: Comprehension “Processes during Large Scale Maintenance. In: 16th Int’l Conf. on Software Eng., pp. 39–48 (1994)

    Google Scholar 

  18. Miller, G.A.: The magical number seven plus or minus two: some limits on our capacity for processing information. Psychological Review 63(2), 81–97 (1956)

    Article  Google Scholar 

  19. Pennington, N.: Stimulus Structures and Mental Representations in Expert Comprehension of Computer Programs. Cognitive Psychology, 295–341 (1987)

    Google Scholar 

  20. Petre, M., Blackwell, A.F., Green, T.R.G.: Cognitive Questions in Software Visualization. In: Software Visualization: Programming as a Multi-Media Experience. MIT Press, Cambridge (1997)

    Google Scholar 

  21. Reiss, S.: The Paradox of Software Visualization. In: Int’l Workshop on Visualizing Software for Understanding and Analysis (VISSOFT), pp. 59–63 (2005)

    Google Scholar 

  22. Safer, I.: Comparing Episodic and Semantic Interfaces for Task Boundary Identification, M.Sc. Thesis (2007)

    Google Scholar 

  23. Shaft, T.M., Vessey, I.: The Relevance of Application Domain Knowledge: Characterizing the Computer Program Comprehension Process. JMIS 15(1), 51–78 (1998)

    Google Scholar 

  24. Sillito, G.C., Murphy, G.C., De Volder, K.: Questions programmers ask during software evolution tasks. In: Proceedings of the 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering, Portland, Oregon, USA, November 5-11 (2006)

    Google Scholar 

  25. Singer, R., Elves, Storey, M.-A.D.: NavTracks: Supporting Navigation in Software Maintenance. In: Proc. ICSM 2005, pp. 325–334 (2005)

    Google Scholar 

  26. Sim, S.E., Holt, R.C.: The Ramp-Up Problem in Software Projects: A Case Study of How Software Immigrants Naturalize. In: 20th Int’l Conf. on Software Eng. (ICSE), pp. 361–370 (April 1998)

    Google Scholar 

  27. Sinha, V., Karger, D., Miller, R.: Relo: Helping Users Manage Context during Interactive Exploratory Visualization of Large Codebases. In: Proc. VLHCC 2006, pp. 187–194 (2006)

    Google Scholar 

  28. Storey, M.-A.D.: Theories, Methods and Tools in Program Comprehension: Past, Present and Future. In: Proc. ICPC 2005, pp. 181–191 (2005)

    Google Scholar 

  29. Storey, M.-A.D., Fracchia, F., Müllecr, H.: Cognitive Design Elements to Support the Construction of a Mental Model during Software Visualization. In: Proc. IWPC 1997, pp. 17–28 (1997)

    Google Scholar 

  30. Zimmermann, T., Weisgerber, P., Diehl, S., Zeller, A.: Mining Version Histories to Guide Software Changes. In: Proc. ICSE 2004, pp. 563–572 (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Lee, S., Kang, S. (2012). A Study on Guiding Programmers’ Code Navigation with a Graphical Code Recommender. In: Lee, R. (eds) Software Engineering Research,Management and Applications 2011. Studies in Computational Intelligence, vol 377. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-23202-2_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-23202-2_5

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-23201-5

  • Online ISBN: 978-3-642-23202-2

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics