eling. Among them we can cite: UsiXML (Van-
derdonckt, 2005), TERESA (Berti et al., 2004),
IFML (Brambilla et al., 2014a), and MARIA (Patern
`
o
et al., 2009).
On the other side, the approaches that apply
MDD to the development of IoT-based applications
do not specifically focus on user interfaces and can be
grouped into two clusters. The first cluster includes
the works that target executability for IoT, i.e., pro-
duce executable code for the IoT-based applications.
Among them we can cite: (i) FRASAD (Framework
for sensor application development) (Nguyen et al.,
2015), a node-centric, multi-layered software archi-
tecture which aims at filling the gap between applica-
tions and low-level systems of sensor nodes. It pro-
vides a rule-based programming model which allows
to describe the local behaviors of the sensor node and
a domain specific language for sensor-based applica-
tions modeling. The final application code is automat-
ically generated from the initial models; (ii) Pankesh
Patel and Damien Cassou (Patel and Cassou, 2015)
proposed a development methodology which con-
sists on separating the IoT application development
into different concerns: domain, functional, deploy-
ment, and platform. This separation allows stake-
holders to deal with those concerns individually and
reuse them. The framework integrates a set of mod-
eling languages to specify each of which allowing
to describe one of the above mentioned concerns of
the IoT applications; (iii) Jon Whittle et al. (Fleurey
et al., 2011) proposed a MDD approach to gener-
ate efficient communication APIs to exchange mes-
sages with and between resource-constrained devices.
This approach is based on ThingML (things mod-
eling language) (Franck Fleurey and Brice Morin ,
2016); (iv) Ferry Pramudianto et al. (Pramudianto
et al., 2013) proposed a MDD approach which fo-
cuses on the separation of domain modeling from
technological implementations. The framework al-
lows domain experts to construct domain models by
composing virtual objects and linking them to the im-
plementation technologies. It allows automatic gen-
eration of a prototype code from the domain models
and manual refinement of it.
In the other cluster we include works that apply
MDD to other aspects of IoT applications. Among
them we can mention a MDD approach for the analy-
sis of IoT applications via simulation (Brumbulli and
Gaudin, 2016). Prehofer and Chiarabini (Prehofer
and Chiarabini, 2015) compared the model-based and
mashup approaches, considering tools and method-
ologies for the development of IoT applications. They
used UML and Paraimpu (Pintus et al., 2012).
3 BACKGROUND
3.1 IoT Concepts
This section summarizes the main concepts that char-
acterize an IoT system.
• Device or Thing. It denotes all types of devices
which can generate information (about physical
event or state) and initiate, modify, or maintain
those events or states; or that can perform actions.
• Category. The IoT devices can be grouped into
different categories based on some criterion such
as type, features, and geographical location.
• Terminal. A terminal is any device which can
run an IoT application with a user interface which
can control other devices through the network. A
terminal gathers information from other devices
or external systems and presents it to the user
through the appropriate user interfaces.
• External System. With external system we refer to
all the systems connected to a network in which
the information of devices and terminals can be
stored, processed and retrieved.
• Communication. The devices can communicate
in different ways and can be connected with ter-
minals and external systems. Several communi-
cation protocols for the IoT have been proposed
around the IEEE 802.15.X, a standard for lower
power systems.
• Intermediary. It represents any device or system
which acts as a gateway between the IoT device
and the terminal in an indirect communication.
3.2 UI Modeling
To describe how the users interact (using terminals)
with IoT devices, we use a OMG standard for user
interaction modeling: the Interaction Flow Modeling
Language (IFML) (Brambilla and Fraternali, 2014).
IFML can be extended for specific needs or domains.
For instance, the work in (Brambilla et al., 2014b)
and (Umuhoza et al., 2015) proposed an extension
of IFML for mobile applications.The most important
core elements of IFML are:
• ViewElements. View elements are the elements
of the user interface that display the content of
the application. They are further divided into:
ViewContainers, the elements of the user inter-
face which aggregate other containers and com-
ponents; and ViewComponents, elementary pieces
of information constituting the interface.
Model-driven Development of User Interfaces for IoT Systems via Domain-specific Components and Patterns
247