Podcast
Questions and Answers
What is the primary goal of end-user development (EUD)?
What is the primary goal of end-user development (EUD)?
Which of the following challenges is commonly faced in end-user development?
Which of the following challenges is commonly faced in end-user development?
How does EUD differ from traditional software development?
How does EUD differ from traditional software development?
What is a common characteristic of how end users approach coding in EUD?
What is a common characteristic of how end users approach coding in EUD?
Signup and view all the answers
What issue arises when trying to support EUD with traditional software engineering approaches?
What issue arises when trying to support EUD with traditional software engineering approaches?
Signup and view all the answers
What is the primary goal of end-user programming (EUP)?
What is the primary goal of end-user programming (EUP)?
Signup and view all the answers
How does end-user programming (EUP) differ from professional programming?
How does end-user programming (EUP) differ from professional programming?
Signup and view all the answers
Which of the following describes a characteristic of end-user programming (EUP)?
Which of the following describes a characteristic of end-user programming (EUP)?
Signup and view all the answers
What can be a method of interaction style in end-user programming?
What can be a method of interaction style in end-user programming?
Signup and view all the answers
In end-user programming, what contributes to the semantics of a visual language?
In end-user programming, what contributes to the semantics of a visual language?
Signup and view all the answers
What characterizes programming-by-demonstration (PBD)?
What characterizes programming-by-demonstration (PBD)?
Signup and view all the answers
Which statement best describes programming-by-specification?
Which statement best describes programming-by-specification?
Signup and view all the answers
What is a potential limitation of programming-by-demonstration (PBD)?
What is a potential limitation of programming-by-demonstration (PBD)?
Signup and view all the answers
Which of the following is an example of programming-by-example (PBE)?
Which of the following is an example of programming-by-example (PBE)?
Signup and view all the answers
Which combination of techniques is often utilized together in programming paradigms?
Which combination of techniques is often utilized together in programming paradigms?
Signup and view all the answers
What is the primary focus of end-user software engineering (EUSE)?
What is the primary focus of end-user software engineering (EUSE)?
Signup and view all the answers
Which of the following best describes tailoring in the context of software applications?
Which of the following best describes tailoring in the context of software applications?
Signup and view all the answers
How does end-user programming (EUP) differ from end-user development (EUD)?
How does end-user programming (EUP) differ from end-user development (EUD)?
Signup and view all the answers
Which of the following would NOT be considered a basic-level tailoring activity?
Which of the following would NOT be considered a basic-level tailoring activity?
Signup and view all the answers
What does the research and practice perspective reveal about end-user programming (EUP)?
What does the research and practice perspective reveal about end-user programming (EUP)?
Signup and view all the answers
Study Notes
End-User Development (EUD)
- EUD bridges the gap between subject-matter experts (who know what needs to be developed), end-users, and developers (who create the software).
- EUD empowers end-users to design and customize software interfaces and functionalities.
- EUD broadens participation in software development by engaging a larger pool of end-users.
Challenges of EUD
- Traditional software development approaches are often insufficient for EUD.
- End-users typically lack training in professional programming languages, processes, and notations.
- End-users often lack the time or motivation to learn complex techniques.
- The focus of end-users is often on short-term goals rather than long-term software assets.
Objectives of EUD
- Develop tools, social structures, and processes that are easily used, learned, and integrated into existing practice.
Defining EUD
- EUD is a collection of methods, techniques, and tools enabling non-professional software users to create, modify, or expand software.
The Birth of EUD
- Spreadsheets (VisiCalc, Lotus 1-2-3, Excel) were initial major EUD programming environments.
- Spreadsheet formulas are analogous to functional programs, manipulating inputs and generating outputs.
- End-users do not necessarily see themselves as programmers when using spreadsheets.
Tailoring
- Tailoring is modifying computer applications within their context of use.
- Basic tailoring adjusts application parameters to change behavior.
- Advanced tailoring extends functionality and becomes end-user programming.
EUD, EUP, and EUSE
- EUD overlaps with end-user programming (EUP) and end-user software engineering (EUSE).
- EUP involves creating programs for personal use, contrasting with professional programming for others.
- EUD spans the entire software development lifecycle (including modifying and extending software, not just creation), while EUP focuses on creation.
- EUP is considered more mature than EUD in research and practice.
- EUSE focuses on the quality of software created by end-users, emphasizing methods, techniques, and tools to enhance quality.
Programming using visual attributes
- Visual layouts express program semantics (e.g., cell arrangement in spreadsheets).
- Cells aligned vertically or horizontally form composite objects based on visual attributes.
- Visual semantics are encoded in attributes like position, color, size, and interactions.
Programming-by-Demonstration (PBD)
- User demonstrates or provides examples, allowing programming environments to infer the logic for a program.
- Some systems fully infer the program, others assist the user.
- PBD facilitates program review, debugging, and testing.
- Often used with visual/textual languages.
Programming-by-Example (PBE)
- PBE is a technique where tools generate code from user-supplied inputs and/or examples (e.g, FlashFill in Excel).
Programming-by-Specification
- User defines the desired program, and a tool generates the code
- Natural Language is one approach used for this.
- Input languages in such tools have limitations impacting the generation of complete and correct code.
- Specific languages (DSLs) and visual interfaces improve clarity regarding permitted inputs.
- User input is restricted by tool capabilities.
Programming with text
- Text is the most traditional interaction technique in programming.
- EUP tools often include text-based input even with visual interfaces.
- Text's conciseness and abstract expression power make it a key aspect of programming.
Reuse
- Reusing end-user programs is challenging due to a lack of design experience and training for end-user developers.
- Reused code can propagate errors across an organization.
- In EUD, the motivation for code reuse is more about saving time than achieving high software quality standards, compared with professional software development.
- Reuse in EUD often focuses on components and APIs, leveraging pre-existing components like those of professional software.
Future implications of EUD
- EUD's importance will grow as user numbers and diversity increase, driving the need for adapted software.
- Low-code development platforms are fostering the increasing reach of EUP.
- Increased attention to software quality is crucial to meet diverse end-user needs.
- The fit and understanding of the needs of individual users within software may become closer in the future.
Further Reading
- Burnett, M., & Scaffidi, C. (no date). End-user development.
- Paternò, F. (2023). End-user development. In: Handbook of Human Computer Interaction.
- Ko, A. J., et al. (2011). The state of the art in end-user software engineering.
- Barricelli, B. R., et al. (2019). End-user development, end-user programming, and end-user software engineering: A systematic mapping study (Journal of Systems and Software).
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
This quiz explores the concept of End-User Development (EUD), highlighting its significance in bridging gaps between users and developers. It examines the challenges faced by end-users, their objectives in EUD, and how they can create customized software solutions without professional training.