Docstoc

To bring

Document Sample
To bring Powered By Docstoc
					End User Software Engineering

 CHI’2008 Special Interest Group Meeting
     Tue, April 8, 2008, 9:00 AM - 10:30 AM


        Brad Myers, Margaret Burnett,
 Mary Beth Rosson, Andrew Ko, Alan Blackwell




                                              -1-
Definitions
• (Note: may be controversial—defer
 discussion until later)
• Program
  – ‗‗A set of statements that can be submitted as a
    unit to some computer system and used to direct
    the behavior of that system‘‘
     – Oxford Dictionary of Computing

• Programming
  – ‗‗The process of transforming a mental plan of
    desired actions for a computer into a
    representation that can be understood by the
    computer‘‘
    – Jean-Michel Hoc and Anh Nguyen-Xuan
                  End-User Software Engineering SIG at CHI’2008   -2-
Definitions, cont.
• Professional Programmer
  – Someone whose primary job function is to write
    or maintain software
  – Typically have significant training in programming
    (e.g., BS in CS)

• Novice Programmer
  – Someone who is learning to be a professional
    programmer




              End-User Software Engineering SIG at CHI’2008   -3-
Definitions, cont.

• End-User Programmer (EUP)
  – People who write programs, but not as their
    primary job function
  – Instead, they must write programs in support of
    achieving their main goal, which is something else
  – Covers a wide range of programming expertise
     • Business executives and secretaries
     • Physicists




                End-User Software Engineering SIG at CHI’2008   -4-
 Examples of EUP
• Accounting (spreadsheets)
• Analysts using MatLab
• Creating a web page
• Recording Macros in Word
• Automating office tasks
• Business software (SAP programming)
• ―Programming‖ VCRs, Microwaves
• Scientific research
• Authoring educational software
• Creating email filters
• Musicians configuring synthesizers
• Entertainment (e.g., behaviors in The Sims)
• Web 2.0: Mashups, end-user created content

                    End-User Software Engineering SIG at CHI’2008   -5-
Other Names

• Also called ―End User Development‖ (EUD)
• Some ―Domain-Specific Languages‖ (DSL)
  – Often created for end-user programmers

• Visual (Graphical) Programs
  – Sometimes created for EUP

• ―Scripting‖ languages, ―Macros‖
• Rapid Application Development (RAD)




               End-User Software Engineering SIG at CHI’2008   -6-
Definitions, cont.

• End-User Software Engineering (EUSE)
  – End-User Programming with the addition of
    systematic and disciplined activities that address
    quality issues (―attributes‖)
     • E.g., analyzing code, understanding unfamiliar code,
       testing code, checking code against a model,
       sharing code with coworkers, maintaining code, and
       deploying code, to name a few




                End-User Software Engineering SIG at CHI’2008   -7-
 End User Programmers
• A very large group
• In 2012: — Scaffidi, Shaw and Myers 2005
   – 90 million computer users at work in US
   – 55 million will use spreadsheets or databases at work (and
     therefore may potentially program)
   – 13 million will describe themselves as programmers
   – 3 million professional programmers

• We should make better tools for all of these people!
           100,000,000
            80,000,000
            60,000,000
            40,000,000
            20,000,000
                    0
                           Users       Spreadsheets Self-Described   Professional
                                         and DBs      Programmers Programmers
                         End-User Software Engineering SIG at CHI’2008              -8-
Evidence of Need for EUSE
• Why need Software Engineering for EUP?
• Lots of errors attributed to End-User Programming
  of spreadsheets:
  – Columbia Housing Authority admitted to overpaying by
    $118,387 due to a spreadsheet data-entry error (February
    22, 2006)
  – New York Times, Oct 30th, 2003 - $1.2 Billion Spreadsheet
    Error at Fannie Mae
  – TransAlta Corp. took $24 million charge to earnings due to
    cut-and-paste error in an Excel spreadsheet (June 3rd,
    2003)
  – Auditor, major accounting firm:
    ―...in 6 years work, checking literally hundreds of business-
    critical models, ... my team have never failed to find errors.‖
  – …. (many more!)
  – See http://eusesconsortium.org/euperrors/
                 End-User Software Engineering SIG at CHI’2008   -9-
 Consequences, 2
