The Effect of Richer Visualizations on Code Comprehension

Researchers often introduce visual tools to programming environments in order to facilitate program comprehension, reduce navigation times, and help developers answer difficult questions. Syntax highlighting is the main visual lens through which developers perceive their code, and yet its effects and the effects of richer code presentations on code comprehension have not been evaluated systematically. We present a rigorous user study comparing mainstream syntax highlighting to two visually-enhanced presentations of code. Our results show that: (1) richer code visualizations reduce the time necessary to answer questions about code features, and (2) contrary to the subjective perception of developers, richer code visualizations do not lead to visual overload. Based on our results we outline practical recommendations for tool designers.

[1]  Robert DeLine,et al.  Code canvas: zooming towards better development environments , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[2]  Thomas Leich,et al.  Do background colors improve program comprehension in the #ifdef hell? , 2012, Empirical Software Engineering.

[3]  Rand Wilcox,et al.  Chapter 4 – Confidence Intervals in the One-Sample Case , 2017 .

[4]  G. Cumming The New Statistics: Why and How , 2013 .

[5]  Stéphane Conversy,et al.  Unifying Textual and Visual: A Theoretical Account of the Visual Perception of Programming Languages , 2014, Onward!.

[6]  Gail C. Murphy,et al.  Questions programmers ask during software evolution tasks , 2006, SIGSOFT '06/FSE-14.

[7]  Marian Petre,et al.  Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework , 1996, J. Vis. Lang. Comput..

[8]  Jorma Sajaniemi,et al.  An Experiment on the Effects of Program Code Highlighting on Visual Search for Local Patterns , 2006, PPIG.

[9]  Scott D. Fleming,et al.  The patchworks code editor: toward faster navigation with less code arranging and fewer navigation mistakes , 2014, CHI.

[10]  Brad A. Myers,et al.  Barista: An implementation framework for enabling new tools, interaction techniques and views in code editors , 2006, CHI.

[11]  Marian Petre,et al.  When Visual Programs are Harder to Read than Textual Programs , 1992 .

[12]  Pierre Dragicevic,et al.  Fair Statistical Communication in HCI , 2016 .

[13]  Joseph J. LaViola,et al.  Code bubbles: a working set-based interface for code understanding and maintenance , 2010, CHI.

[14]  Otmar Hilliges,et al.  An Interactive System for Data Structure Development , 2015, CHI.

[15]  Rob Miller,et al.  Addressing misconceptions about code with always-on programming visualizations , 2014, CHI.

[16]  Steven P. Reiss,et al.  Debugger Canvas: Industrial experience with the code bubbles paradigm , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[17]  Peter Müller,et al.  Customizing the visualization and interaction for embedded domain-specific languages in a structured editor , 2013, 2013 IEEE Symposium on Visual Languages and Human Centric Computing.

[18]  Jan Theeuwes,et al.  OpenSesame: An open-source, graphical experiment builder for the social sciences , 2011, Behavior Research Methods.

[19]  T. Dean Hendrix,et al.  The Effectiveness of Control Structure Diagrams in Source Code Comprehension Activities , 2002, IEEE Trans. Software Eng..

[20]  Peter Müller,et al.  Envision: A fast and flexible visual code editor with fluid interactions (Overview) , 2014, 2014 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[21]  Michele Lanza,et al.  Enabling program comprehension through a visual object-focused development environment , 2011, 2011 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).