An explanation-based, visual debugger for one-way constraints

This paper describes a domain-specific debugger for one-way constraint solvers. The debugger makes use of several new techniques. First, the debugger displays only a portion of the dataflow graph, called a <i>constraint slice</i>, that is directly related to an incorrect variable. This technique helps the debugger scale to a system containing thousands of constraints. Second, the debugger presents a visual representation of the solver's data structures and uses color encodings to highlight changes to the data structures. Finally, the debugger allows the user to point to a variable that has an unexpected value and ask the debugger to suggest reasons for the unexpected value. The debugger makes use of information gathered during the constraint satisfaction process to generate plausible suggestions. Informal testing has shown that the explanatory capability and the color coding of the constraint solver's data structures are particularly useful in locating bugs in constraint code.

[1]  Rob Miller,et al.  The Amulet Environment: New Models for Effective User Interface Software Development , 1997, IEEE Trans. Software Eng..

[2]  Bay-Wei Chang,et al.  Fluid visualization of spreadsheet structures , 1998, Proceedings. 1998 IEEE Symposium on Visual Languages (Cat. No.98TB100254).

[3]  Thomas W. Reps,et al.  Incremental Context-Dependent Analysis for Language-Based Editors , 1983, TOPL.

[4]  Bradley T. Vander Zanden,et al.  An empirical study of constraint usage in graphical applications , 1996, UIST '96.

[5]  Rob Miller,et al.  Lessons learned from programmers' experiences with one‐way constraints , 2005, Softw. Pract. Exp..

[6]  Michael Sannella,et al.  Constraint satisfaction and debugging for interactive user interfaces , 1994 .

[7]  John D. Gould,et al.  An experimental study of people creating spreadsheets , 1987, TOIS.

[8]  G. A. Venkatesh,et al.  The semantic approach to program slicing , 1991, PLDI '91.

[9]  Roger B. Dannenberg,et al.  Garnet: comprehensive support for graphical, highly interactive user interfaces , 1990, Computer.

[10]  Scott E. Hudson A System for Efficient and Flexible One-Way Constraint Evaluation in C++ , 1993 .

[11]  Steven L. Rohall,et al.  The Rendezvous architecture and language for constructing multiuser applications , 1994, TCHI.

[12]  Scott E. Hudson,et al.  User interface specification using an enhanced spreadsheet model , 1994, TOGS.

[13]  Roger B. Dannenberg,et al.  Garnet: comprehensive support for graphical, highly interactive user interfaces , 1995 .

[14]  Margaret M. Burnett,et al.  Impact of interruption style on end-user debugging , 2004, CHI.

[15]  Rob Miller,et al.  Lessons learned about one-way, dataflow constraints in the Garnet and Amulet graphical toolkits , 2001, TOPL.

[16]  Donald E. Knuth,et al.  Semantics of context-free languages , 1968, Mathematical systems theory.

[17]  Bowen Alpern,et al.  Incremental evaluation of computational circuits , 1990, SODA '90.

[18]  Brad A. Myers Graphical techniques in a spreadsheet for specifying user interfaces , 1991, CHI '91.

[19]  Michael Sannella Analyzing and Debugging Hierarchies of Multi-way Local Propagation Constraints , 1994, PPCP.

[20]  Gregg Rothermel,et al.  End-user software engineering with assertions in the spreadsheet paradigm , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[21]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[22]  Brad A. Myers,et al.  Designing the whyline: a debugging interface for asking questions about program behavior , 2004, CHI.

[23]  Scott E. Hudson,et al.  Ultra-lightweight constraints , 1996, UIST '96.