debugging in end-user software engineering
DESCRIPTION
Debugging in End-User Software Engineering. Toward Sharing Reasoning to Improve Fault Localization in Spreadsheets Joey Lawrance, Margaret Burnett, Robin Abraham, and Martin Erwig End-User Programming Productivity Tools Andrew Ko, Brad Myers, Michael Coblenz, and Jeff Stylos - PowerPoint PPT PresentationTRANSCRIPT
Debugging in End-User Software Engineering
summarized by Andrew Ko
Toward Sharing Reasoning to Improve Fault Localization in Spreadsheets
Joey Lawrance, Margaret Burnett, Robin Abraham, and Martin Erwig
End-User Programming Productivity ToolsAndrew Ko, Brad Myers, Michael Coblenz, and Jeff
Stylos
End User Software Engineering: Auditing the InvisibleJoshua Gross
2
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Errors in EUSE
prevent errors during implementationdetect errors during testingunderstand errors during debuggingremove errors once found
Tools have helped end users:
3
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Prevention
Error Prevention
•What can tools do to prevent errors?
•Design new languages, abstractions, and interaction techniques to make errors impossible or unlikely.
4
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Prevention
Gencel (Erwig et al.)
Prevents illegal row and column operations by using a model of the spreadsheet structure.
5
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
PreventionClick! (Rode, Rosson et al.)
Introduces new abstractions to allow people to develop web applications without having to write code.
6
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
PreventionChickenfoot (Bolin, Miller)
Provides a front end to more complex Javascript code for scripting interactions. Also simplifies how users refer to structures on a web page, by using simple names.
7
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Prevention
Alice 2 (Pausch et al.)
Drag and drop interactions prevent all syntax and type errors, by only allowing legal transformations.
8
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Prevention
Barista (Ko, Myers)
A Barista-based Java editor
Enables editor designers to have more freedom over the visual representation of code, while still providing familiar text editing interaction techniques.
Tuesday, 11:30!
9
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Prevention
Limitations
•Languages are often less powerful.
•Interaction techniques are sometimes more cumbersome.
•Are these tradeoffs, or can these be powerful, flexible, and protective?
10
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Detection
Error Detection
•Once an error is inserted into a program, what can tools do to help detect it?
•Analyze, infer, annotate, and propagate.
11
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
DetectionWYSIWYT (Burnett et al.)
What you see is what you testUsers verify cell values, and verification propagates to related cells. Colors represent a cell’s “testedness,” helping users find cells that haven’t been tested much.
12
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Detection
Forms/3 AssertionsUsers supply valid ranges for cells, system guesses valid ranges for cells,and the two ranges propagate and sometimes conflict.
Provides a means of drawing users’ attention to potential errors.
13
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Detection
UCheck (Erwig et al.)
Infers units based on the spatial structure from row and column header layout, and then identifies formulas that try to combine incompatible units.
14
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
DetectionSlate (Coblenz, Ko, Myers)
Values have units and “labels”, which are propagated to help users detect faulty computations.
15
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Detection
Limitations
•Limitation: the tools aren’t always right.
• False positives: tool detects errors that don’t exist.
• False negatives: tool doesn’t detect errors that do exist.
•Combine the reasoning of analyses to reduce misclassifications.
(Lawrance et al.)
16
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Understanding
Error Understanding
•End Users have many questions about program behavior:
•What happened?
•Why did that happen?
•Why didn’t that happen?
•Tools can help end users find answers to these questions by explaining the execution of a program.
17
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Understanding
Forms/3
Data flow arrows can help users understand what other cells affect a cell’s value.
18
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
UnderstandingWhyline (Ko and Myers)
Users ask why questions about a program’s behavior and get explanations in terms of the program’s execution.
19
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Understanding
Crystal (Myers et al.)
Users can ask why questions about the state of their application or document, and the tool answers them in terms of the application’s controls that affect the document.
Tuesday, 11:30!
20
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Understanding
Auditing (Gross)
“...develop a means to allow an end user to understand what is happening inside the world of a software application...” (Gross)
Software “auditing,” in which an domain expert who has not developed the software must make sure the software’s behavior is appropriate/legal.
21
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Understanding
Limitations
•Lots of things happen during a program’s execution, and many are irrelevant.
•How deep an understanding must end users have of a machine’s execution model?
22
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Removal
Error Removal
•Sometimes fixing an error requires changes to many parts of a program.
•Other times, only minor changes are need, but the changes aren’t obvious.
23
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
RemovalJasper (Coblenz, Ko, Myers)
A workspace that helps users manage code and other information that’s relevant to a task.
24
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
RemovalChange Suggestions (Abraham et al.)
The user can mark a cell as wrong, and provide the right value, and the tool offers change suggestions that would make the spreadsheet compute the right value.
25
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Removal
Limitations
•Some errors are non-obvious and require changes throughout a program.
•Often because they involves complex data dependencies.
• Is it possible to simplify something that’s fundamentally complex?
• Perhaps by avoiding complexity altogether...
26
Andrew Ko • April 23rd • CHI 2006
intro ● prevention ● detection ● understanding ● removal ● conclusions
Summary
•Tools can help end user programmers prevent, detect, understand and remove errors in code.
•Researchers are focusing on removing many of the limitations of these approaches.
Toward Sharing Reasoning to Improve Fault Localization in Spreadsheets
Joey Lawrance, Margaret Burnett, Robin Abraham, and Martin Erwig
End-User Programming Productivity ToolsAndrew Ko, Brad Myers, Michael Coblenz, and Jeff Stylos
End User Software Engineering: Auditing the InvisibleJoshua Gross
Thank you to the authors...