• Also, errors in:
   – Web pages
   – Email filtering rules
   – … (what else? Need more examples!)
• From the WEUSE II workshop at CHI‘2006:
   – Clinical customization package used by medical personnel
     reports the need for better reuse and debugging support
   – SysAdmins need better testability of database and other sorts
     of scripts
   – Issues with reuse of MATLAB applications




                    End-User Software Engineering SIG at CHI’2008   - 10 -
So What is Happening?
• Growing group of researchers in EUSE
• The EUSES Consortium
  – End Users Shaping Effective Software
  – http://eusesconsortium.org
  – 7 sites, 13 researchers + ~15 students


• EUDNet
  – http://giove.isti.cnr.it/eud-net.htm
  – European Commission
  – 2002-3
  – 16 partners

                     End-User Software Engineering SIG at CHI’2008   - 11 -
Addressing the EUSE Problem
• A multi-(sub)disciplinary problem needing:
  – Software engineering research
  – Programming language research
  – Education research
  – End-user programming research
  – HCI research of all types

• This is a big job, needs a whole community!
  – Hence, this SIG, to encourage interested people
    to work together with us and with each other
  – Also, connect researchers and EUP vendors
              End-User Software Engineering SIG at CHI’2008   - 12 -
  Many Sessions at CHI’08
• This kind of work is represented in many sessions
  – Tues, 9:00-10:30am (Now ): ―Aesthetics, Awareness,
    and Sketching‖ paper session
  – Tues, 11:30-1pm: ―Beyond End-User Programming‖
    paper session
  – Tues, 4:30-6pm: ―Invited Session: The Next Challenge:
    from Easy-to-Use to Easy-to-Develop. Are You Ready?‖
  – Wed, 4:30-6pm: ―Activity-Based Prototyping and
    Software‖ paper session
  – Thurs, 2:30-4pm: ―End-Users Sharing and Tailoring
    Software‖ papers session
                 End-User Software Engineering SIG at CHI’2008   - 13 -
Previous Meetings on This Topic
• Dagstuhl Conference on End-User Software
  Engineering (WEUSE-III) on Feb, 2007
• 2nd Workshop on End-User Software
  Engineering (WEUSE-II) at CHI 2006
• 1st Workshop on End-User Software
  Engineering (WEUSE-I) at ICSE 2005
• CHI 2007, 2005, 2004 SIGs on End Users
  Creating Effective Software
• Many proceedings and notes available off of
  EUSES web page:
  http://eusesconsortium.org
             End-User Software Engineering SIG at CHI’2008   - 14 -
Future Meetings
• Fourth Workshop on End-User Software Engineering (WEUSE IV)
  at ICSE'08 on May 12, 2008 in Leipzig, Germany
   – http://eusesconsortium.org/weuse/
• Cooperative and Human Aspects of Software Engineering
  (CHASE) at ICSE‘2008 on May 13, 2008 in Leipzig, Germany
   – http://softwareresearch.ca/seg/CHASE/
• ICSE‘2008, May 10-18, 2008 in Leipzig, Germany
• PPIG‘2008, Sept 10-12, 2008, Lancaster, UK
   – http://www.comp.lancs.ac.uk/ppig08
• 2008 IEEE Symposium on Visual Languages and Human-Centric
  Computing (VL/HCC 2008), Sept. 16-20, 2008, Herrsching am
  Ammersee, Germany
• Intelligent User Interfaces (IUI‘2009), January ??, 2009
• Second Symposium on EUD, March 2-4, 2009, Siegen, Germany
   – http://www.eud2009.org
• CHI‘2009

                  End-User Software Engineering SIG at CHI’2008   - 15 -
Ways to Get Involved
• Attend upcoming events.
• Get newsletter on end-user
  programming/software engineering:
  – (Low-volume). Sign-up sheet going around.

