Systematically Debugging IoT Control System Correctness for Building Automation

Advances and standards in Internet of Things (IoT) have simplified the realization of building automation. However, non-expert IoT users still lack tools that can help them to ensure the underlying control system correctness: user-programmable logics match the user intention. In fact, non-expert IoT users lack the necessary know-how of domain experts. This paper presents our experience in running a building automation service based on the Salus framework. Complementing efforts that simply verify the IoT control system correctness, Salus takes novel steps to tackle practical challenges in automated debugging of identified policy violations, for non-expert IoT users. First, Salus leverages formal methods to localize faulty user-programmable logics. Second, to debug these identified faults, Salus selectively transforms the control system logics into a set of parameterized equations, which can then be solved by popular model checking tools or SMT (Satisfiability Modulo Theories) solvers. Through office deployments, user studies, and public datasets, we demonstrate the usefulness of Salus in systematically debugging the correctness of IoT control systems for building automation.

[1]  Roderick Bloem,et al.  Automated Fault Localization for C Programs , 2007, V&D@FLoC.

[2]  Thomas A. Henzinger,et al.  The theory of hybrid automata , 1996, Proceedings 11th Annual IEEE Symposium on Logic in Computer Science.

[3]  Blase Ur,et al.  Practical trigger-action programming in the smart home , 2014, CHI.

[4]  Rupak Majumdar,et al.  Cause clue clauses: error localization using maximum satisfiability , 2010, PLDI '11.

[5]  Alessandro Orso,et al.  Are automated debugging techniques actually helping programmers? , 2011, ISSTA '11.

[6]  Thomas A. Henzinger,et al.  HYTECH: a model checker for hybrid systems , 1997, International Journal on Software Tools for Technology Transfer.

[7]  Marco Pistore,et al.  Nusmv version 2: an opensource tool for symbolic model checking , 2002, CAV 2002.

[8]  Sumi Helal,et al.  A device-centric approach to a safer internet of things , 2011, NoME-IoT '11.

[9]  Andreas Zeller,et al.  Self-Repairing Programs (Dagstuhl Seminar 11062) , 2011, Dagstuhl Reports.

[10]  Zhao Li,et al.  SIFT: building an internet of safe things , 2015, IPSN.

[11]  Xin Chen,et al.  Toward online hybrid systems model checking of cyber-physical systems' time-bounded short-run behavior , 2011, SIGBED.

[12]  Rolf H. Weber Liability in the Internet of Things , 2017 .

[13]  Jörg Hähner,et al.  TinyCubus: a flexible and adaptive framework sensor networks , 2005, Proceeedings of the Second European Workshop on Wireless Sensor Networks, 2005..

[14]  Marsha Chechik,et al.  A framework for counterexample generation and exploration , 2005, International Journal on Software Tools for Technology Transfer.

[15]  Ilan Beer,et al.  Explaining counterexamples using causality , 2009, Formal Methods in System Design.

[16]  Jyotirmoy V. Deshmukh,et al.  Automatic Generation of Local Repairs for Boolean Programs , 2008, 2008 Formal Methods in Computer-Aided Design.

[17]  Stefan Saroiu,et al.  An Operating System for the Home , 2012, NSDI.

[18]  Roderick Bloem,et al.  Finding and fixing faults , 2005, J. Comput. Syst. Sci..

[19]  Nachum Dershowitz,et al.  A Scalable Algorithm for Minimal Unsatisfiable Core Extraction , 2006, SAT.

[20]  Ratul Mahajan,et al.  Systematically Exploring the Behavior of Control Programs , 2015, USENIX Annual Technical Conference.

[21]  Mark W. Newman,et al.  Providing an Integrated User Experience of Networked Media, Devices, and Services through End-User Composition , 2009, Pervasive.

[22]  Sirajum Munir,et al.  DepSys: Dependency aware integration of cyber-physical systems for smart homes , 2014, 2014 ACM/IEEE International Conference on Cyber-Physical Systems (ICCPS).

[23]  Alex Groce,et al.  Error explanation with distance metrics , 2004, International Journal on Software Tools for Technology Transfer.

[24]  Brad A. Myers,et al.  Studying the language and structure in non-programmers' solutions to programming problems , 2001, Int. J. Hum. Comput. Stud..

[25]  Nikolai Tillmann,et al.  Parameterized unit tests , 2005, ESEC/FSE-13.

[26]  Yang Yu,et al.  Supporting concurrent applications in wireless sensor networks , 2006, SenSys '06.

[27]  Marco Pistore,et al.  NuSMV 2: An OpenSource Tool for Symbolic Model Checking , 2002, CAV.

[28]  Thomas Ball,et al.  Modular and verified automatic program repair , 2012, OOPSLA '12.

[29]  Mayur Naik,et al.  From symptom to cause: localizing errors in counterexample traces , 2003, POPL '03.

[30]  Carlo Maria Medaglia,et al.  An Overview of Privacy and Security Issues in the Internet of Things , 2010 .

[31]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[32]  Emina Torlak,et al.  Angelic debugging , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[33]  Stefan Saroiu,et al.  Home automation in the wild: challenges and opportunities , 2011, CHI.