Abstract |
Today, visual programming languages (VPLs) are the most popular programming
system for non-professional developers. Originally, they have been introduced for
teaching purposes, as experimental tools encouraging children to program small-
scale games. Nowadays, they are increasingly treated as instruments that can give
more powerful and flexible configuration, customization and extension features to
the end-users of software systems, through controllable programmability relying on
some exposed underlying system functionality. Such an approach has already been
applied within various large-scale systems via scripting frameworks, but is still
targeted to more professional users and is very demanding for the general end-user.
Overall, in the rapidly emerging era of end-user development (EUD) the adoption of
VPLs seems more promising and hotter than ever before. In fact, the broad
proliferation of Internet of Things (IoT) technologies has set end-user development
as the vehicle to accommodate the increased personalization demands for smart
automations. In particular, the IoT domain still faces a low commercial acceptance,
something attributed to the low popularity of monolithic and all-in-one solutions. It
is clear that there is trend towards more flexible and open infrastructures that endusers may directly tailor to their individual requirements, and even functionally
combine into new ways with custom-made programmable personal automations.
However, the existing VPLs are supported with very primitive and poor tool chains,
missing the notion of a full-scale integrated development environment (IDE) with
all the inherently required high-quality production toolset. In this sense, the missing
features should be explicitly focused on genuinely optimizing the end-user
programming process, meaning the mirroring of typical IDE functionality of the
professional software development domain is insufficient and rather inappropriate.
To this end, as part of this thesis we set one grand challenge: define, develop and
validate in a demanding real domain what an integrated toolset for end-user
development should offer. To this end, the primary technical challenge has been the
development of a full-scale IDE for VPLs, capable to accommodate and host virtually
any VPL editor. Then, our research has revealed and supported a number of primary
disciplines in the context of EUD that we have fully designed, implemented and tested
in the context of our IDE: (i) assisted project management, (ii) collaborative editing
and debugging, and (iii) open interactive domain plugins.
In particular, the role of the domain plugins is very crucial, far more than mere
extension packages, with the purpose of enriching the interactive IDE functionality
with extra development features optimally suiting a target domain. This notion is
novel to EUD, with no counterpart in traditional IDEs, and aims to address the
inherent complexity of domains for EUD due to the custom programming models and
libraries that are very hard to manage without extra toolboxes on top of the IDE. To
test and validate our proposition we have developed, on top of our IDE, a complete
full-scale IoT plugin, including a very rich interactive toolset, for EUD support of
personal smart automations.
|