• Tell us today what you‘re working on.
• Help shape future events (starting with
  today‘s discussion).




             End-User Software Engineering SIG at CHI’2008   - 16 -
Rest of This SIG
• Alan Blackwell: short introduction to EUDNet
• Andy Ko: overview of dimensions of organizing
  EUP and EUSE systems and concerns
• What companies are working on that is
  relevant to EUP and EUSE
• Break up into groups by Software Engineering
  Issue
• Reconvene and report (15 min – 3 min each)


             End-User Software Engineering SIG at CHI’2008   - 17 -
EUDNet


• Research contrasts between (EU)EUD and
  (US)EUP/EUSE
• European projects are more likely to:
  – target users in specific technical domains
  – study organisational issues
  – address adults, not children / students.




              End-User Software Engineering SIG at CHI’2008   - 18 -
Breakout Groups
• Groups:
   – Design & Requirements (Alan Blackwell)
   – "Create" (Brad Myers)
   – Reuse (Mary Beth Rosson)
   – Testing & Verification (Margaret Burnett)
   – Debugging (Andy Ko)
• Focus on the S/W Eng issue and how it applies to each of the
  different domains
   – Domain-driven compare/contrast
   – What has been done relevant to that domain for this S/W Eng issue
   – Which domains are most challenging and easiest?
   – How similar and different
• Take notes in PowerPoint for 3 minute summary


                    End-User Software Engineering SIG at CHI’2008   - 19 -
Industry Attendees at CHI’2008 SIG
•   Paula Dimaio – from media, consultant: integrated methodology
    S/W+UE for practitioners. Ontology engineering
•   Marcus Stolze – IBM TJ Watson research lab. Business analysts,
    enterprise applications, dynamic access, business
•   Jack Zaintz – SOAR Technology, modeling and simulation for military,
    let end users do their own modeling, training operators – adaptive
    scripting of models
•   John Richards – IBM TJ Watson – support business analysts and
    architects when doing sense-making. Also, petaflop with 13-fold
    increase in programmer-productivity
•   Claude Knaus – indep. developer: interaction design to create s/w
    dev. Tools
•   Laura Beckwith – Microsoft Visual Studio team: middle between
    professional and EUP, e.g., consultants who want to make money off
    of programming
•   Steve Clarke – also with MS VS
•   Tessa Lau & Allen Cypher – IBM Almaden – Co-Scripter: EUP for web
•   Steve Pemberton – Designer of XForms

                     End-User Software Engineering SIG at CHI’2008    - 20 -
Domains
•   Web Applications
•   Education, pen-based application: primary school (6-10years old)
•   Coaches of sports teams
•   Enterprise users (all employees)
•   Ambient user interfaces – in home, consumer electronics
•   Visualization for air traffic controllers (ATC), operators monitoring
    computer systems, UAV path has to be designed – has a language
    w/conditionals but want a UI
•   Modeling & simulation for military exercises for military operations,
    NASA telemetry engineers
•   Professional programmers who act like EUP
•   Analysts who design and build enterprise applications, how can they
    provide more of the implementation – let them design their own UIs.
    As part of WebSphere & Rational
•   Personal Information Management



                       End-User Software Engineering SIG at CHI’2008    - 21 -
“Create” group results
•   Jack: Lots of different tools that have to be used together
     – Large Simulation System (JSAP) – config. files, UIs for scripting movement,
       intelligent entity control IDE (SoarTAC) but not for EU.
     – Simplified state machines – IDEs but not very good, FSM editor but
       pretends to not be a graph
     – Better tools for Intelligent Entity Control – textual IDEs w/some graphics for
       FSM, graphic forms
•   Flash, Frontpage,
     – Make the web sites conform to accessibility guidelines
•   Educators
     – How to learn Chinese, Geometry, Mathematics
     – Low-level platform ―UI Widgets‖: Text, Ink, Math formulas, Geometry,
       Chemistry
     – Pen-based design tool for designing functions they like
     – Interactive, drag-and-drop tool, set properties
