<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>DSML4TinyOS: Code Generation for Wireless Devices</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Hussein M. Marah</string-name>
          <email>hussein.marah@gmail.com</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Raheleh Eslampanah</string-name>
          <email>raheleh.eslampanah@ieu.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Moharram Challenger</string-name>
          <email>moharram.challenger@ege.edu.tr</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Model-driven Engineering, Domain-specific Modeling Language,</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Electric and Electronics Engineering, Department, Izmir University of Economics</institution>
          ,
          <addr-line>Izmir</addr-line>
          ,
          <country country="TR">Turkey</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>International Computer Institute</institution>
          ,
          <addr-line>Ege</addr-line>
          ,
          <institution>University</institution>
          ,
          <addr-line>Izmir</addr-line>
          ,
          <country country="TR">Turkey</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Wireless Sensor Network</institution>
          ,
          <addr-line>TinyOS, Code generation</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <abstract>
        <p>There are various operating systems and programming languages for programming the low power wireless devices in the Internet of Things (IoT). This heterogeneity makes the process of programming these devices time-consuming and complex. In our running study, we aim to deploy Model-driven Engineering (MDE) techniques in order to increase the level of abstraction to deal with this complexity. To this end, our purpose is to provide a platform-independent modeling framework for the development of IoT programs from developers' domain models. This will be realized by developing various platform specific modeling environments for diferent IoT operating systems and their programming languages. In this paper, we present DSML4TinyOS; a Domain-specific Modeling Language for TinyOS with which the developers can generate architectural code for low power wireless devices in nesC language. The metamodel, graphical concrete syntax, constraint checking rules, and model to text transformation rules of DSML4TinyOS are introduced and a case study is presented for the evaluation of the proposed DSML.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>INTRODUCTION</title>
      <p>
        Wireless Sensor Networks (WSN) can be defined as a network of
