The moldable inspector

Object inspectors are an essential category of tools that allow developers to comprehend the run-time of object-oriented systems. Traditional object inspectors favor a generic view that focuses on the low-level details of the state of single objects. Based on 16 interviews with software developers and a follow-up survey with 62 respondents we identified a need for object inspectors that support different high-level ways to visualize and explore objects, depending on both the object and the current developer need. We propose the Moldable Inspector, a novel inspector model that enables developers to adapt the inspection workflow to suit their immediate needs by making the inspection context explicit, providing multiple interchangeable domain-specific views for each object, and supporting a workflow that groups together multiple levels of connected objects. We show that the Moldable Inspector can address multiple kinds of development needs involving a wide range of objects.

[1]  T. Dean Hendrix,et al.  Robust Generation of Dynamic Data Structure Visualizations with Multiple Interaction Approaches , 2009, TOCE.

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

[3]  Michele Lanza,et al.  Visualizing Developer Interactions , 2014, 2014 Second IEEE Working Conference on Software Visualization.

[4]  Alistair E. R. Campbell,et al.  Language-independent interactive data visualization , 2003, SIGCSE.

[5]  Sara L. Su,et al.  Heapviz: interactive heap visualization for program understanding and debugging , 2010, SOFTVIS '10.

[6]  Oscar Nierstrasz,et al.  The Moldable Inspector: a framework for domain-specific object inspection , 2014 .

[7]  Ivan Beschastnikh,et al.  Templated Visualization of Object State with Vebugger , 2014, 2014 Second IEEE Working Conference on Software Visualization.

[8]  Matthew B. Miles,et al.  Qualitative Data Analysis: An Expanded Sourcebook , 1994 .

[9]  Benjamin Livshits,et al.  Finding application errors and security flaws using PQL: a program query language , 2005, OOPSLA '05.

[10]  Alexandre Bergel,et al.  Deep into Pharo , 2013 .

[11]  E R CampbellAlistair,et al.  Language-independent interactive data visualization , 2003 .

[12]  Andrei Chis,et al.  The Moldable Debugger: A Framework for Developing Domain-Specific Debuggers , 2014, SLE.

[13]  John W. Creswell,et al.  Designing and Conducting Mixed Methods Research , 2006 .

[14]  Niko Schwarz DoodleDebug, Objects Should Sketch Themselves For Code Understanding , 2011 .

[15]  Richard Chimera Value bars: an information visualization and navigation tool for multi-attribute listings , 1992, CHI '92.

[16]  Randall B. Smith,et al.  Directness and liveness in the morphic user interface construction environment , 1995, UIST '95.

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

[18]  Ben Shneiderman,et al.  Image-Browser Taxonomy and Guidelines for Designers , 1995, IEEE Softw..

[19]  Andrew W. Appel,et al.  Traversal-based visualization of data structures , 1998, Proceedings IEEE Symposium on Information Visualization (Cat. No.98TB100258).

[20]  Ambuj K. Singh,et al.  Query-based debugging of object-oriented programs , 1997, OOPSLA '97.

[21]  Carl Gutwin,et al.  Revisiting read wear: analysis, design, and evaluation of a footprints scrollbar , 2009, CHI.

[22]  Allison Woodruff,et al.  Guidelines for using multiple views in information visualization , 2000, AVI '00.

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

[24]  Anthony Savidis,et al.  Interactive Object Graphs for Debuggers with Improved Visualization, Inspection and Configuration Features , 2011, ISVC.

[25]  Vanessa Peña-Araya Agile Visualization with Roassal , 2015 .

[26]  Silvia Miksch,et al.  Visualizing Arrays in the Eclipse Java IDE , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.