260 likes | 440 Vues
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
E N D
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 End User Software Engineering: Auditing the Invisible Joshua Gross • summarized by Andrew Ko
Errors in EUSE Tools have helped end users: prevent errors during implementation detect errors during testing understand errors during debugging remove errors once found
What can tools do to prevent errors? Design new languages, abstractions, and interaction techniques to make errors impossible or unlikely. Error Prevention
Gencel (Erwig et al.) Prevents illegal row and column operations by using a model of the spreadsheet structure.
Click! (Rode, Rosson et al.) Introduces new abstractions to allow people to develop web applications without having to write code.
Chickenfoot (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.
Alice 2 (Pausch et al.) Drag and drop interactions prevent all syntax and type errors, by only allowing legal transformations.
Barista (Ko, Myers) Tuesday, 11:30! 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.
Languages are often less powerful. Interaction techniques are sometimes more cumbersome. Are these tradeoffs, or can these be powerful, flexible, and protective? Limitations
Once an error is inserted into a program, what can tools do to help detect it? Analyze, infer, annotate, and propagate. Error Detection
WYSIWYT (Burnett et al.) What you see is what you test Users 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.
Forms/3 Assertions Users 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.
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.
Slate (Coblenz, Ko, Myers) Values have units and “labels”, which are propagated to help users detect faulty computations.
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. Limitations (Lawrance et al.)
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. Error Understanding
Forms/3 Data flow arrows can help users understand what other cells affect a cell’s value.
Whyline (Ko and Myers) Users ask why questions about a program’s behavior and get explanations in terms of the program’s execution.
Crystal (Myers et al.) Tuesday, 11:30! 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.
Auditing (Gross) Software “auditing,” in which an domain expert who has not developed the software must make sure the software’s behavior is appropriate/legal. “...develop a means to allow an end user to understand what is happening inside the world of a software application...” (Gross)
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? Limitations
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. Error Removal
Jasper (Coblenz, Ko, Myers) A workspace that helps users manage code and other information that’s relevant to a task.
Change 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.
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... Limitations
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. Summary Thank you to the authors... 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