Supporting Reuse of EUP Code Experiences with CoScripter and topes

13
Supporting Reuse of EUP Code Supporting Reuse of EUP Code Experiences with CoScripter and topes Experiences with CoScripter and topes Christopher Scaffidi Mary Shaw Carnegie Mellon University

description

Supporting Reuse of EUP Code Experiences with CoScripter and topes. Christopher Scaffidi Mary Shaw Carnegie Mellon University. Supporting Reuse of End-User Code. Compared to writing code from scratch, reuse can… Be faster Be less error-prone Require less learning - PowerPoint PPT Presentation

Transcript of Supporting Reuse of EUP Code Experiences with CoScripter and topes

Page 1: Supporting Reuse of EUP Code Experiences with CoScripter and topes

Supporting Reuse of EUP CodeSupporting Reuse of EUP CodeExperiences with CoScripter and topesExperiences with CoScripter and topes

Christopher Scaffidi

Mary Shaw

Carnegie Mellon University

Page 2: Supporting Reuse of EUP Code Experiences with CoScripter and topes

22

Supporting Reuse of End-User CodeSupporting Reuse of End-User Code

Compared to writing code from scratch, reuse can…– Be faster– Be less error-prone– Require less learning

But empirical studies of end-user programmers often report low levels of reuse.

– What features does a programming platform need in order to support reuse?

– What are the traits of highly reusable code?– How can we support reuse in the topes environment?

Page 3: Supporting Reuse of EUP Code Experiences with CoScripter and topes

33

CoScripter macros--CoScripter macros--platform features intended to support reuseplatform features intended to support reuse

Mentioned in IBM’s 2008 CHI paper:

• Inspectability & try-it-out-ability– English-like syntax– Secondary notation / comments– Easily editable

• Hooks for semi-automation– Mixed initiative– Personal database

• Repository for supporting reuse– Standard keyword search– Can suggest scripts for users

Page 4: Supporting Reuse of EUP Code Experiences with CoScripter and topes

44

CoScripter macros--CoScripter macros--more likely to be reused if they have certain traitsmore likely to be reused if they have certain traits

• Predicting reuse based on script traits, eg:– Use of English-language websites– Mixed-initiative instructions – Comments in the script– Certain keywords

Num

ber

of

reu

se e

vent

s

Number of traits

3 kinds of reuse

Rate of false positive(predicting reuse when a script is not reused)

Acc

urac

y (r

ecal

l)

4 kinds of reuse

For more info: ask for our ICSE’09 paper

Page 5: Supporting Reuse of EUP Code Experiences with CoScripter and topes

55

What does all this mean for topes?What does all this mean for topes?

Page 6: Supporting Reuse of EUP Code Experiences with CoScripter and topes

66

The tope development environmentThe tope development environmenthas similar (tope-appropriate) featureshas similar (tope-appropriate) features

• Inspectability and try-it-out-ability– UI presents English-like sentences to users– Secondary notation: users can embed examples– Easily editable: drag & drop UI; auto-gen reformatting

• Hooks for semi-automation– Overridable error messages at runtime– Whitelists: add exceptional strings at runtime

• Repository– Integration with tope editor– Can copy & paste formats from tope to tope– Tope recommendation algorithm

For more info: ask for our ISEUD’09 and IUI’09 papers

Page 7: Supporting Reuse of EUP Code Experiences with CoScripter and topes

77

How to validate reusability of topes?How to validate reusability of topes?Question #1 of 2Question #1 of 2

• Probably obvious: users can download & reuse topes– User study seems superfluous

• Probably unlikely: download & do fancy recombining– How long do most people need to use Excel before

they can reliably combine two spreadsheets?• Requires expertise well beyond walk-up-and-use

– Probably same with topes• So how to validate if usual lab experiment isn’t appropriate?

Questions for discussion

Page 8: Supporting Reuse of EUP Code Experiences with CoScripter and topes

88

What features ensure reusability?What features ensure reusability?Questions #2a & 2bQuestions #2a & 2b

• In general, are these platform features necessary & sufficient for reusability?...– Inspectability & try-it-out-ability– Hooks for semi-automation– Repository with recommendation features

• Can we predict reuse of other kinds of programs?– JavaScripts?– Spreadsheets?– All the other good kinds of programs mentioned in our

most recent NSF proposal?

Questions for discussion

Page 9: Supporting Reuse of EUP Code Experiences with CoScripter and topes

99

Thank You…Thank You…

• …to EUSES for the opportunity to present

• …to many people for helpful suggestions

• …to NSF and EUSES for funding

Marwan Abi-Antoun Margaret Burnett Martin Erwig Andy Ko Mary Beth Rosson

Robin Abraham Owen Cheng George Fairbanks Thomas LaToza Mary Shaw

Matt Bass Ciera Christopher Thomas Green Alon Lavie Jeff Stylos

Nels Beckman Michael Coblenz Josh Gross Henry Lieberman Dean Sutherland

Kevin Bierhoff Allen Cypher Greg Hartman Larry Maccherone Steve Tanimoto

Alan Blackwell Uri Dekel Jim Herbsleb Brad Myers Susan Wiedenbeck

Barry Boehm Sebastian Elbaum John Hosking John Pane

Page 10: Supporting Reuse of EUP Code Experiences with CoScripter and topes

1010

Tope implementation editor (Toped)Tope implementation editor (Toped)To users, a tope is called a “data description”To users, a tope is called a “data description”

Page 11: Supporting Reuse of EUP Code Experiences with CoScripter and topes

1111

(zoom in)(zoom in)Drag/drop UI for moving partsDrag/drop UI for moving parts

Page 12: Supporting Reuse of EUP Code Experiences with CoScripter and topes

1212

(zoom in)(zoom in)Editing one part of a tope implementationEditing one part of a tope implementation

Page 13: Supporting Reuse of EUP Code Experiences with CoScripter and topes

1313

Browsing recommended topes in ExcelBrowsing recommended topes in Excel