Supporting Reuse of EUP Code Experiences with CoScripter and topes
-
Upload
marah-weiss -
Category
Documents
-
view
36 -
download
1
description
Transcript of 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
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?
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
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
55
What does all this mean for topes?What does all this mean for 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
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
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
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
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”
1111
(zoom in)(zoom in)Drag/drop UI for moving partsDrag/drop UI for moving parts
1212
(zoom in)(zoom in)Editing one part of a tope implementationEditing one part of a tope implementation
1313
Browsing recommended topes in ExcelBrowsing recommended topes in Excel