1 / 24

End-User Tools for Creating Dependable Software

Explore different techniques for creating dependable software, including database query languages, visual programming, and programming by example. Discuss the application areas and the importance of collaboration and continuous testing. Address research questions related to tool effectiveness, collaboration support, and decision-making process in tool development.

jerilync
Download Presentation

End-User Tools for Creating Dependable Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

  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] WEUSE-IV -5/12/08

More Related