# Context-Aware End-User Development Review
## 2 Background: End-User Developing Context-Aware Applications
### End Users as Application Builders
\begin{table}
\begin{tabular}{c c} \hline \hline
**Programming Interaction Style/Metaphor** & **Description or Examples** \\ \hline Based on language & GUI for programming languages, scripts, extended annotation or parameterization, natural language processing \\ \hline Based on spreadsheet & Microsoft Excel, OpenOffice/LibreOffice Calc \\ \hline Programming by demonstration (or similar, e.g., by example, by teaching, by an animation, by a game) & The user “gives” or “shows” the system a reference of the desired behavior (e.g., a prototype, a set of actions). Examples: Stagecast creator, Toontalk \\ \hline Based on math/specification & GUI for formulas, formal methods, specification language \\ \hline Visual programming language & App Inventor ([[http://appinventor.mit.edu](http://appinventor.mit.edu)]([http://appinventor.mit.edu](http://appinventor.mit.edu)), accessed on 1 November 2021) \\  & Scratch ([[https://scratch.mit.edu](https://scratch.mit.edu)]([https://scratch.mit.edu](https://scratch.mit.edu)), accessed on 1 November 2021) \\  & Modkit ([[http://www.modkit.com](http://www.modkit.com)]([http://www.modkit.com](http://www.modkit.com)), accessed on 1 November 2021) \\ \hline Rule-based & GUI for rules, e.g., IFTTT ([[https://ifttt.com](https://ifttt.com)]([https://ifttt.com](https://ifttt.com)), accessed on 1 November 2021) \\ \hline \multirow{4}{*}{Combination of styles/metaphors} & Forms/3 (Visual and Spreadsheet styles) \\  & NaturalMash (Visual and natural language processing styles) \\ \cline{1-1}  & Excel macros (Visual, Programming by example and script styles) \\ \cline{1-1}  & Web design tools such as Dreamweaver (Visual and HTML languages styles) \\ \cline{1-1}  & Node-RED ([[https://nodered.org](https://nodered.org)]([https://nodered.org](https://nodered.org)), accessed on 1 November 2021) (Visual \\ \cline{1-1}  & programming and GUI to add/edit source code) \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Examples of end-user development tools. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Step** & **Description/Progress** & **Challenges for Context-Aware Applications** \\ \hline
**Requirement** & \ \begin{tabular}{c} End-users are imprecise in what they want or what they need to \\ do. Existing approaches consider: \\ (1) \\ **elicitation** \\ \end{tabular}  & \begin{tabular}{c} Providing an iterative development with \\ a proper methodology to relate other \\ development steps such as design \\ (2) \\ \end{tabular}  \\ \hline
**Visual design patterns such as What You See Is What You Get** & \begin{tabular}{c} Adapting from traditional software \\ engineering, e.g., design patterns to \\ visual design patterns. With the flooding \\ of smart objects, a new challenge is \\ manipulating the changing context for \\ applications’ design/creation. \\ \end{tabular}  \\
**Veification and validation** & \ \begin{tabular}{c} Facilitates problem-solving due to social creativity, but it is a \\ critical part of quality because of error propagation. \\ Support searching in repositories (e.g., by interest), assisting \\ end-users in finding (deciding) appropriate reusable \\ components. \\ \end{tabular}  & \begin{tabular}{c} Adapting for heterogeneous end-users \\ with diverse backgrounds (e.g., domain \\ experts, children). \\ \end{tabular}  \\ \hline
**Verification and validation** & \ \begin{tabular}{c} Verification by immediate feedback (e.g., by visualization). UI is \\ the current validation method, including visual/tangible hints \\ such as colors, arrows, vibrations. E.g., What You See Is What \\ You Test (WYSIWYT [14])—an approach for systematic testing \\ in spreadsheets. \\ Likewise, WYSIWYT/ML [15] introduces Machine Learning \\ (ML) to predict and prioritize software parts to test, enhance \\ measuring coverage, and facilitate monitoring changes. \\ \end{tabular}  &