ABSTRACT
Increasingly, people are faced with navigating large information spaces, and making such navigation efficient is of paramount concern. In this paper, we focus on the problems programmers face in navigating large code bases, and propose a novel code editor, Patchworks, that addresses the problems. In particular, Patchworks leverages two new interface idioms - the patch grid and the ribbon - to help programmers navigate more quickly, make fewer navigation errors, and spend less time arranging their code. To validate Patchworks, we conducted a user study that compared Patchworks to two existing code editors: the traditional file-based editor, Eclipse, and the newer canvas-based editor, Code Bubbles. Our results showed (1) that programmers using Patchworks were able to navigate significantly faster than with Eclipse (and comparably with Code Bubbles), (2) that programmers using Patchworks made significantly fewer navigation errors than with Code Bubbles or Eclipse, and (3) that programmers using Patchworks spent significantly less time arranging their code than with Code Bubbles (and comparably with Eclipse).
Supplemental Material
- Bragdon, A. Creating simultaneous views of source code in contemporary IDEs using tab panes and MDI child windows: A pilot study. Tech. Rep. CS-09-09, Brown Univ., 2009.Google Scholar
- Bragdon, A., Reiss, S. P., Zeleznik, R., Karumuri, S., Cheung, W., Kaplan, J., Coleman, C., Adeputra, F., and LaViola, Jr., J. J. Code Bubbles: Rethinking the user interface paradigm of integrated development environments. In Proc. 32nd ACM/IEEE Int'l Conf. Software Eng., ICSE '10 (2010), 455--464. Google ScholarDigital Library
- Bragdon, A., Zeleznik, R., Reiss, S. P., Karumuri, S., Cheung, W., Kaplan, J., Coleman, C., Adeputra, F., and LaViola, Jr., J. J. Code Bubbles: A working set-based interface for code understanding and maintenance. In Proc. CHI '10 (2010), 2503--2512. Google ScholarDigital Library
- Coblenz, M. J., Ko, A. J., and Myers, B. A. JASPER: An Eclipse plug-in to facilitate software maintenance tasks. In Proc. 2006 OOPSLA Workshop Eclipse Technology eXchange, ETX '06, ACM (2006), 65--69. Google ScholarDigital Library
- Cockburn, A., and McKenzie, B. Evaluating the effectiveness of spatial memory in 2D and 3D physical and virtual environments. In Proc. CHI '02 (2002), 203--210. Google ScholarDigital Library
- Darken, R. P., and Sibert, J. L. Wayfinding strategies and behaviors in large virtual worlds. In Proc. CHI '96 (1996), 142--149. Google ScholarDigital Library
- DeLine, R., Czerwinski, M., Meyers, B., Venolia, G., Drucker, S., and Robertson, G. Code Thumbnails: Using spatial memory to navigate source code. In Proc. IEEE Symp. Visual Languages and Human-Centric Computing, VL/HCC '06 (2006), 11--18. Google ScholarDigital Library
- DeLine, R., Khella, A., Czerwinski, M., and Robertson, G. Towards understanding programs through wear-based filtering. In Proc. 2005 ACM Symp. Software Visualization, SOFTVIS '05 (2005), 183--192. Google ScholarDigital Library
- DeLine, R., and Rowan, K. Code Canvas: Zooming towards better development environments. In Proc. 32nd ACM/IEEE Int'l Conf. Software Eng., ICSE '10 (2010), 207--210. Google ScholarDigital Library
- Ehret, B. D. Learning where to look: Location learning in graphical user interfaces. In Proc. CHI '02 (2002), 211--218. Google ScholarDigital Library
- Evans, B., and Card, S. Augmented information assimilation: Social and algorithmic Web aids for the information long tail. In Proc. CHI '08 (2008), 989--998. Google ScholarDigital Library
- Fitchett, S., Cockburn, A., and Gutwin, C. Improving navigation-based 'le retrieval. In Proc. CHI '13 (2013), 2329--2338. Google ScholarDigital Library
- Grigoreanu, V., Burnett, M., Wiedenbeck, S., Cao, J., Rector, K., and Kwan, I. End-user debugging strategies: A sensemaking perspective. ACM Trans. Comput.-Hum. Interact. 19, 1 (May 2012), 5:1--5:28. Google ScholarDigital Library
- Hick, W. E. On the rate of gain of information. Quarterly Journal of Experimental Psychology 4, 1 (1952), 11--26.Google ScholarCross Ref
- Hill, E., Pollock, L., and Vijay-Shanker, K. Exploring the neighborhood with Dora to expedite software maintenance. In Proc. 22nd IEEE/ACM Int. Conf. Automated Software Eng., ASE '07 (2007), 14--23. Google ScholarDigital Library
- Jones, W. P., and Dumais, S. T. The spatial metaphor for user interfaces: Experimental tests of reference by location versus name. ACM Trans. Inf. Syst. 4, 1 (Jan. 1986), 42--63. Google ScholarDigital Library
- Kittur, A., Peters, A. M., Diriye, A., Telang, T., and Bove, M. R. Costs and benefits of structured information foraging. In Proc. CHI '13 (2013), 2989--2998. Google ScholarDigital Library
- Ko, A. J., Aung, H., and Myers, B. A. Eliciting design requirements for maintenance-oriented IDEs: A detailed study of corrective and perfective maintenance tasks. In Proc. 27th Int'l Conf. Software Engineering, ICSE '05 (2005), 126--135. Google ScholarDigital Library
- Ko, A. J., Myers, B. A., Coblenz, M. J., and 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 (Dec. 2006), 971--987. Google ScholarDigital Library
- Krämer, J.-P., Kurz, J., Karrer, T., and Borchers, J. Blaze: Supporting two-phased call graph navigation in source code. In Ext. Abstracts CHI '12 (2012), 2195--2200. Google ScholarDigital Library
- Lawrance, J., Bellamy, R., and Burnett, M. Scents in programs: Does information foraging theory apply to program maintenance' In Proc. IEEE Symp. Visual Languages and Human-Centric Computing, VL/HCC '07 (2007), 15--22. Google ScholarDigital Library
- Lawrance, J., Burnett, M., Bellamy, R., Bogart, C., and Swart, C. Reactive information foraging for evolving goals. In Proc. CHI '10 (2010), 25--34. Google ScholarDigital Library
- Miller, G. A. The magical number seven, plus or minus two: Some limits on our capacity for processing information. Psychol. Rev. 63, 2 (1956), 81--97.Google ScholarCross Ref
- O'Hara, K., and Sellen, A. A comparison of reading paper and on-line documents. In Proc. CHI '97 (1997), 335--342. Google ScholarDigital Library
- O'Hara, K., Sellen, A., and Bentley, R. Supporting memory for spatial location while reading from small displays. In Ext. Abstracts CHI '99 (1999), 220--221. Google ScholarDigital Library
- Piorkowski, D., Fleming, S., Scaffidi, C., Bogart, C., Burnett, M., John, B., Bellamy, R., and Swart, C. Reactive information foraging: An empirical investigation of theory-based recommender systems for programmers. In Proc. CHI '12 (2012), 1471--1480. Google ScholarDigital Library
- Piorkowski, D., Fleming, S. D., Scaffidi, C., John, L., Bogart, C., John, B. E., Burnett, M., and Bellamy, R. Modeling programmer navigation: A head-to-head empirical evaluation of predictive models. In Proc. IEEE Symp. Visual Languages and Human-Centric Computing, VL/HCC '11 (2011), 109--116.Google ScholarCross Ref
- Piorkowski, D. J., Fleming, S. D., Kwan, I., Burnett, M. M., Scaffidi, C., Bellamy, R. K., and Jordahl, J. The whats and hows of programmers' foraging diets. In Proc. CHI '13 (2013), 3063--3072. Google ScholarDigital Library
- Plumlee, M. D., and Ware, C. Zooming versus multiple window interfaces: Cognitive costs of visual comparisons. ACM Trans. Comput.-Hum. Interact. 13, 2 (June 2006), 179--209. Google ScholarDigital Library
- Smith, R. B., Maloney, J., and Ungar, D. The Self-4.0 user interface: Manifesting a system-wide vision of concreteness, uniformity, and flexibility. In Proc. 10th Annu. Conf. Object-Oriented Programming Syst., Languages, and Applicat., OOPSLA '95 (1995), 47--60. Google ScholarDigital Library
- Storey, M.-A., Cheng, L.-T., Bull, I., and Rigby, P. Shared waypoints and social tagging to support collaboration in software development. In Proc. Conf. Computer Supported Cooperative Work, CSCW '06, ACM (2006), 195--198. Google ScholarDigital Library
- Warr, F. W., and Robillard, M. P. Suade: Topology-based searches for software investigation. In Proc. 29th Int'l Conf. Software Eng., ICSE '07 (2007), 780--783. Google ScholarDigital Library
Index Terms
- The patchworks code editor: toward faster navigation with less code arranging and fewer navigation mistakes
Recommendations
Toward Principles for the Design of Navigation Affordances in Code Editors: An Empirical Investigation
CHI '17: Proceedings of the 2017 CHI Conference on Human Factors in Computing SystemsDesign principles are a key tool for creators of interactive systems; however, a cohesive set of principles has yet to emerge for the design of code editors. In this paper, we conducted a between-subjects empirical study comparing the navigation ...
Developers' code context models for change tasks
FSE 2014: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software EngineeringTo complete a change task, software developers spend a substantial amount of time navigating code to understand the relevant parts. During this investigation phase, they implicitly build context models of the elements and relations that are relevant to ...
Recognizing relevant code elements during change task navigation
ICSE '16: Proceedings of the 38th International Conference on Software Engineering CompanionDevelopers spend a significant amount of their time exploring source code. Yet, little is known about the way developers break down their code exploration or the fine-grained navigation for change tasks within methods. The objective of our research is ...
Comments