end-user tools for creating dependable software

24
1 End-User Tools for Creating Dependable Software Brad Myers Carnegie Mellon University Fourth Workshop on End-User Software Engineering WEUSE IV May 12, 2008

Upload: idra

Post on 31-Jan-2016

39 views

Category:

Documents


0 download

DESCRIPTION

End-User Tools for Creating Dependable Software. Brad Myers Carnegie Mellon University. Fourth Workshop on End-User Software Engineering WEUSE IV May 12, 2008. Outline. Summary of authoring tool aspects of the following: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: End-User Tools for Creating Dependable Software

1

End-User Tools for Creating Dependable Software

Brad Myers

Carnegie Mellon University

Fourth Workshop on End-User Software EngineeringWEUSE IV May 12, 2008

Page 2: End-User Tools for Creating Dependable Software

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

Page 3: End-User Tools for Creating Dependable Software

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

Page 4: End-User Tools for Creating Dependable Software

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

Page 5: End-User Tools for Creating Dependable Software

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”

Page 6: End-User Tools for Creating Dependable Software

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

Page 7: End-User Tools for Creating Dependable Software

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

Page 8: End-User Tools for Creating Dependable Software

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

Page 9: End-User Tools for Creating Dependable Software

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

Page 10: End-User Tools for Creating Dependable Software

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

Page 11: End-User Tools for Creating Dependable Software

WEUSE-IV -5/12/08

11

Form-Based Fill-in

Scaffidi’s Toped Define “topes” – end user types – by choosing

options

Page 12: End-User Tools for Creating Dependable Software

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

Page 13: End-User Tools for Creating Dependable Software

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”

Page 14: End-User Tools for Creating Dependable Software

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

Page 15: End-User Tools for Creating Dependable Software

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”

Page 16: End-User Tools for Creating Dependable Software

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

Page 17: End-User Tools for Creating Dependable Software

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

Page 18: End-User Tools for Creating Dependable Software

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

Page 19: End-User Tools for Creating Dependable 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

Page 20: End-User Tools for Creating Dependable Software

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

Page 21: End-User Tools for Creating Dependable Software

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

Page 22: End-User Tools for Creating Dependable Software

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

Page 23: End-User Tools for Creating Dependable Software

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

Page 24: End-User Tools for Creating Dependable Software

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]