240 likes | 395 Views
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:
E N D
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: • 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
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
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
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
Visual Programming Systems • Prähofer’s Monaco IDE supports visual and textual programming, based on Eclipse • Flowcharts, timing diagrams WEUSE-IV -5/12/08
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
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
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
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
Form-Based Fill-in • Scaffidi’s Toped • Define “topes” – end user types – by choosing options WEUSE-IV -5/12/08
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
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
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
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
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
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
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
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
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
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
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
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
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] WEUSE-IV -5/12/08