•   Sport fields
     – Different coaches have similar needs, but different formats
     – Different kinds of spreadsheets
                        End-User Software Engineering SIG at CHI’2008           - 22 -
“Create” group results
• Olivier Liechti – simple for interactive remote control
  for consumer electronics using Visual Programming,
  on handheld display
• CoScripter – IDE for scripting on the web, mostly by
  PBE
• Enterprise Applications, start in an unorganized
  fashion – how turn spreadsheet into a real
  enterprise applications?
   – Describe their process with an XML language
   – Structured applications around the data objects
   – State machines, specifying operations to change states,
     describe choices, process and focusing on data and states
     of the data. Data flow.
   – State of data objects, focus on access control questions
   – Additional aspect: input validation – separate framework
     needed
                 End-User Software Engineering SIG at CHI’2008   - 23 -
“Create” group results
• Max: PIM: scripting language (in JavaScript)
  – Specifying conditions under which things are
    triggered by example – go into past and select a
    moment when would want something to happen
  – Select things that are relevant in the real user
    interface of Web-based PIM
  – Triggered on what documents are open, what
    music listening to, Twitter status (location)
  – Actions: call any web-based service, desktop
    services (turn on music, etc.)
     • Entry-level JavaScript programmer



               End-User Software Engineering SIG at CHI’2008
Categories of Creating
• Drag-and-drop
• Visual programming
• PBE
   – Textual model that can read but not edit
   – Hidden Markov Models
   – Creates conventional script
• Textual
   – Copy-and-paste: different style of programming
   – IDE:
        • Code completion, automatic error finding and fix suggestions
          makes them much better for EUP
   – Exploration tool: PIG tool from Berkeley simulates as you go
• Form-filling – mail filters, Jack‘s IFOR (intelligent forces)

                    End-User Software Engineering SIG at CHI’2008   - 25 -
Testing and Verification Group
•   Haven‘t seen different work styles.
•   Steven studied concept of a tester. How can I break? Study of people whose job responsibitilities were testing.
     –    Some were ―testers‖. Some were ―business analysts‖, ―programmers‖. All did the same, namely black-box.
•   Piero: 1. Medical, 2. Mech engr, 3. Software people. They have different views on testing, have different procedures for
    testing.
     –    Eg, people from physics and medicine -- they have experience testing physical machines but not software. They do very ―black box‖
          approaches. (Often, their software is part of the machines they buy.)
•   Steven has seen a lot of black-box.
•   Sometimes end users don‘t think about testing at all, at least in spreadsheets.
     –    Maybe because of the immediate visual feedback -- they may in some sensre regard it as ―already tested‖.
•   Oracle problem -- making errors in judgments of failed/successful tests.
     –    Overconfidence is a problem with end-user programmers.
     –    With images it can be harder to evaluate the answer.
•   Under the hood: software engr. talks about the underlying logic.
•   Code inspection.
     –    Gender differences (see 11:30 session).
•   Assertions.
•   Scenario-based approach: ―When a user does this, then that, the following happens‖. A storyboard.
     –    A semi-quote: ―Developers take the happy path. I take all the other paths.‖
     –    We wonder: is this true mostly in imperative paradigms, or would it also apply to more declarative ones?
•   Interactive systems have important testing issues in their own right,
     –    because end-user ―HCI‖ work to customize these could lead to terrible errors.




                                      End-User Software Engineering SIG at CHI’2008                                                 - 26 -
Testing and Verification Group Results
• Haven‘t seen different work styles.
• Steven studied concept of a tester. How can I break? Study of
  people whose job responsibitilities were testing.
   – Some were ―testers‖. Some were ―business analysts‖,
     ―programmers‖. All did the same, namely black-box.
• Piero: 1. Medical, 2. Mech engr, 3. Software people. They have
  different views on testing, have different procedures for
  testing.
   – Eg, people from physics and medicine -- they have experience
     testing physical machines but not software. They do very ―black
     box‖ approaches. (Often, their software is part of the machines
     they buy.)
