Enabling program comprehension through a visual object-focused development environment

Integrated development environments (IDEs) include many tools that provide the means to construct programs. Coincidentally, the very same IDEs are a primary vehicle for program comprehension. We claim that IDEs may be an impediment for program comprehension because they treat software elements as text, which may be counterproductive in the context of program understanding-where abstracting from the source text to the level of structural entities and relationships is the key. We are currently building Gaucho, a visual object-focused environment that allows developers to write programs by creating and manipulating lightweight and intuitive depictions of object-oriented constructs. The research question we investigate here is how such an environment compares with traditional IDEs when it comes to performing program comprehension tasks. To answer our question, we conducted a preliminary controlled experiment with eight subjects, comparing Gaucho against a traditional IDE. We found that Gaucho outperforms the IDE regarding the correctness of the tasks, while it is slower with respect to the completion time. Our preliminary results suggest that alternative-visual-IDEs may be superior to traditional IDEs as program comprehension aids.

[1]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[2]  Marian Petre,et al.  Why looking isn't always seeing: readership skills and graphical programming , 1995, CACM.

[3]  Randy F. Pausch,et al.  Teaching objects-first in introductory computer science , 2003, SIGCSE.

[4]  Gerald M. Weinberg,et al.  Psychology of computer programming , 1971 .

[5]  Daniel H. H. Ingalls,et al.  Design Principles Behind Smalltalk , 2006 .

[6]  Jon Trinder,et al.  The Humane Interface: New Directions for Designing Interactive Systems , 2002, Interact. Learn. Environ..

[7]  Randall B. Smith,et al.  Getting Close to Objects: Object-Focused Programming Environments , 1995 .

[8]  David R. Karger,et al.  Relo: Helping Users Manage Context during Interactive Exploratory Visualization of Large Codebases , 2006, VL/HCC.

[9]  Oscar Nierstrasz,et al.  Autumn Leaves: Curing the Window Plague in IDEs , 2009, 2009 16th Working Conference on Reverse Engineering.

[10]  Oscar Nierstrasz,et al.  Pharo by Example , 2010 .

[11]  Protima Banerjee,et al.  Book Review: About Face 2.0: The essentials of interaction design , 2004, Inf. Vis..

[12]  Carlo Ghezzi,et al.  Programming language concepts , 1982 .

[13]  Romain Robbes,et al.  Lumière: a novel framework for rendering 3D graphics in Smalltalk , 2009, IWST.

[14]  W. Marsden I and J , 2012 .

[15]  Michele Lanza,et al.  Gaucho: From Integrated Development Environments to Direct Manipulation Environments , 2010 .

[16]  John Maloney,et al.  The Self-4.0 user interface: manifesting a system-wide vision of concreteness, uniformity, and flexibility , 1995, OOPSLA 1995.

[17]  Mik Kersten,et al.  Mylar: a degree-of-interest model for IDEs , 2005, AOSD '05.

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

[19]  Elisa L. A. Baniassad,et al.  Silhouette: visual language for meaningful shape , 2009, OOPSLA Companion.

[20]  James D. Hollan,et al.  Direct Manipulation Interfaces , 1985, Hum. Comput. Interact..

[21]  Joseph J. LaViola,et al.  Code bubbles: rethinking the user interface paradigm of integrated development environments , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[22]  Alan Cooper,et al.  About Face 3: the essentials of interaction design , 1995 .

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

[24]  Brad A. Myers,et al.  Eliciting design requirements for maintenance-oriented IDEs: a detailed study of corrective and perfective maintenance tasks , 2005, ICSE.

[25]  David J. Barnes,et al.  Objects First with Java , 2006 .

[26]  Romain Robbes,et al.  Software systems as cities: a controlled experiment , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[27]  Aaas News,et al.  Book Reviews , 1893, Buffalo Medical and Surgical Journal.

[28]  Michele Lanza,et al.  Lumière: An Infrastructure for Producing 3D Applications in Smalltalk , 2009, FAMOOSr@WCRE.

[29]  Oscar Nierstrasz,et al.  Lessons in Software Evolution Learned by Listening to Smalltalk , 2009, SOFSEM.

[30]  Protima Banerjee About Face 2.0: The Essentials of Interaction Design: Alan Cooper and Robert Reimann Published by John Wiley & Sons, 2003, 576 pp, ISBN 0764526413 , 2004 .

[31]  Gerald M. Weinberg,et al.  Egoless Programming (Excerpt from the Psychology of Computer Programming, Silver Anniversary Edition). , 1998 .