26
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 Tools Andrew Ko, Brad Myers, Michael Coblenz, and Jeff Stylos End User Software Engineering: Auditing the Invisible Joshua Gross

Debugging in End-User Software Engineering

  • Upload
    brigid

  • View
    39

  • Download
    0

Embed Size (px)

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 Presentation

Citation preview

Page 1: Debugging in End-User Software Engineering

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

Page 2: Debugging in End-User Software Engineering

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:

Page 3: Debugging in End-User Software Engineering

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.

Page 4: Debugging in End-User Software Engineering

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.

Page 5: Debugging in End-User Software Engineering

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.

Page 6: Debugging in End-User Software Engineering

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.

Page 7: Debugging in End-User Software Engineering

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.

Page 8: Debugging in End-User Software Engineering

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!

Page 9: Debugging in End-User Software Engineering

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?

Page 10: Debugging in End-User Software Engineering

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.

Page 11: Debugging in End-User Software Engineering

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.

Page 12: Debugging in End-User Software Engineering

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.

Page 13: Debugging in End-User Software Engineering

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.

Page 14: Debugging in End-User Software Engineering

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.

Page 15: Debugging in End-User Software Engineering

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.)

Page 16: Debugging in End-User Software Engineering

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.

Page 17: Debugging in End-User Software Engineering

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.

Page 18: Debugging in End-User Software Engineering

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.

Page 19: Debugging in End-User Software Engineering

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!

Page 20: Debugging in End-User Software Engineering

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.

Page 21: Debugging in End-User Software Engineering

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?

Page 22: Debugging in End-User Software Engineering

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.

Page 23: Debugging in End-User Software Engineering

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.

Page 24: Debugging in End-User Software Engineering

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.

Page 25: Debugging in End-User Software Engineering

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...

Page 26: Debugging in End-User Software Engineering

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...