• Steven has seen a lot of black-box.
• Sometimes end users don‘t think about testing at all, at least in
  spreadsheets.
   – Maybe because of the immediate visual feedback -- they may in
     some sense regard it as ―already tested‖.

                   End-User Software Engineering SIG at CHI’2008
Testing and Verification Group Results
•   Oracle problem -- making errors in judgments of failed/successful
    tests.
     – Overconfidence is a problem with end-user programmers.
     – With images it can be harder to evaluate the answer.
•   Under the hood: software engr. talks about the underlying logic.
•   Code inspection.
     – Gender differences (see 11:30 session).
•   Assertions.
•   Scenario-based approach: ―When a user does this, then that, the
    following happens‖. A storyboard.
     – A semi-quote: ―Developers take the happy path. I take all the other paths.‖
     – We wonder: is this true mostly in imperative paradigms, or would it also
       apply to more declarative ones?
•   Interactive systems have important testing issues in their own right,
     – because end-user ―HCI‖ work to customize these could lead to terrible
       errors.



                       End-User Software Engineering SIG at CHI’2008
Design & Requirements Group
Results
• Who ―interprets‖ the requirement?
• Normally a professional translates from messy/concrete to
  the computer abstraction.
• Supply side: But without professional? Can a tool provide
  the trust
• Demand side: Two kinds of attitude to abstraction:
   – Some expert communities have good domain abstractions
   – Some communities share concrete examples, don‘t explicitly
     discuss abstraction
• Alternative: Focus on community (content, analogy,
  sharing)




                 End-User Software Engineering SIG at CHI’2008
Reuse Group Results


• Gerhard Fischer (U Colorado), Dane Bertram (U Calgary),
  Allen Cypher (IBM Research), Craig Anslow (Victoria Univ.
  Wellington), Laura Beckwith (Microsoft), Tom LaTosa
  (CMU), Chris Scaffidi (CMU), Volkmar Pipek (U Ziegen)
• Domain-based comparisons
   – Content domains versus paradigm domains
       • E.g. web, scripting, DB versus business, science, etc.

   – May also be something about where in lifecycle
       • Find & adapt
       • Create and organize
       • Inherit and learn
       • Collaborative/mutual discovery

                   End-User Software Engineering SIG at CHI’2008
Domain contrasts

•   Business processes (scripting)
     –   Oriented toward large enterprises that have shared practices and thus built-in
         motivation for sharing
•   Information providers, e.g. admin who has content to post
     –   Example might be using Lotus Notes / Dominoes;
     –   Observed lots of example/edit based reuse
     –   This could include engineers
•   Consultants, integration including some programming
     –   Just want a solution demonstrated ASAP, find and connect code together
•   Java professional programmers
     –   Reuse within maintenance paradigm, finding model in others‘ code
•   Meta level, building tools that are situated within a domain
     –   Human problem domain interaction --> domain-oriented design environments
     –   Professional programmer builds the blocks to enable domain specialist
     –   Assumes goal of ―reflective communities‖ that include collaborations




                         End-User Software Engineering SIG at CHI’2008
Debugging Group
• Debugging across domains
• Examples of end-user programming debugging:
   – large scale defense systems
   – multi-sensor data fusion
   – mashups of web resources
   – programming by example
   – natural language programming
   – debugging intelligent user interfaces




                      End-User Software Engineering SIG at CHI’2008   - 32 -
Debugging Group
• One problem with debugging mashups is that the tools
  haven't caught up with the state of the art commercial tools
  for more popular debugging platforms.
• Debugging multi-sensor systems is difficult because they
  often involve complex AI and machine learning algorithms.
• Perhaps the debate between static and dynamic testing
  would be moot if we had better tools for understanding the
  dynamic behavior of program behavior.
• Almost always trust the sensors, but almost never trust data
  sources in web mashups.
• Henry's waterlanguage.com is trying to create a unified
  platform for web development.

                 End-User Software Engineering SIG at CHI’2008   - 33 -

				
DOCUMENT INFO
Shared By:
Categories:
Stats:
views:14
posted:2/3/2010
language:English
pages:33