Empowering Users to Build IoT Software with a Puzzle-like Environment
Jigsaw puzzle pieces serve as building blocks that allow children as well as
adults to put together impressive pictures. Software engineers follow a similar
approach to build complex programs. Since David Parnas' modularization
conceptualization (Parnas, 1972), many kinds of software modules in the form of
``building blocks" have been proposed and adopted. These include functions,
objects, remote procedures, web services, cloud services, and microservices, to
name a few. However, from a developer's perspective, it is hard to achieve the
exact requirements of end-users. Therefore, it would be useful to empower
end-users with the capability to adapt a software product to their individual
needs (Lapouchnian et al., 2006).
Internet of Things (IoT) devices and services can be configured to work
together in many different ways. This configuration can be performed by
end-users and is considered an end-user development challenge. Millions of
school kids nowadays are taught programming concepts using end-user development
environments such as Scratch, which has also been adapted into the Sense
environment used to teach entry-level computing at The Open University (Kortuem
et al., 2013). Can't we use a similar environment to teach end-users to develop
software for IoT?
Akiki's recent research on Visual Simple Transformations (ViSiT) solves this
problem by empowering end-users to wire IoT devices and services (Akiki et al.,
2017). For example, end-users can use puzzle pieces to implement a
transformation (Figure 1) that allows a Microsoft Xbox controller to
communicate with a Lego Mindstorms robot. This paradigm is familiar to anyone
who is used to programming with an environment like Scratch. Each puzzle piece
is a visual block that connects to its neighbouring pieces in a similar way.
Intuitively, puzzle pieces bind to each other through predefined sockets. The
parameters of these building blocks provide the required concretization that
matches with the configuration parameters of IoT devices and services.
Figure 1. An example transformation that connects an Xbox controller to a Lego Mindstorms robot
ViSiT's underlying service-oriented code implements the transformations as
executable workflows and composes them into a holistic application for IoT.
Although this work primarily targets end-users, software developers can modify
the executable workflows using Cedar Studio. This tool was originally developed
as part of Pierre's work on adaptive user interfaces (Akiki et al., 2016),
(Akiki et al., 2014).
By empowering end-users and lowering the barrier for software development, the
creation of real-life IoT applications such as the robot shown in Figure 2
becomes within the reach of a wider audience.
Figure 2. A shooting robot can be controlled using an Xbox controller as a result of applying visual simple transformations
Testing ViSiT with a number of end-users showed that it lowers the acceptance
barrier and facilitates connecting IoT devices and services. A video
demonstrating ViSiT and its supporting development environment can be viewed
With the evolution of such development paradigms and their supporting tools,
end-users will have an ever-growing role to play in software development. As
the adoption of end-user development environments grows, someday the data
learnt from these environments could be used to train artificial intelligence
to automatically compose software systems.
- D. L. Parnas. 1972. On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12):1053-1058 (1972).
- Alexei Lapouchnian, Yijun Yu, Sotirios Liaskos, and John Mylopoulos. 2006. Requirements-driven design of autonomic application software. In Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research (CASCON '06), Hakan Erdogmus, Eleni Stroulia, and Darlene Stewart (Eds.). IBM Corp., Riverton, NJ, USA, , Article 7.
- Pierre A. Akiki, Arosha K. Bandara, Yijun Yu: Visual Simple Transformations: Empowering End-Users to Wire Internet of Things Objects. ACM Trans. Computer-Human Interfaces. accepted (2017)
- Pierre A. Akiki, Arosha K. Bandara, Yijun Yu: Engineering Adaptive Model-Driven User Interfaces. IEEE Trans. Software Eng. 42(12):1118-1147 (2016)
- Pierre A. Akiki, Arosha K. Bandara, Yijun Yu: Adaptive Model-Driven User Interface Development Systems. ACM Comput. Surv. 47(1):9:1-9:33 (2014)
- Pierre A. Akiki, Arosha K. Bandara, Yijun Yu: Integrating adaptive user interface capabilities in enterprise applications. ICSE 2014: pp.712-723
- Gerd Kortuem, Arosha K. Bandara, Neil Smith, Michael Richards and Marian Petre. Educating the Internet-of-Things generation. Computer, 46(2):53–61 (2013).
Office: +44 (0) 1908 6 55562