Lieberman et al. (2006) define end-user development as “a set of methods, techniques, and tools that allow users of software systems...to create, modify, or extend a software artefact” (p. 2). The definition shows the breadth of what can be considered end-user development. Within their definition EUREQA belongs to the tool dimension.
Lieberman et al. (2006) also provide a further refinement of tool-based end-user development with four distinct approaches, programming by example, incremental programming, model-based development, extended annotation or parameterization. Model-based development is the richest of the four approaches at the cost of being the most complex. The richness and freedom allowed in a tool can be considered directly proportional to its complexity. In end-user development it is a design goal to create an environment with a flat learning curve whilst still affording the end-user developer the freedom to achieve their goals.