Abstract |
The Internet of Things (IoT) is the new rapidly-growing domain that is constantly
evolving in terms of infrastructures, integrated solutions, development tools and best
practices. The availability of so many devices in the environment, for various purposes
and missions, entails a critical control challenge, raising issues related not only to security
and safety but also to individualization and adaptation. In fact, the main benefit in
everyday life is expected by the wide introduction of software automations that can
control and coordinate such devices in ways matching individual people needs,
preference and requirements. But the demands for such automations are so customized
and fluid that the corresponding digital market is currently either non-existent or very
limited. Now, one potential solution to this supply-demand gap is enabling users develop
directly their own automations. In this context, the adoption of visual programming
gained increased attention as a vehicle to enable composition of individualized
automations by non-professional developers.
In this thesis, we present a custom toolset, built on top of a recently developed visual
programming IDE, which facilitates end-user development, execution and testing of IoT
automations. Firstly, an automatic generator is introduced, which produces userinterfaces for smart devices relying on their API specifications. Then, we present a runtime
environment for automations that provides advanced monitoring and interaction tools
including a device dashboard, a calendar for scheduling automations and a history panel
that records and displays device events. Following, we discuss a custom runtime for
testing purposes, which offers virtual counterparts of all physical smart devices, so that
testing is done locally, in a protected and isolated environment, without requiring
operation of the real devices. The latter is possible through our simulator, which enables
interactive manipulation of all device properties and operational modes. Additionally, we
implemented a time controller (i.e. virtual time) to handle the flow and pace of time
during testing, enabling trigger scheduled tasks in a way not interfering with system time.
Finally, we outline a case study involving various scenarios of everyday automations.
|