devices (mostly sensors) which are connected using IEEE 802.15
protocol (for low power WPAN) to perform information gathering
and monitoring. WSNs have the potential to be used in a wide range
of domains, such as health care, building, infrastructure, agriculture
and security [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ][
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. These communication networks can be used
in Internet of Things where a path of sensors can collect information
from a large area and send ıt through sink node(s) to the Internet
via gateways, see Figure 1 [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>
        A WSN is a complicated system for communication where a
considerable number of devices (i.e., sensors) collect data and send
it through channels of wireless communication [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Although,
advances in the developing applications for low-power and low-cost
micro-controllers play a vital role for implementing the WSN, the
scarcity of specialized developers of these application who
possess the required knowledge and the enough experience for such
systems, limits the ability of implementing such network systems
simply and quickly [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Also, there are many operating systems
(such as TinyOS [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], ContikiOS [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], RIOT [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], FreeRTOS [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]) and
programming languages for implementing these systems. This
heterogeneity makes the programming of these devices even more
time-consuming and complex.
      </p>
      <p>As a possible solution, in our running study, we intend to deploy
and use Model-driven Engineering (MDE) approach and its
techniques in order to increase the abstraction level in the process of
software development for these IoT systems, see Figure 2. To this
end a Platform Independent Modeling (PIM) environment, called
DSML4WSN, will be provided to model the WSN based
communication for IoT systems independent of any platform, operating system,
or programming language. According to MDE principles, the PIM
level models can be automatically transformed to the
Platformspecific Models (PSM), such as DSML4TinyOS in Figure 2. PSMs
provide a modeling platform to design the model of problem domain
using platform-specific concepts and generate the architectural
code in the target platform.</p>
      <p>
        In this paper, we present the DSML4TinyOS, a generative
modeling language for development of WSN programs in TinyOS
framework (nesC language). TinyOS is a component-based operating
system for embedded devices, especially low-power and low-memory
wireless devices [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ][
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] to implement low power IoT systems.
Using DSML4TinyOS, the IoT developers can model the
communication system of their low power wireless devices and generate the
architectural code for TinyOS framework.
      </p>
      <p>
        To this end the abstract syntax of DSML4TinyOS is presented
with a metamodel. The concrete syntax is provided by mapping
the concepts in a metamodel with graphical notations using Sirius
framework [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. Also the graphical concrete syntax is empowered
by some constraints checking to control the domain rules on the
developers’ instance models. This will result in improving domain
models which in turn leads to high quality code generation. Finally,
the instance models are transformed automatically to the target
code in nesC. This development process requires less time and
efort and can lead to less errors comparing to manual development
process.
      </p>
      <p>The rest of this paper is organized as follows: Section 2 briefly
discusses TinyOS. The syntax and semantics of the proposed
language, DSML4TinyOS, are presented in Section 3. A case study is
used in Section 4 to evaluate the proposed DSML. The related work
is reported in Section 5 and the paper is concluded in Section 6.
2</p>
    </sec>
    <sec id="sec-2">
      <title>TINYOS</title>
      <p>
        TinyOS is a lightweight, flexible, free and open source operating
system which began as a project in University of California, Berkeley
[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ][
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. TinyOS has three main layers that work together to make
the operating system eficient: application layer (TinyOS/nesC),
services layer (actuating, sensing and communication) and finally
the hardware layer.
      </p>
      <p>
        The main programming language for TinyOS is nesC. In fact,
nesC is a programming language for networked embedded systems.
Although, it is based on C, its own characteristics distinguish it
from C language. The nesC is designed for devices that have low
memory. Many applications can be installed inside 16KB of memory
and the whole core OS can fit in about 400 bytes [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].The features of
nesC focus on the notion of Components that encapsulate a certain
set of services, specified by Interfaces. Figure 3 shows the structure
of TinyOS applications in nesC.
      </p>
      <p>
        The Application connects Components by wiring [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. A
Component contains Interfaces, and it can use the same Interface type any
time as long as each instance has a diferent name. There are two
types of Components; Module and Configuration. The Components
may use or provide Interfaces which respectively can have events
and commands as shown in Figure 3.
      </p>
      <p>
        TinyOS is one of the major operating systems for wireless
sensor networks. Due to the specific programming style of TinyOS,
Component based programming, some challenges have been raised
in the development of related programs. One of these challenges
is the specific approach for nesC programming which is depended
on Components to form an Application [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. This challenge can
be addressed by using model-driven techniques and extracting the
Components and Configuration patterns and reusing them as model
to text transformation templates. On the other hand, due to the
limited services and primitives that sensors may introduce, such as
sending or receiving packets, these services can be used repeatedly
in programs. The code for these services are structurally similar
in diferent parts of the program, which makes it very suitable
for applying model-driven techniques that can lead to increase
productivity and decrease the cost of development [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. With this
motivation, in this study, a generative DSML is proposed for TinyOS
based WSN development.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>THE SYNTAX AND SEMANTICS OF</title>
    </sec>
    <sec id="sec-4">
      <title>DSML4TINYOS</title>
      <p>
        To develop a DSML for TinyOS, the first step is to design a
metamodel that specifies the abstract syntax of the language [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]. After
the process of analyzing and examining the structure of TinyOS
and its programming language (nesC) using diferent examples, we
could conceptualize the elements and their relations in TinyOS and
represent them in the proposed metamodel. This metamodel plays
the role of abstract syntax for the language. It abstracts the new
language from the details of configurations and setup for the
components in TinyOS, among the other abstractions. Figure 4 shows the
metamodel for TinyOS. This metamodel is designed using Eclipse
Modelling Framework (EMF) and encoded in Ecore format [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ].
      </p>
      <p>As pointed out earlier, Module and Configuration are two types
of Components in TinyOS, and they have a signature (Module_Signature,
Configuration_Signature) which provide or use Interfaces, although
they mainly difer in their implementation. The module
implementation (Module_Implementation) part consists of nesC code
that has similar syntax to the C language. The Module part of the
code declares variables and functions, calls functions and
compiles the code, while Configuration implementation
(Configuration_Implementation) part consists of nesC code (wiring code) that
wires and connects Components of the Application together. The
other elements are sub-elements of Module implementation
(Module_Implementation) or Configuration implementation
(Configuration_Implementation) Components. Particularly, functions (events
and commands) are mainly defined in Module implementation
(Module_Implementation) while Wiring code is only defined in
Configuration implementation (Configuration_Implementation).</p>
      <p>After designing the metamodel, the second step is developing
the graphical concrete syntax (GCS) which paves the way for a
graphical editor. To implement this editor, some graphical
notations are selected for the elements of the metamodel, see Figure 5.
The first notation, which represent a Mote, indicates to a node that
the wireless program will be uploaded in. A Mote has an ID number,
as an attribute, defined while installing TinyOS application, and
a port number indicating the COM port that is used to get data.
The Applications (in nesC language) are built out of Components
containing bidirectional and well-defined Interfaces. Also, the
Component and Interface notations are defined to represent the related
elements in nesC Applications. Figure 5 illustrates the notations
selected for diferent elements of TinyOS metamodel.</p>
      <p>
        The graphical tool supporting DSML4TinyOS is implemented
using Sirius modeling tool. It is part of an Eclipse Modelling
Framework [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] that allows users to easily create their own graphical
concrete syntax. In addition, to consider the static semantics in
the modeling environment, domain rules, such as name conflicts,
are implemented as constraints to check the developers’ instance
models. These constraints are implemented in AQL (Acceleo Query
Language) 1. The static semantics improve the quality of models
and accordingly the quality of generated code.
      </p>
      <p>The final step of developing DSML4TinyOS is writing the model
to code/text (M2T) transformation rules to generate the artifacts
in target platform, TinyOS. M2T transformation rules are a set of
templates which are extracted from nesC codes. These templates
are implemented in an template engine called Acceleo 2. Acceleo
is a pragmatic implementation of the Object Management Group
(OMG) that uses Model to Text Language (MTL) standard. Acceleo
1Acceleo Query Language, https://www.eclipse.org/acceleo/documentation/aql.html
2Acceleo M2T Language, https://www.eclipse.org/acceleo/
has been used to perform code generation from the instance model
in DSML4TinyOS. Figure 6 and 7 show respectively the excerpt of
the code generation rules in Acceleo, and the generated code for
an instance model that will be discussed later in the next section.</p>
    </sec>
    <sec id="sec-5">
      <title>CASE STUDY: FIRE DETECTION SYSTEM</title>
      <p>
        There are many applications using WSN in diferent areas. One of
the useful applications is Fire Detection Systems [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ][
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] which can
be needed in diferent environments. In our previous work [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], a fire
detection system has been implemented for libraries using an IoT
system with a WSN. The system uses wireless sensors programmed
in TinyOS. The study is extended with multihop communication
and RPL protocol (IPv6 Routing Protocol for Low-Power and Lossy
Network) to collect and send data from one sensor to another until
reaches the final destination, which is the sink node, connected to
the computer (the gateway). To this end, the application used in
all sensors is ’MultihopOscilloscope’ [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ][
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. On the other hand, a
Java application on the computer processes the data and triggers an
alarm or calls back another IoT devices, if the temperature exceeds
a threshold.
      </p>
      <p>In this study the fire detection system is used as a case study to
evaluate DSML4TinyOS. To this end, the system is modeled and
developed using the proposed language. The TinyOS system for
ifre detection system is designed as an instance model
confirming to TinyOS metamodel in DSML4TinyOS, see Figure 8. The
instance model describes all the elements, attributes and relations
required for specifying the fire detection system in nesC. The model
is checked by constraints implemented in DSML4TinyOS to gain a
semantically correct model.</p>
      <p>The resulting instance model was used to generate code by
applying the transformation rules provided in DSML4TinyOS. The
generated code contains the essential elements of the application,
and it has the main structure of the TinyOS application; see Figure 7
for excerpt of the generated code. The generation process includes
two files. (MultihopOscilloscopeC and MultihopOscilloscopeAppC).
The first file is for Module contents while the second file is for
Conifguration which contains the wiring code. The generated artifacts
are syntactically and semantically error-free. Also, as they are
generated automatically, they save developer time considerably. The
developer can add the delta code to have fully functional software.
5</p>
    </sec>
    <sec id="sec-6">
      <title>RELATED WORK</title>
      <p>
        There are some MDE studies in the literature for WSN development
to ease the design, development, and deployment of WSN systems.
Also, we can say that there is considerable interest and orientation
of researchers on applying MDE approaches on WSNs, especially
in the scope of IoT [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. In general, non of these studies address
the development of IoT systems with WSNs specifically.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], a framework based on Simulink, State-flow and
Embedded Coder is proposed. The goal of this framework is to generate
code of the application for WSN operating systems. In this
platform an application is modeled in a high level of abstraction, the
code is generated automatically after it is simulated using realistic
topologies for the network. The authors claim that after the phase
of modeling and simulation, the framework can generate the code
of the applications from the simulated model for diferent target
operating systems.
      </p>
      <p>
        A modeling framework was proposed in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] which allows the
developers to model the architecture of WSN software and the
specification of the low-level hardware of WSN nodes separately.
The framework can use the designed models in respect to generating
code for analysis purposes. The framework employs a multi-view
architectural approach to model separately software Components
and their interactions as well as the physical environment where
the WSN devices (nodes) are actually implemented.
      </p>
      <p>
        The study in [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] proposes a Model-driven Development (MDD)
approach for prototyping and optimization of WSN applications.
This work provides a set of modeling languages, which describe
an application at three abstraction levels, and transformation rules.
The provided modeling languages transform the described models
into a concrete one.
      </p>
      <p>
        Also, the study in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] introduces a method to build WSN
applications by using the model-driven approach to separate the concerns
of two levels of requirements. The first level is domain experts with
no experience on WSN systems but they will contribute in
applications development process, and the second level is network experts
with required knowledge in WSN platform but no knowledge on
the application domain. This method supports the reuse of software
artifacts: an application model can be reused on various sensor
platforms while a platform model can be reused for diferent WSN
applications.
      </p>
      <p>
        The paper [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] addresses the problem of optimizing the trade-of
between various constraints like power consumption and memory
usage in the process of application design. The proposed approach
integrates Evolutionary Algorithms (EA) with MDD approach.
Various metamodels of the system to be developed are evolved and
generated, terms of evaluating the trade-of between performance
value and diferent constraint criteria determine the process of the
optimal model selection.
      </p>
      <p>
        The study reported in [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] presents a software engineering
approach that uses the models of Coloured Petri Net (CPN) as the
starting point to develop protocol software for the TinyOS system.
The approach depends on five steps of refinement process taking a
platform-independent CPN model and progressively refining it to
match the structure of the target platform. The result will end up
with a refined model that enables automatic code generation.
      </p>
      <p>The aforementioned studies apply MDD and MDE techniques
on WSN applications for diferent purposes, however, none of them
aim to do constraint checking and automatic code generation for
TinyOS.</p>
      <p>
        As one of the recent studies, in [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], the authors propose a DSL
for WSN application development. However, their proposed
language, SenNet, is a textual DSL. We believe that a graphical model
is more comprehensible and provides an environment for to design
the system in a more abstraction level. Also, our study intends to
provide PIM level modeling of WSNs for IoT systems and generate
PSM level models and then artifacts for diferent platforms. To the
best of our knowledge, this is not addressed in the literature.
6
      </p>
    </sec>
    <sec id="sec-7">
      <title>DISCUSSION AND CONCLUSION</title>
      <p>This paper presents a MDE based development environment for
WSNs applications using TinyOS. The development environment,
called DSML4TinyOS, provides graphical modeling and M2T
transformation rules with which the final artifacts can be generated. The
proposed approach can increase the level of abstraction of TinyOS
application development, ease the development process, and reduce
the number of errors. These features increase the productivity and
decrease the development time.</p>
      <p>The development of DSML4TinyOS has been done in three
phases: the design of the metamodel for domain (TinyOS), the
development of the GCS to provide the modeling environment, and
providing the M2T transformation rules to generate applications’
architectural code automatically.</p>
      <p>Based on the evaluation done by the fire detection case study, the
proposed modeling environment helps the developers to save the
time in the development of the applications by automatic generation
and reducing the number of errors. Even though the developers
must have basic knowledge of the TinyOS and WSN (such as which
Components to use and which Interfaces are to be used or to be
provided in the application’s Component) to implement the system,
the developers do not work in code level but in the higher level of
abstraction. So, for the development, the developer needs to have the
domain level knowledge only, not the platform level information.</p>
      <p>However, one challenging issue is the amount of details of
modelling environment. More detailed modeling environment can lead
to more code generation, and this may make the modeling
environment more dificult and distract from the benefits of the initial
idea of increasing the level of abstraction. On the other hand, a
very abstract modeling may not give a proper productivity in the
generation.</p>
      <p>As our future work, we intend to extend this work to include
PSMs for other WSN platforms. Then, by extracting the common
vocabulary, a platform independent modeling environment will be
developed. In this way, the developers can work in the computation
level, not in the platform level.</p>
    </sec>
    <sec id="sec-8">
      <title>ACKNOWLEDGEMENT</title>
      <p>This study is realized in the scope of the Scientific Research Project
No 17-UBE-002 at EGE University, Izmir-Turkey. Also, the authors
would like to acknowledge Izmir University of Economics for their
supports.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Sadık</given-names>
            <surname>Arslan</surname>
          </string-name>
          , Moharram Challenger, and
          <string-name>
            <given-names>Orhan</given-names>
            <surname>Dagdeviren</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Wireless sensor network based fire detection system for libraries</article-title>
          .
          <source>In Computer Science and Engineering (UBMK)</source>
          ,
          <source>2017 International Conference on. IEEE</source>
          ,
          <fpage>271</fpage>
          -
          <lpage>276</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Emmanuel</given-names>
            <surname>Baccelli</surname>
          </string-name>
          , Oliver Hahm, Mesut Gunes, Matthias Wahlisch, and Thomas C Schmidt.
          <year>2013</year>
          . RIOT OS:
          <article-title>Towards an OS for the Internet of Things</article-title>
          . In
          <source>Computer Communications Workshops (INFOCOM WKSHPS)</source>
          ,
          <source>2013 IEEE Conference on. IEEE</source>
          ,
          <fpage>79</fpage>
          -
          <lpage>80</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Pruet</given-names>
            <surname>Boonma</surname>
          </string-name>
          , Yuthapong Somchit, and
          <string-name>
            <given-names>Juggapong</given-names>
            <surname>Natwichai</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>A ModelDriven Engineering Platform for Wireless Sensor Networks</article-title>
          . 2013 Eighth International Conference on P2P, Parallel, Grid, Cloud and
          <string-name>
            <given-names>Internet</given-names>
            <surname>Computing</surname>
          </string-name>
          (
          <year>2013</year>
          ). https://doi.org/10.1109/3pgcic.
          <year>2013</year>
          .115
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Torsten</given-names>
            <surname>Braun</surname>
          </string-name>
          , Andreas Kassler, Maria Kihl, Veselin Rakocevic, Vasilios Siris, and
          <string-name>
            <given-names>Geert</given-names>
            <surname>Heijenk</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>Multihop wireless networks</article-title>
          .
          <source>In Trafic and QoS management in wireless multimedia networks</source>
          . Springer,
          <fpage>201</fpage>
          -
          <lpage>265</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Damien</given-names>
            <surname>Cassou</surname>
          </string-name>
          , Julien Bruneau, Charles Consel, and
          <string-name>
            <given-names>Emilie</given-names>
            <surname>Balland</surname>
          </string-name>
          .
          <year>2012</year>
          .
          <article-title>Toward a tool-based development methodology for pervasive computing applications</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          <volume>38</volume>
          ,
          <issue>6</issue>
          (
          <year>2012</year>
          ),
          <fpage>1445</fpage>
          -
          <lpage>1463</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Zenon</given-names>
            <surname>Chaczko</surname>
          </string-name>
          and
          <string-name>
            <given-names>Fady</given-names>
            <surname>Ahmad</surname>
          </string-name>
          .
          <year>2005</year>
          .
          <article-title>Wireless sensor network based system for fire endangered areas</article-title>
          .
          <source>In Information Technology and Applications</source>
          ,
          <year>2005</year>
          .
          <article-title>ICITA 2005</article-title>
          . Third International Conference on, Vol.
          <volume>2</volume>
          . IEEE,
          <fpage>203</fpage>
          -
          <lpage>207</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Krishna</given-names>
            <surname>Doddapaneni</surname>
          </string-name>
          , Enver Ever, Orhan Gemikonakli, Ivano Malavolta, Leonardo Mostarda, and
          <string-name>
            <given-names>Henry</given-names>
            <surname>Muccini</surname>
          </string-name>
          .
          <year>2012</year>
          .
          <article-title>A model-driven engineering framework for architecting and analysing wireless sensor networks</article-title>
          .
          <source>In Proceedings of the Third International Workshop on Software Engineering for Sensor Network Applications</source>
          . IEEE Press,
          <fpage>1</fpage>
          -
          <lpage>7</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Adam</given-names>
            <surname>Dunkels</surname>
          </string-name>
          , Bjorn Gronvall, and
          <string-name>
            <given-names>Thiemo</given-names>
            <surname>Voigt</surname>
          </string-name>
          .
          <year>2004</year>
          .
          <article-title>Contiki-a lightweight and flexible operating system for tiny networked sensors</article-title>
          .
          <source>In Local Computer Networks</source>
          ,
          <year>2004</year>
          . 29th Annual IEEE International Conference on. IEEE,
          <fpage>455</fpage>
          -
          <lpage>462</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Caglar</given-names>
            <surname>Durmaz</surname>
          </string-name>
          , Moharram Challenger, Orhan Dagdeviren, and
          <string-name>
            <given-names>Geylani</given-names>
            <surname>Kardas</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Modelling Contiki-Based IoT Systems</article-title>
          . In OASIcs-OpenAccess Series in Informatics, Vol.
          <volume>56</volume>
          .
          <string-name>
            <surname>Schloss</surname>
          </string-name>
          Dagstuhl-Leibniz-Zentrum fuer Informatik.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Eclipse</given-names>
            <surname>Foundation</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>Eclipse Modeling Framework (EMF)</article-title>
          . https://www. eclipse.org/modeling/emf/
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>David</given-names>
            <surname>Gay</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Philip</given-names>
            <surname>Levis</surname>
          </string-name>
          , Robert Von Behren, Matt Welsh, Eric Brewer, and
          <string-name>
            <given-names>David</given-names>
            <surname>Culler</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>The nesC language: A holistic approach to networked embedded systems</article-title>
          .
          <source>Acm Sigplan Notices</source>
          <volume>49</volume>
          ,
          <issue>4</issue>
          (
          <year>2014</year>
          ),
          <fpage>41</fpage>
          -
          <lpage>51</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Jason</surname>
            <given-names>Hill</given-names>
          </string-name>
          , Robert Szewczyk, Alec Woo, Seth Hollar, David Culler,
          <string-name>
            <given-names>and Kristofer</given-names>
            <surname>Pister</surname>
          </string-name>
          .
          <year>2000</year>
          .
          <article-title>System architecture directions for networked sensors</article-title>
          .
          <source>ACM SIGOPS operating systems review 34</source>
          ,
          <issue>5</issue>
          (
          <year>2000</year>
          ),
          <fpage>93</fpage>
          -
          <lpage>104</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>P.a.</given-names>
            <surname>Levis</surname>
          </string-name>
          .
          <year>2006</year>
          .
          <article-title>TinyOS: An Open Operating System for Wireless Sensor Networks (Invited Seminar)</article-title>
          .
          <source>7th International Conference on Mobile Data Management (MDM06)</source>
          (
          <year>2006</year>
          ). https://doi.org/10.1109/mdm.
          <year>2006</year>
          .151
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Philip</given-names>
            <surname>Levis</surname>
          </string-name>
          and
          <string-name>
            <given-names>David</given-names>
            <surname>Gay</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>TinyOS Programming</article-title>
          . (
          <year>2009</year>
          ). https://doi.org/ 10.1017/cbo9780511626609
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Mohammad</given-names>
            <surname>Mostafizur Rahman Mozumdar</surname>
          </string-name>
          , Francesco Gregoretti, Luciano Lavagno, Laura Vanzago, and
          <string-name>
            <given-names>Stefano</given-names>
            <surname>Olivieri</surname>
          </string-name>
          .
          <year>2008</year>
          .
          <article-title>A framework for modeling, simulation and automatic code generation of sensor network application</article-title>
          .
          <source>In Sensor, Mesh and Ad Hoc Communications and Networks</source>
          ,
          <year>2008</year>
          .
          <source>SECON'08. 5th Annual IEEE Communications Society Conference on. IEEE</source>
          ,
          <fpage>515</fpage>
          -
          <lpage>522</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>Pankesh</given-names>
            <surname>Patel</surname>
          </string-name>
          and
          <string-name>
            <given-names>Damien</given-names>
            <surname>Cassou</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Enabling high-level application development for the Internet of Things</article-title>
          .
          <source>Journal of Systems and Software</source>
          <volume>103</volume>
          (
          <year>2015</year>
          ),
          <fpage>62</fpage>
          -
          <lpage>84</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>TinyOS</given-names>
            <surname>Release Repository</surname>
          </string-name>
          .
          <year>2018</year>
          . TinyOS Documentation. https://github.com/ tinyos
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Taniro</surname>
            <given-names>Rodrigues</given-names>
          </string-name>
          , Priscilla Dantas, Paulo F Pires,
          <string-name>
            <surname>Luci Pirmez</surname>
            , Thais Batista, Claudio Miceli,
            <given-names>Albert</given-names>
          </string-name>
          <string-name>
            <surname>Zomaya</surname>
          </string-name>
          , et al.
          <year>2011</year>
          .
          <article-title>Model-driven development of wireless sensor network applications</article-title>
          .
          <source>In Embedded and Ubiquitous Computing (EUC)</source>
          ,
          <source>2011 IFIP 9th International Conference on. IEEE</source>
          ,
          <fpage>11</fpage>
          -
          <lpage>18</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Aymen J Salman and Adil Al-Yasiri</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Developing domain-specific language for wireless sensor network application development</article-title>
          .
          <source>In Internet Technology and Secured Transactions (ICITST)</source>
          ,
          <year>2016</year>
          11th International Conference for. IEEE,
          <fpage>301</fpage>
          -
          <lpage>308</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Douglas</surname>
            <given-names>C</given-names>
          </string-name>
          <string-name>
            <surname>Schmidt</surname>
          </string-name>
          .
          <year>2006</year>
          .
          <article-title>Model-driven engineering</article-title>
          .
          <source>COMPUTER-IEEE COMPUTER SOCIETY- 39</source>
          ,
          <issue>2</issue>
          (
          <year>2006</year>
          ),
          <fpage>25</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Ryo</surname>
            <given-names>Shimizu</given-names>
          </string-name>
          , Kenji Tei, Yoshiaki Fukazawa, and
          <string-name>
            <given-names>Shinichi</given-names>
            <surname>Honiden</surname>
          </string-name>
          .
          <year>2011</year>
          .
          <article-title>Model driven development for rapid prototyping and optimization of wireless sensor network applications</article-title>
          .
          <source>In Proceedings of the 2nd Workshop on Software Engineering for Sensor Network Applications. ACM</source>
          ,
          <volume>31</volume>
          -
          <fpage>36</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Dave</surname>
            <given-names>Steinberg</given-names>
          </string-name>
          , Frank Budinsky, Ed Merks, and
          <string-name>
            <given-names>Marcelo</given-names>
            <surname>Paternostro</surname>
          </string-name>
          .
          <year>2008</year>
          .
          <article-title>EMF: eclipse modeling framework</article-title>
          .
          <source>Pearson Education.</source>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          <source>[23] Su Lim Tan and Bao Anh Tran Nguyen</source>
          .
          <year>2009</year>
          .
          <article-title>Survey and performance evaluation of real-time operating systems (RTOS) for small microcontrollers</article-title>
          .
          <source>IEEE Micro</source>
          (
          <year>2009</year>
          ). https://doi.org/10.1109/mm.
          <year>2009</year>
          .56
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>Nguyen</given-names>
            <surname>Xuan</surname>
          </string-name>
          Thang and
          <string-name>
            <given-names>Kurt</given-names>
            <surname>Geihs</surname>
          </string-name>
          .
          <year>2010</year>
          .
          <article-title>Model-driven development with optimization of non-functional constraints in sensor network</article-title>
          .
          <source>In Proceedings of the 2010 ICSE Workshop on Software Engineering for Sensor Network Applications. ACM</source>
          ,
          <volume>61</volume>
          -
          <fpage>65</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>Vegard</given-names>
            <surname>Veiset and Lars M Kristensen</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>An Approach to Semi-Automatic Code Generation for the TinyOS Platform using Coloured Petri Nets</article-title>
          .
          <source>Ph.D. Dissertation. Master's thesis</source>
          , Bergen University College.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>Vladimir</surname>
            <given-names>Viyović</given-names>
          </string-name>
          , Mirjam Maksimović, and
          <string-name>
            <given-names>Branko</given-names>
            <surname>Perisić</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>Sirius: A rapid development of DSM graphical editor</article-title>
          .
          <source>In Intelligent Engineering Systems (INES)</source>
          ,
          <year>2014</year>
          18th International Conference on. IEEE,
          <fpage>233</fpage>
          -
          <lpage>238</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <surname>Markus</surname>
            <given-names>Völter</given-names>
          </string-name>
          , Thomas Stahl, Jorn Bettin, Arno Haase, and
          <string-name>
            <given-names>Simon</given-names>
            <surname>Helsen</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>Model-driven software development: technology, engineering, management</article-title>
          . John Wiley &amp; Sons.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>Liyang</surname>
            <given-names>Yu</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Neng</given-names>
            <surname>Wang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Xiaoqiao</given-names>
            <surname>Meng</surname>
          </string-name>
          .
          <year>2005</year>
          .
          <article-title>Real-time forest fire detection with wireless sensor networks</article-title>
          .
          <source>In Wireless Communications, Networking and Mobile Computing</source>
          ,
          <year>2005</year>
          . Proceedings. 2005 International Conference on, Vol.
          <volume>2</volume>
          . IEEE,
          <fpage>1214</fpage>
          -
          <lpage>1217</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>