<!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>End User Development: Verifying Home Behavior</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Alexandre Demeure</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sybille Ca au</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sophie Dupuy-Chessa</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Huong Ta</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lydie DuBousquet</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Univ. Grenoble Alpes</institution>
          ,
          <addr-line>CNRS, Inria, LIG, 38000 Grenoble</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>End User Programming is a solution to enable inhabitants to create a smart home adapted to their lifestyle. With this purpose, it is necessary to design softwares adapted to end-users. This paper presents why inhabitants may need to evaluate the home behavior when she/he (1) speci es and (2) maintains and improves her/his programs, and how existing tools can meet these needs.</p>
      </abstract>
      <kwd-group>
        <kwd>End User Programming Evaluation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        End User Programming enables inhabitants to create a smart home according
to their lifestyle [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. A programmed smart home system may be de ned as a
system with an only one program running a set of rules. In order to help an
end-user to program her/his home, several researches aim at proposing adapted
programming languages or adapted interfaces (with metaphors [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] or speci c
interaction paradigms [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]). By using these interfaces, inhabitants may de ned the
set of rules (i.e programmed the home system) mainly expressed following the
Event-Condition-Action paradigm [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. However, this programming paradigm
may imply that the programmed behavior does not correspond to the novice
programmer's expectations [
        <xref ref-type="bibr" rid="ref15 ref9">9,15</xref>
        ].
      </p>
      <p>
        Programming the expected behavior of her/his home is all the more
challenging that the family life often implies to change the routines [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and thus, to
change the existing home program [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. It is very important that some methods
and softwares are developed to help end-users during the whole system life, i.e.
to specify, to edit, to maintain the home programmed rules [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>Considering the home behavior as a concrete system translation of the
programmed rules, we propose to support the speci cation and the maintainability
activities through the study of the home behavior. This paper presents why and
how an inhabitant evaluates the behavior of her/his home in order to program
her/his rules.</p>
      <p>Why inhabitants need to verify the smart home
behavior?
When considering any system that will be used by human, the rst question to
address is to understand users and their tasks. In our context, an end-user is
an inhabitant who programs to specify the behavior of his/her smart home. As
inhabitants have not (or have few) knowledge on programming, they need tools
to bridge the gap between their ideas and what the system interprets from their
programs.
2.1</p>
      <sec id="sec-1-1">
        <title>Challenge 1: specifying rules</title>
        <p>
          Most of the times, programs are expressed using rules based on
Event-ConditionActions (ECA) or Trigger-Action (TA) paradigms [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. These rules aim at
automating tasks, helping to perfom di cult tasks (e.g. closing all shutters during
a storm) or adding features such as remembering to take out the trash. The
concrete translation of the rules in the household environment is the smart home
behavior.
        </p>
        <p>
          In such context, several barriers need to be overcome in order to allow non
programmers to program [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. One of these barriers is that they have to learn
the structure and the language constraints of the programming environment [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ].
To ease this learning, End User Development approaches are designed to help
inhabitants to express rules [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ].
        </p>
        <p>
          Specifying rules signi es to translate the expected smart home behavior into
rules. Unfortunately, some studies [
          <xref ref-type="bibr" rid="ref15 ref9">9,15</xref>
          ] demonstrate that end users may
misunderstand the semantics of rules and they may create bugs caused by the
misunderstanding of the temporal paradigms [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. For this programming step, the
inhabitant needs to confront how the system interprets the rules with what he/she
expected. This confrontation is done by comparing the home behavior with
the expected one. In addition to check the expecting behavior, programming
implies to anticipate unforeseen behaviors. Example 1 illustrates an
unforseen behavior due to the missing of the undoing behavior (Missing Reversal
Bug in [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]).
        </p>
        <p>Example 1. Nic installed in his home some sensors and actuators that he controls
by using a box. His box also allows him to create rules to program some personal
features. The rst rule he programed closes all shutters during the night. The
rst evening, all shutters shut down and Bob is very satis ed to be no longer
obliged to travel over his three oors to close all the shutters. But the following
morning, he observe that the shutters are not opened.</p>
        <p>
          In Example 1 the unexpected behavior of the shutters is caused by an
unforseen case. To improve the behaviour of his home, Nic will add the behavior of
the shutters during the day. However, the modi cations may impact the whole
programmed behavior, bringing another challenge, the maintainability challenge
in [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
        </p>
      </sec>
      <sec id="sec-1-2">
        <title>Challenge 2: maintaining and improving rules</title>
        <p>
          For maintaining the set of rules, the comparison between the planned behavior
(expressed in the rules) and the past one may help to check the modi cation
implications. Let's consider again the example of Nic and the programmed behavior
of his home shutters (Example 1, inspired from [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]).
        </p>
        <p>Example 2. Nic is happy with the programmed behavior of his home shutters.
He does not think about it anymore as it is managed by the system. But a
summer night, while he is in his terrace with some neighbourgs at 10pm, he sees
all shutters closing, including the shutter of the door giving access to his terrace.
He quickly goes home and he opens (with a remote control) this shutter to be able
to access to the terrace. Nic will modify his rules to include a behavior adapted
for the summer period. As he is with friends, he will have to modify the shutter
behavior at least the next day. So this modi cation requires to remember the
context of this unexpected behavior and the way he programmed the previous
rules.</p>
      </sec>
      <sec id="sec-1-3">
        <title>To correct rules, an end user has to identify the contexts (that occured</title>
        <p>in the past) in which the behavior is not the one expected, the
programming error and to make appropriate modi cations. All these steps are new
problems for end users that may cause behavior troubles.</p>
        <p>Another problem is related to time: the programmed rules may have been
written and run for a long time. This delay brings di culties to identify the
conditions of rules activation in term of data and to remind the programmed
rules.</p>
        <p>Moreover, even if inhabitants would like to modify rules to take into account
some unexpected cases, they may want to keep the programmed behaviour over
time. Thus, they need to check poperties on the behavior according to
the past. For example, after correcting his rules, Nic wants to check (1) that in
summer nights when he is in the terrace, the shutter of the terrace door stays
opened and (2) that, for all the other time, the shutter behavior is the same that
since the rules run.
3
3.1</p>
        <p>Existing approaches to verify the programmed behavior</p>
      </sec>
      <sec id="sec-1-4">
        <title>Approaches relying on users</title>
        <p>
          Most of existing home automation systems enable end users to test the action
part of a rule to verify whether it does correspond to what they expect [
          <xref ref-type="bibr" rid="ref15 ref8">8,15</xref>
          ]. In
order to test their rules, end users try to reproduce the context in which their
rules have to be tested. Currently, they use di erent strategies to achieve this.
First, when possible, they can act on sensors to trigger the rules they want to
test. This is easy for a button or a motion sensor but not for a thermometer or a
smoke sensor for instance. A second observed strategy is to de ne virtual sensors
when the system supports it. Virtual sensors are not binded to any real sensor
and their values can be set by end users (or a program such as a web service).
This is then easier for end users to change sensors values and to see what rules
are triggered. This approach is also explored by [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. However sometimes these
sensors values are not well known by users. For instance a luminosity sensor
expresses luminosity in lux but this is not easy for end users to mentally map
lux to actual luminosity they perceive or have in mind. As a result, the third
strategy is simply to proceed by "trials and errors" and to wait for the \next
time" the situation will occur.
        </p>
        <p>
          A useful functionality, proposed by a couple of boxes (eeDomus, HomeSeer)
[
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] is the possibility to navigate between rules and their associated devices or
services. This can be used to preventively check what programs and devices are
going to be impacted by a modi cation of the system (e.g. removing a sensor,
adding a new program that controls lights, etc.). In the same vain, AppsGate
system [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] proposes a dependency graph that lets users monitor home states
through relations between devices and programs. This aims to help user to
remember that the state of an entity is modi ed by more than one program, which
may result result in unexpected behavior due to con icting commands.
3.2
        </p>
      </sec>
      <sec id="sec-1-5">
        <title>Automatic and semi-automatic approaches</title>
        <p>
          It is possible to check properties on rules at design time, i.e. when the end user is
specifying them. Cano et al. [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] study the coordination of ECA rules and address
three problems that may occur in programs using ECA paradigm: redundancy,
inconsistency and circularity. Redundancy means that there are two or more
rules in the system which replicate partially or totally a behavior. For instance,
there can exist two rules triggered when the temperature goes below 15 degrees
with the rst rule applying actions A and B and the second rule applying action
A. Inconsistency occurs when contradictory actions are sent to devices. This
can occur if multiple rules are activated at the same time, and their execution
order may render di erent nal states of the system. The example 3, extracted
from [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], illustrates inconsistency with three rules.
        </p>
        <p>ON presence IF true DO lights on
Example 3. ON presence IF true DO TV on</p>
        <p>ON TV light IF TV on DO lights o</p>
        <p>Last, Circularity occurs when rules get activated continuously without
reaching a stable system state that makes them nish their execution. This
happens when the action of a rule implies the trigger of another rule which in
turn, directly or indirectly, triggers the rst rule.</p>
        <p>
          The system proposed by Cano et al. [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] is able to detect the three
aforementioned problems. However it is based on a command line interface, which is
adapted for programmers but not for end users.
        </p>
        <p>
          Manca et al. [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] propose a system that targets end users by o ering them
a graphical user interface. This system aims to detect inconsistencies in rules
although it seems to be limited to direct inconsistencies (when two rules can
be triggered at the same time and apply di erent actions to an actuator). As
mentionned before, it also enables end users to simulate contexts and see how
the system behaves.
        </p>
        <p>
          Last, Zhang et al. [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] describe the Autotap system which enable users users
to specify desired properties for devices and services. These properties are
translated into linear temporal logic and used to produce compliant TAP rules from
scratch and/or repairs existing ones.
4
        </p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Conclusion</title>
      <p>
        Helping end users to de ne and verify their home behavior is challenging. We
have seen that tools exist to automatically ensure that the end users' rules are
consistent, avoid redundancies and circularities [
        <xref ref-type="bibr" rid="ref11 ref2">2,11</xref>
        ]. This is only a rst stage
in ensuring that the rules really encode the expected behavior.
      </p>
      <p>
        Once this stage is reached, the problem is to enable end users to verify how
the smart home behaves. To achieve that, a promising approach is to enable
end users to simulate how the system behave according to simulated sensors and
actuators. This approach is already explored by existing home automation boxes
[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and academic researches such as Manca et al. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>Thus, the existing veri cation approaches enable end users to compare the
home behavior with the expected one (by simulating) and partially to anticipate
unforeseen behaviors (when they are caused by programming errors such as
circularity). Unfortunately, none approach helps to identify the contexts for which
the behavior may not be the expected one or to check poperties on the behavior.</p>
      <p>It is a di cult task for end user to enumerate and de ne all relevant values
of sensors and actuators for which a rule should be tested, even when some of
these values already occurred in the past. A challenge remains to provide a tool
that help end users in providing theses values.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Brackenbury</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Deora</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ritchey</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vallee</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>He</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Littman</surname>
            ,
            <given-names>M.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ur</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>How users interpret bugs in trigger-action programming</article-title>
          .
          <source>In: Proc. CHI</source>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Cano</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Delaval</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rutten</surname>
          </string-name>
          , E.:
          <article-title>Coordination of eca rules by veri cation and control</article-title>
          .
          <source>In: International Conference on Coordination Languages and Models</source>
          . pp.
          <volume>33</volume>
          {
          <fpage>48</fpage>
          . Springer (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Corcella</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Manca</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paterno</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Santoro</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>A visual tool for analysing iot trigger/action programming</article-title>
          .
          <source>In: International Conference on Human-Centred Software Engineering</source>
          . pp.
          <volume>189</volume>
          {
          <fpage>206</fpage>
          . Springer (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Coutaz</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Crowley</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>A rst person experience with enduser development for smart homes</article-title>
          .
          <source>IEEE Pervasive Computing, special issue on Domestic Pervasive Computing</source>
          <volume>15</volume>
          (
          <issue>2</issue>
          ),
          <volume>26</volume>
          {
          <fpage>39</fpage>
          (
          <year>2016</year>
          ). https://doi.org/https://doi.org/10.1109/MPRV.
          <year>2016</year>
          .
          <volume>24</volume>
          , http://ieeexplore.ieee.org/document/7445783/
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Coutaz</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Demeure</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , Ca au, S.,
          <string-name>
            <surname>Crowley</surname>
            ,
            <given-names>J.L.</given-names>
          </string-name>
          :
          <article-title>Early lessons from the development of spok, an end-user development environment for smart homes</article-title>
          .
          <source>In: Proceedings of the 2014 ACM International Joint Conference on Pervasive and Ubiquitous Computing: Adjunct Publication</source>
          . pp.
          <volume>895</volume>
          {
          <fpage>902</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Dautriche</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lenoir</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Demeure</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gerard</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Coutaz</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reignier</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Enduser-development for smart homes: relevance and challenges</article-title>
          .
          <source>In: Proceedings of the Workshop" EUD for Supporting Sustainability in Maker Communities"</source>
          , 4th International Symposium on
          <article-title>End-user Development (IS-EUD)</article-title>
          . p.
          <volume>6</volume>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Davido</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>M.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yiu</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zimmerman</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dey</surname>
            ,
            <given-names>A.K.</given-names>
          </string-name>
          :
          <article-title>Principles of smart home control</article-title>
          .
          <source>In: International conference on ubiquitous computing</source>
          . pp.
          <volume>19</volume>
          {
          <fpage>34</fpage>
          . Springer (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Demeure</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , Ca au, S.,
          <string-name>
            <surname>Elias</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roux</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Building and using home automation systems: a eld study</article-title>
          .
          <source>In: International Symposium on End User Development</source>
          . pp.
          <volume>125</volume>
          {
          <fpage>140</fpage>
          . Springer (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Huang</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cakmak</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Supporting mental model accuracy in trigger-action programming</article-title>
          .
          <source>In: Proceedings of the 2015 ACM International Joint Conference on Pervasive and Ubiquitous Computing</source>
          . pp.
          <volume>215</volume>
          {
          <fpage>225</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Ko</surname>
            ,
            <given-names>A.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Myers</surname>
            ,
            <given-names>B.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aung</surname>
            ,
            <given-names>H.H.</given-names>
          </string-name>
          :
          <article-title>Six learning barriers in end-user programming systems</article-title>
          .
          <source>In: 2004 IEEE Symposium on Visual Languages-Human Centric Computing</source>
          . pp.
          <volume>199</volume>
          {
          <fpage>206</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Manca</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Santoro</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Corcella</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          , et al.:
          <article-title>Supporting end-user debugging of trigger-action rules for iot applications</article-title>
          .
          <source>International Journal of Human-Computer Studies</source>
          <volume>123</volume>
          ,
          <volume>56</volume>
          {
          <fpage>69</fpage>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Mennicken</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vermeulen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huang</surname>
            ,
            <given-names>E.M.:</given-names>
          </string-name>
          <article-title>From today's augmented houses to tomorrow's smart homes: new directions for home automation research</article-title>
          .
          <source>In: Proceedings of the 2014 ACM International Joint Conference on Pervasive and Ubiquitous Computing</source>
          . pp.
          <volume>105</volume>
          {
          <fpage>115</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Pane</surname>
            ,
            <given-names>John F</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>R.C.A.</given-names>
            ,
            <surname>Myers</surname>
          </string-name>
          ,
          <string-name>
            <surname>B.A.</surname>
          </string-name>
          :
          <article-title>Studying the language and structure in non-programmers' solutions to programming problems</article-title>
          .
          <source>International Journal of Human-Computer Studies</source>
          <volume>54</volume>
          (
          <issue>2</issue>
          ),
          <volume>237</volume>
          {
          <fpage>264</fpage>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Paterno</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Santoro</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>A design space for end user development in the time of the internet of things</article-title>
          . In:
          <article-title>New perspectives in end-user development</article-title>
          , pp.
          <volume>43</volume>
          {
          <fpage>59</fpage>
          . Springer (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Terrier</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Demeure</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , Ca au, S.:
          <article-title>Ccbl: a language for better supporting context centered programming in the smart home</article-title>
          .
          <source>Proceedings of the ACM on HumanComputer Interaction 1(EICS)</source>
          ,
          <volume>14</volume>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Truong</surname>
            ,
            <given-names>K.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huang</surname>
            ,
            <given-names>E.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abowd</surname>
          </string-name>
          , G.D.:
          <article-title>Camp: A magnetic poetry interface for end-user programming of capture applications for the home</article-title>
          .
          <source>In: International Conference on Ubiquitous Computing</source>
          . pp.
          <volume>143</volume>
          {
          <fpage>160</fpage>
          . Springer (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Ur</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McManus</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          , Pak Yong Ho,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Littman</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.L.</surname>
          </string-name>
          :
          <article-title>Practical trigger-action programming in the smart home</article-title>
          .
          <source>In: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems</source>
          . pp.
          <volume>803</volume>
          {
          <fpage>812</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>He</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Martinez</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brackenbury</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lu</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ur</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Autotap: Synthesizing and repairing trigger-action programs using ltl properties</article-title>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>