1 End-User Tools for Creating Dependable Software Brad Myers Carnegie Mellon University Fourth...
-
Upload
olivia-cruz -
Category
Documents
-
view
213 -
download
0
Transcript of 1 End-User Tools for Creating Dependable Software Brad Myers Carnegie Mellon University Fourth...
1
End-User Tools for Creating Dependable Software
Brad Myers
Carnegie Mellon University
Fourth Workshop on End-User Software EngineeringWEUSE IV May 12, 2008
WEUSE-IV -5/12/08
2
Outline Summary of authoring tool aspects of the following:
Anslow, Borggrafe, Costabile, El-Gayyar, Kankuzi, McDaid, Myers, Prähofer, Scaffidi, Sestoft, Shani, Stoitsev
Techniques for creating EU software Database Query Languages Visual Programming Spreadsheet Programming Programming By Example Form-based fill-in
Application areas Focus on Creating Dependable Software Three Research Questions
WEUSE-IV -5/12/08
3
Database Query Languages
Anslow’s Wiki Business Query Can embed business query code into web pages
and will be executed on web services
WEUSE-IV -5/12/08
4
Visual Programming Systems
Borggrafe’s Paper-Based EUD Draw processes using Anoto pen on paper pRemote: Different stamp templates printed on
Anoto paper and selected to trigger the function
WEUSE-IV -5/12/08
5
Visual Programming Systems El-Gayyar’s TailorBPEL
For SOA’s Business Process Execution Language (BPEL)
Change process at run-time Tailor “remotely … in an easy graphical way”
WEUSE-IV -5/12/08
6
Visual Programming Systems Prähofer’s Monaco IDE supports visual and
textual programming, based on Eclipse Flowcharts, timing diagrams
WEUSE-IV -5/12/08
7
Visual Programming Systems Shani’s UML class diagrams for designing
Domain-Specific Languages Automatic code generation Applied to Telco record processing example
WEUSE-IV -5/12/08
8
Visual Programming Systems
Stoitsev’s Visual Query Composition (VQC) Semantic Queries concepts and relations as a
graph Costabile’s “Domain-Oriented Visual
Language (DOVL)” Applied in case study for candy companies
WEUSE-IV -5/12/08
9
Spreadsheet Systems Sestoft’s “Function Sheet”
Add functions to spreadsheets using a spreadsheet to define the function
Supports recursion and higher-order functions
WEUSE-IV -5/12/08
10
Programming By Example Stoitsev’s CTM (Collaborative Task Manager)
Create tasks by performing weakly-structured processes by doing them with Outlook’s email, to-do, etc.
Scaffidi’s Topes Can have a tope created from multiple examples
WEUSE-IV -5/12/08
11
Form-Based Fill-in
Scaffidi’s Toped Define “topes” – end user types – by choosing
options
WEUSE-IV -5/12/08
12
Application Areas Spreadsheet (numerical)
Sestoft’s Function Sheets Kankuzi’s visualizations Scaffidi’s topes McDaid’s Test-Driven Development Tool
SOA (business) El-Gayyar’s TailorBPEL Borggrafe’s Paper-Based EUD Stoitsev’s CTM, WCP, SQD Anslow’s WikiDocs and Wiki Business Query
Web page programs Scaffidi’s topes
Domain-Specific Languages Shani’s UML class diagrams Prahofer’s Robot programs
WEUSE-IV -5/12/08
13
Dependability Use familiar paradigms
Sestoft’s Function Sheets (uses familiar spreadsheet language)
Providing abstraction and reusability Sestoft’s Function Sheets
Help to only enter legal elements Prahofer’s semantic “IntelliSence”
WEUSE-IV -5/12/08
14
Dependability
Better visibility while creating Visualization of Kankuzi’s system
But any evidence that useful or helpful? Andy Ko’s WhyLine
WEUSE-IV -5/12/08
15
Dependability
Automatic testing for consistency, etc. El-Gayyar’s TailorBPEL consistency and
validation checks Support for collaboration
Stoitsev’s CTM, etc. Costabile’s “Workshops”
WEUSE-IV -5/12/08
16
Dependability
Continuous testing while authoring Most PBE approaches, e.g., Scaffidi’s topes McDaid’s Test-Driven Development Tool
Enter expected input and output values
WEUSE-IV -5/12/08
17
Three Research Questions to Spark Discussion
1) How validate claims that the tool makes it “possible” or “easier” or “more reliable” for EU to create their programs? Too many of the papers have unsubstantiated, and
questionable claims At least need evidence that someone was effective Valid user studies would be even better.
But expensive and hard to design Statistical studies Con: not usually tested with experts
Case-based prototypes Pro: More external validity – actual target (expert) users
WEUSE-IV -5/12/08
18
Three Research Questions to Spark Discussion
2) What is the appropriate form of collaboration support for development? To support collaboration between EU & developer To support collaboration EU & other EU Sharing, reuse, co-development, providing
software at different layers Ad-hoc, unplanned collaborations
“Open Source” EU software
WEUSE-IV -5/12/08
19
Three Research Questions to Spark Discussion
3) What should be considered after identifying a problem and before building a tool to solve it? How choose authoring paradigm (VP, PBE, etc.)? How choose primitives with which EUs write code? How plan for authoring more dependable software? Refs to help:
[Blackwell’s VL/HCC 2002]: Attention [Green & Petre, ~JVLC 1996]: Cognitive Dimensions [Eriksson] patterns for end-user tailorable s/w
WEUSE-IV -5/12/08
20
Discussion Issue: How much re-use of actual software now?
Professional programmers do reuse s/w Designers reuse examples, but not component-level Joel’s study of programmers:
Willing to pick up new tools, but not libraries If libraries break, then no idea how to fix it Differences between tools and libraries?
Jeff Stylos’s studies of API use Steven Clarke’s “opportunistic programmers” APIs are hard to use But often have to use APIs and libraries
WEUSE-IV -5/12/08
21
Discussion
Mary Shaw’s HVAC example What buildings have we done that are like this?
Use that as a starting point Programming languages: can create syntax
diagrams, but people start from examples Copy & paste programming People prefer to work from tangible examples
WEUSE-IV -5/12/08
22
Discussion Artifacts: what characterizes the solution
E.g., Yahoo pipes, hard to tell what they do Put solutions in the context in which they might be relevant
End-user tailoring Organizational studies Reusing, quality-assurance (Nardi’s SMOP) Case studies on the use side of reuse (not technical)
CSCW perspective on sharing Lots of work on open-source [Henderson & McLean]
Support for emergent collaboration Tailoring object – pass on to other users
Level of formalization required from EUPs Distribution of work among different EUPs in the group Delegation and collaboration structures
WEUSE-IV -5/12/08
23
Discussion Need better ways to capture design rationale
Random comments Not even supported in some visual programming
Better annotations Try to get people to share and improve a single artifact
Wiki model of creating extractors (rather than making your own) Encourage Rob Ennals ICFP’2006 SAP Wiki work CoScripter – Wiki-based mashup builder
People would grab top script and modify it But users didn’t realize that they were messing up the official example
Hartman’s d.mix – focus on better ways to document APIs Uncover how web page scripting works from examples
WEUSE-IV -5/12/08
24
Discussion
Progression of testing, e.g. of WYSIWYT? (Long story)
Janice Singer: Lack of coordination and communication across
communities Lots of communities have methodologies for almost all
of these topics Measurement: edited volume on Empirical S/W
Eng [Shull, Singer, Sjoberg]