framework (VBA for MS Office, AppleScript..).
In this discussion, we’ll focus on VBA-like macro
languages due to their wide-spread use. This ap-
proach exposes more of the main application’s
functions and data structures to the end user. The
macro language’s scope, however, is often still
restricted to a subset of the internal APIs, in
part because the language is usually simpler that
the application’s core language (e.g., Basic vs.
C++). Often, inconsistencies arise: see, for exam-
ple, how Excel’s native cell formulas like MMult
are accessed within VBA. Advanced operations
are possible, but often require embedding exter-
nally created library functions (in VBA, with the
Declare Function command).
4. Finally, open source software discloses an appli-
cation’s entire source code. End users can inspect
and modify all aspects of the software. Users, par-
ticularly large institutions, regularly adapt open
source software to their needs, e.g., database soft-
ware like PostgreSQL is modified to handle new
data types.
Approach (1) is appealing—our main critique is the
media break: the plugin is developed externally and
must be included explicitly in the main application.
In many instances, it is preferable to allow run-time
modifications seamlessly, within the application, like
in approach (2).
Approach (4) is geared towards power users; other
end users might be overwhelmed by the setup and
sheer complexity of the code. Too much is exposed—
many parts of the code are unlikely to be modified.
The highest degree of flexibility is achieved, but at
the expense of severely reducing the target audience.
This paper describes an approach of providing
seamless flexibility for many end users, by letting
users alter parts of the core source code at run time.
Conceptually, it lies between approach (2) and ap-
proach (3):
• Users can access the full core API and data struc-
tures of the tool, unlike in (2). Not only mathe-
matical functions, but the graphical behavior and
the GUI’s reaction to user input can be modified.
• Users can use the tool’s core language (Java in our
case), not a stripped-down or simplified macro di-
alect. API calls and data access are thus consistent
in the user-defined code parts and the surrounding
original code, unlike in (3). This avoids redun-
dancies in the interfaces, data structures, and their
documentation; it is also preferable, for example,
if the code should later be included in the official
distribution branch of the application.
• There is no media break, i.e., no need for external
tools or explicit imports like in (1), or for external
DLLs like in (3). Such media breaks are tedious,
time-consuming and a prime source for errors.
• While the end user has access to the full range of
the internal API and data structures, he can mod-
ify only those parts of the code that are expected
to require this additional level of flexibility. The
proposed approach thus resembles “sand box”, as
opposed to the “sand bucket” in (2) or the “sand
mine” in (3).
This paper addresses two target audiences: end users
and developers of flexible software applications. To
end users we present where and how UMLet provides
flexibility. To developers we outline the implemen-
tation setting and some technical details. We argue
that users should demand this increased level of flex-
ibility, not only in a setting where they are allowed
to define mathematical expressions, but in ones with
more complex tool behavior as well. Developers, in
turn, should embrace this way of deferring design de-
cisions to later stages, up to the end user. Often, they
themselves will find that developing new tool features
is best done at run time, within the tool.
Section 2 gives on overview on related work. Sec-
tion 3 describes this paper’s goal in greater detail.
Section 4 outlines implementation issues. Section 5
presents several examples of UMLet’s end-user de-
velopment process. Section 6 concludes and points
out future research directions.
2 RELATED WORK
2.1 End-User Development
The concept of end-user development (EUD) - de-
fined by Beringer as a “design problem to enable
subject matter experts to create or modify executable
software components” (Beringer, 2004) - has been in-
vestigated for several decades (Martin, 1984). How-
ever, as several authors notice, the advances are be-
hind expectations (Sutcliffe, 2005; Fischer et al.,
2004). Beringer, for example, notes that EUD appli-
cations “only realize a fraction of EUD’s potential and
still suffer from several flaws” (Beringer et al., 2008).
He lists only a handful of partially successful applica-
tions, like macros, spreadsheets, and email filters.
The need for EUD applications, however, be-
comes more evident as increasing numbers of do-
main experts need to customize their software tools
to ever higher degrees, preferably at “use time” (Ko
and Myers, 2005): they become “unwitting program-
mers” (Costabile et al., 2008) as they evolve from cus-
ICEIS 2009 - International Conference on Enterprise Information Systems
6