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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Baddeley, A.: Working Memory: Looking Back and Looking Forward. Neuroscience 4(10), 829–839 (2003)
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)
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)
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)
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)
DeLine, R., Czerwinski, M., Robertson, G.: Easing Program Comprehension by Sharing Navigation Data. In: Proc. VLHCC 2005, pp. 241–248 (2005)
DeLine, R., Venolia, G., Rowan, K.: Software development with code maps. ACM Queue 8(7), 10–19
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)
Fjeldstad, R., Hamlen, W.: Application program maintenance-report to our respondents. Tutorial on Software Maintenance, 13–27 (1983)
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)
Kelley, J.F.: An Iterative Design Methodology for User-friendly Natural Language Office Information Applications. ACM TOIS 2(1), 26–41 (1984)
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)
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)
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)
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)
Letovsky, S.: Cognitive Processes in Program Comprehension. In: Proc. ESP 1986, pp. 58–79 (1986)
Mayrhauser, A., Vans, A.M.: Comprehension “Processes during Large Scale Maintenance. In: 16th Int’l Conf. on Software Eng., pp. 39–48 (1994)
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)
Pennington, N.: Stimulus Structures and Mental Representations in Expert Comprehension of Computer Programs. Cognitive Psychology, 295–341 (1987)
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)
Reiss, S.: The Paradox of Software Visualization. In: Int’l Workshop on Visualizing Software for Understanding and Analysis (VISSOFT), pp. 59–63 (2005)
Safer, I.: Comparing Episodic and Semantic Interfaces for Task Boundary Identification, M.Sc. Thesis (2007)
Shaft, T.M., Vessey, I.: The Relevance of Application Domain Knowledge: Characterizing the Computer Program Comprehension Process. JMIS 15(1), 51–78 (1998)
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)
Singer, R., Elves, Storey, M.-A.D.: NavTracks: Supporting Navigation in Software Maintenance. In: Proc. ICSM 2005, pp. 325–334 (2005)
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)
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)
Storey, M.-A.D.: Theories, Methods and Tools in Program Comprehension: Past, Present and Future. In: Proc. ICPC 2005, pp. 181–191 (2005)
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)
Zimmermann, T., Weisgerber, P., Diehl, S., Zeller, A.: Mining Version Histories to Guide Software Changes. In: Proc. ICSE 2004, pp. 563–572 (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)