How Does Software Visualization Contribute to Software Comprehension? A Grounded Theory Approach

Despite their ability to synthesize vast amounts of information, software visualization tools are not widely adopted in the software engineering industry. In an effort to investigate the underlying reasons, we conducted a usability study to investigate the affordances of software visualization techniques for the maintenance of complex software systems. Expert programmers were asked to carry out programming tasks with or without using a software visualization tool while their screens and eye gaze patterns were recorded. Statistical analysis of task performance data showed that participants who used the software visualization tool outperformed the control group in terms of task completion time and accuracy. However, quantitative analysis of performance measures did not reveal in what ways software visualizations contributed to this improvement. In an effort to identify the cognitive strategies that underlie this quantitative performance difference, process models grounded in qualitative analysis of eye-tracking data were constructed. The process models indicated that software visualizations guided the subjects in the experiment group toward following specific software comprehension strategies, which account for the difference observed in task performance data.

[1]  Rainer Koschke Software Visualization for Reverse Engineering , 2001, Software Visualization.

[2]  Susan Elliott Sim,et al.  A structured demonstration of program comprehension tools , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[3]  Alan J. Dix,et al.  Forecasting software visualizations: an explorative study , 2009, BCS HCI.

[4]  Calum A. M. Grant Software visualization in Prolog , 1999 .

[5]  Marian Petre,et al.  Mental imagery and software visualization in high-performance software development teams , 2010, J. Vis. Lang. Comput..

[6]  S. Diehl,et al.  Software visualization , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[7]  Hausi A. Müller,et al.  How do program understanding tools affect how programmers understand programs? , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[8]  Andrian Marcus,et al.  A task oriented view of software visualization , 2002, Proceedings First International Workshop on Visualizing Software for Understanding and Analysis.

[9]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

[10]  Martin Salois,et al.  Visualization Techniques for Program Comprehension - A Literature Review , 2006, SoMeT.

[11]  Julie Jack The Role of Comprehension , 1994 .

[12]  Rory V. O'Connor,et al.  Using grounded theory to understand software process improvement: A study of Irish software product companies , 2007, Inf. Softw. Technol..

[13]  Kate Ehrlich,et al.  Knowledge and processes in the comprehension of computer programs. , 1988 .

[14]  A. Strauss,et al.  The discovery of grounded theory: strategies for qualitative research aldine de gruyter , 1968 .

[15]  Blaine A. Price,et al.  A Principled Taxonomy of Software Visualization , 1993, J. Vis. Lang. Comput..

[16]  Gavriel Salvendy,et al.  Content Preparation and Management for Web Design: Eliciting, Structuring, Searching, and Displaying Information , 2002, Int. J. Hum. Comput. Interact..

[17]  Scott P. Robertson,et al.  Expert problem solving strategies for program comprehension , 1991, CHI.

[18]  Elliot Soloway,et al.  Mental models and software maintenance , 1986, J. Syst. Softw..

[19]  T. Dean Hendrix,et al.  Software visualizations for improving and measuring the comprehensibility of source code , 2006, Sci. Comput. Program..

[20]  Lucian Voinea,et al.  Visual Analytics in Software Maintenance: Challenges and Opportunities , 2010, EuroVAST@EuroVis.

[21]  Anneliese Amschler Andrews,et al.  Identification of Dynamic Comprehension Processes During Large Scale Maintenance , 1996, IEEE Trans. Software Eng..

[22]  Amela Karahasanovic,et al.  Comprehension strategies and difficulties in maintaining object-oriented systems: An explorative study , 2007, J. Syst. Softw..

[23]  Iris Vessey,et al.  Research Report - The Relevance of Application Domain Knowledge: The Case of Computer Program Comprehension , 1995, Inf. Syst. Res..

[24]  Susan Wiedenbeck,et al.  An exploratory study of program comprehension strategies of procedural and object-oriented programmers , 2001, Int. J. Hum. Comput. Stud..

[25]  Susan Wiedenbeck,et al.  What do novices learn during program comprehension? , 1991, Int. J. Hum. Comput. Interact..

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

[27]  Jonathan I. Maletic,et al.  On using eye tracking in empirical assessment of software visualizations , 2007, WEASELTech '07.

[28]  J. F. Groote,et al.  Lock-free parallel and concurrent garbage collection by mark&sweep , 2007, Sci. Comput. Program..

[29]  F. O. Huck,et al.  Visual Information Processing , 1992 .

[30]  Marc Roper,et al.  The role of comprehension in software inspection , 2000, J. Syst. Softw..

[31]  Markku Tukiainen,et al.  An eye-tracking methodology for characterizing program comprehension processes , 2006, ETRA.

[32]  Dawson R. Engler,et al.  A few billion lines of code later , 2010, Commun. ACM.

[33]  Michele Lanza,et al.  CodeCity: 3D visualization of large-scale software , 2008, ICSE Companion '08.

[34]  Gavriel Salvendy,et al.  A Visual Information Processing Model to Characterize Interactive Visualization Environments , 2011, Int. J. Hum. Comput. Interact..

[35]  Hausi A. Müller,et al.  How do program understanding tools affect how programmers understand programs? , 2000, Sci. Comput. Program..