当前位置: X-MOL 学术J. Comput. Lang. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Smart Block: A visual block language and its programming environment for IoT
Journal of Computer Languages ( IF 1.7 ) Pub Date : 2020-09-11 , DOI: 10.1016/j.cola.2020.100999
Nayeon Bak , Byeong-Mo Chang , Kwanghoon Choi

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.



中文翻译:

Smart Block:一种用于物联网的可视化块语言及其编程环境

可视块编程语言允许用户通过拖放图形块而不是编写程序来制作自己的程序。这使不熟练编程的用户可以轻松地创建程序。尽管现有研究已将此思想应用于物联网(IoT)应用程序的编程,但现有的可视语言工具在表达性,可扩展性和错误预防方面存在某些限制。在本文中,我们提出了一种称为Smart Block for SmartThings家庭自动化的可视块语言,以及一种支持这三个属性的可视编程环境。我们基于物联网自动化(IoTa)演算设计了可视化块语言,物联网自动化演算是IoT自动化的核心演算,它概括了事件条件操作(ECA)规则。每个ECA规则都指定当事件发生时,如果满足条件,则执行特定操作。Smart Block支持以ECA风格编写IoT应用程序,并通过Google Blockly(一种用于创建可视块语言的客户端JavaScript库)实现。Smart Block可通过在生成代码之前检查ECA规则中的冗余,不一致和循环性来帮助用户开发可靠的SmartApp。我们证明了Smart Block可以在官方SmartThings IDE提供的56个SmartApp中构建54个(96.4%)。此外,一项包含33名参与者的用户研究表明,基于IoTa演算的我们的方法对于用户而言是可以理解的。Smart Block支持以ECA风格编写IoT应用程序,并通过Google Blockly(一种用于创建可视块语言的客户端JavaScript库)实现。Smart Block可通过在生成代码之前检查ECA规则中的冗余,不一致和循环性来帮助用户开发可靠的SmartApp。我们证明了Smart Block可以在官方SmartThings IDE提供的56个SmartApp中构建54个(96.4%)。此外,一项包含33名参与者的用户研究表明,基于IoTa演算的我们的方法对于用户而言是可以理解的。Smart Block支持以ECA风格编写IoT应用程序,并通过Google Blockly(一种用于创建可视块语言的客户端JavaScript库)实现。Smart Block通过在生成代码之前检查ECA规则中的冗余,不一致和循环性,可以帮助用户开发可靠的SmartApp。我们证明了Smart Block可以在官方SmartThings IDE提供的56个SmartApp中构建54个(96.4%)。此外,一项包含33名参与者的用户研究表明,基于IoTa演算的我们的方法对于用户而言是可以理解的。我们证明了Smart Block可以在官方SmartThings IDE提供的56个SmartApp中构建54个(96.4%)。此外,一项包含33名参与者的用户研究表明,基于IoTa演算的我们的方法对于用户而言是可以理解的。我们证明了Smart Block可以在官方SmartThings IDE提供的56个SmartApp中构建54个(96.4%)。此外,一项包含33名参与者的用户研究表明,基于IoTa演算的我们的方法对于用户而言是可以理解的。

更新日期:2020-09-11
down
wechat
bug