<!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>Smart Home Model Verification with AnimUML (Poster)</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Frédéric Jouault</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ciprian Teodorov</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Matthias Brun</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Angers</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>France</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lab-STICC</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>ENSTA Bretagne Brest</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>France</string-name>
        </contrib>
      </contrib-group>
      <abstract>
        <p>Model verification techniques, such as model checking, generally require relatively advanced expertise. They are therefore typically used in applications where their usefulness is especially appreciated, if not necessary, and can ofset their costs. Critical system design has, for instance, been one of the main consumers of such techniques. They could however bring benefits to many other domains. Development times can be shortened by the drastically reduced number of mistakes in verified design models. Moreover, they can help reduce the number of bugs remaining in shipped products. Lowering barriers to entry for the application of these techniques should therefore have a significant impact. In this work, we show how model checking can be applied to UML models in the smart home context. The models were created with AnimUML, which makes them markedly easier to create than with traditional tools. Furthermore, this tool's direct model analysis support at the UML level makes it relatively simple to verify properties. It was able to detect several corner case issues, which would have been much harder to detect, and especially diagnose, with testing only. Besides being time consuming, testing reaches its fundamental limits, checking what the system should not do. Besides, in the home automation context, the problem is even more complex due to the distributed nature of the problem [1]. The situation can certainly be improved by using formal verification approaches, like model-checking. These techniques, naturally geared towards distributed systems, allow the verification of properties expressing what the system should do, which naturally completes the correctness specification of a system. During the last decade, tremendous progress was achieved on this axis [2, 3], however most of the proposed approaches and tools require a high-degree of sophistication from the home automation designer. Moreover, the marketing target of home automation solutions, like Google Smart Home1, is wide and targets non-expert users. Nevertheless, the modeling community started a push towards lively verification environments [ 4], which enables seamless user interaction during the design and debugging process. The AnimUML environment [5, 6, 7] pushes the frontiers of this approach by allowing not only early debugging of high-level specifications, but also</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;UML</kwd>
        <kwd>model verification</kwd>
        <kwd>smart home</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>formal verification of partial (under development) specifications. This work presents a case
study2 where a LYWSD03MMC3 temperature and humidity sensor is integrated with the Google
Smart Home automation platform using local fulfillment 4. We leverage the capabilities ofered
by AnimUML both to better understand the overall architecture, through lively user-model
interactions, and to allow for the verification of non-trivial properties. The two main limitations
of the approach are the following. 1) Although the tooling significantly helps, it is still necessary
to learn to use AnimUML. 2) In addition to modeling the app, the designer must also model
the behavior of the Smart Home API, and of the device. Regarding the first issue, we plan to
keep improving the tool to make it easier to learn and use. As for the second issue, ideally
manufacturers should provide such models. Moreover, we already provide a reusable Google
Smart Home API model as part of our case study.
2Case study material is available on GitHub at https://github.com/fjouault/SmartHomeCaseStudy.
3https://esphome.io/components/sensor/xiaomi_ble.html#lywsd03mmc
4https://developers.google.com/assistant/smarthome/concepts/local</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Demeure</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Cafiau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Elias</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Roux</surname>
          </string-name>
          ,
          <article-title>Building and Using Home Automation Systems: A Field Study</article-title>
          ,
          <source>in: ISEUD</source>
          <year>2015</year>
          , Madrid, Spain,
          <year>2015</year>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -18425-8\_9.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Souri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Norouzi</surname>
          </string-name>
          ,
          <article-title>A state-of-the-art survey on formal verification of the internet of things applications</article-title>
          ,
          <source>Journal of Service Science Research</source>
          <volume>11</volume>
          (
          <year>2019</year>
          )
          <fpage>47</fpage>
          -
          <lpage>67</lpage>
          . doi:
          <volume>10</volume>
          .1007/ s12927-019-0003-8.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>C.-J. M. Liang</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Bu</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Zhang</surname>
            , S. Han,
            <given-names>B. F.</given-names>
          </string-name>
          <string-name>
            <surname>Karlsson</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Zhao</surname>
          </string-name>
          ,
          <article-title>Systematically debugging iot control system correctness for building automation</article-title>
          ,
          <source>in: Proceedings of the 3rd ACM International Conference on Systems for Energy-Eficient Built Environments</source>
          , BuildSys '16,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery,
          <year>2016</year>
          , p.
          <fpage>133</fpage>
          -
          <lpage>142</lpage>
          . doi:
          <volume>10</volume>
          .1145/2993422.2993426.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>D.</given-names>
            <surname>Ingalls</surname>
          </string-name>
          ,
          <article-title>The lively kernel: Just for fun, let's take javascript seriously</article-title>
          ,
          <source>in: Proceedings of the 2008 Symposium on Dynamic Languages, DLS '08</source>
          ,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery,
          <year>2008</year>
          . doi:
          <volume>10</volume>
          .1145/1408681.1408690.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Besnard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. L.</given-names>
            <surname>Calvar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Teodorov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Brun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Delatour</surname>
          </string-name>
          , Designing, animating, and
          <article-title>verifying partial uml models</article-title>
          ,
          <source>in: Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, MODELS '20</source>
          ,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery,
          <year>2020</year>
          , p.
          <fpage>211</fpage>
          -
          <lpage>217</lpage>
          . doi:
          <volume>10</volume>
          .1145/3365438.3410967.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Sebille</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Besnard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. L.</given-names>
            <surname>Calvar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Teodorov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Brun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Delatour</surname>
          </string-name>
          ,
          <article-title>Animuml as a uml modeling and verification teaching tool</article-title>
          , in: 2021 ACM/IEEE International Conference on Model Driven Engineering Languages and Systems
          <string-name>
            <surname>Companion (MODELS-C)</surname>
          </string-name>
          ,
          <year>2021</year>
          , pp.
          <fpage>615</fpage>
          -
          <lpage>619</lpage>
          . doi:
          <volume>10</volume>
          .1109/MODELS-C53483.
          <year>2021</year>
          .
          <volume>00094</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M.</given-names>
            <surname>Pasquier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Brun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Pérochon</surname>
          </string-name>
          ,
          <article-title>Evaluating tool support for embedded operating system security: An experience feedback</article-title>
          ,
          <source>in: Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings, Association for Computing Machinery</source>
          ,
          <year>2020</year>
          . doi:
          <volume>10</volume>
          .1145/3417990.3420048.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>