Smart Block: A visual block language and its programming environment for IoT

被引:17
作者
Bak, Nayeon [1 ]
Chang, Byeong-Mo [1 ]
Choi, Kwanghoon [2 ]
机构
[1] Sookmyung Womens Univ, Cheongpa Ro 47-100, Seoul 04310, South Korea
[2] Chonnam Natl Univ, Yongbong Ro 77, Gwangju 61186, South Korea
基金
新加坡国家研究基金会;
关键词
Visual block language; IoT; SmartThings; SmartApp ECA rule; IoTa; Blockly;
D O I
10.1016/j.cola.2020.100999
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
A visual block programming language allows users to make their own programs by dragging and dropping graphic blocks rather than by writing the program. This enables users who are not proficient in programming to create programs easily. Although existing studies have applied this idea to programming Internet of things (IoT) applications, existing visual language tools have certain limitations in terms of expressiveness, extensibility, and error prevention. In this paper, we propose a visual block language called Smart Block for SmartThings home automation, together with a visual programming environment that supports the three properties. We designed the visual block language based on the Internet of things automation (IoTa) calculus, a core calculus for IoT automation that generalizes event-condition-action (ECA) rules. Each ECA rule specifies that when an event occurs, and if a condition is met, a certain action is performed. Smart Block supports writing IoT applications in the ECA style and is implemented with Google Blockly, a client-side JavaScript library for creating visual block languages. Smart Block can help users develop reliable SmartApps by checking for redundancy, inconsistency, and circularity in the ECA rules before generating the code. We demonstrate that Smart Block can build 54 out of 56 (96.4%) of the SmartApps provided by the official SmartThings IDE. Furthermore, a user study with 33 participants shows that our approach, based on the foundation of the IoTa calculus, is understandable for users.
引用
收藏
页数:19
相关论文
共 16 条
[1]  
[Anonymous], 2020, BLOCKLY LIB BUILDING
[2]   SmartVisual: a visualisation tool for SmartThings IoT Apps using static analysis [J].
Bak, Na-Yeon ;
Chang, Byeong-Mo ;
Choi, Kwanghoon .
IET SOFTWARE, 2020, 14 (04) :411-422
[3]   Smart Block: A Visual Programming Environment for SmartThings [J].
Bak, Nayeon ;
Chang, Byeong-Mo ;
Choi, Kwanghoon .
2018 IEEE 42ND ANNUAL COMPUTER SOFTWARE AND APPLICATIONS CONFERENCE (COMPSAC 2018), VOL 2, 2018, :32-37
[4]  
Blackwell Alan, 2003, HCI Models, Theories, and Frameworks: Toward an Interdisciplinary Science, P103
[5]  
Celik ZB, 2018, PROCEEDINGS OF THE 2018 USENIX ANNUAL TECHNICAL CONFERENCE, P147
[6]  
Corno Fulvio, 2019, End-User Development. 7th International Symposium, IS-EUD 2019. Proceedings: Lecture Notes in Computer Science (LNCS 11553), P18, DOI 10.1007/978-3-030-24781-2_2
[7]  
Corno F., 2019, P 2019 CHI C HUM FAC, P388
[8]   A high-level semantic approach to End-User Development in the Internet of Things [J].
Corno, Fulvio ;
De Russis, Luigi ;
Roffarello, Alberto Monge .
INTERNATIONAL JOURNAL OF HUMAN-COMPUTER STUDIES, 2019, 125 :41-54
[9]  
Fogli D., INT C DISTR AMB PERV, P69
[10]   Graphical Programming Environments for Educational Robots: Open Roberta - Yet another One? [J].
Jost, Beate ;
Ketterl, Markus ;
Budde, Reinhard ;
Leimbach, Thorsten .
2014 IEEE INTERNATIONAL SYMPOSIUM ON MULTIMEDIA (ISM), 2014, :381-386