Abstract
A common problem in the development of Internet-of-Things (IoT) and Cyber-Physical System (CPS) applications is the complexity of these domains, due to their hybrid and distributed nature in multiple layers (hardware, network, communication, application etc.). Apart from other issues, this inherent complexity often gives room for implementation errors, which can be in many cases fatal and drive the application and/or the system to undesired states. The current work aspires to alleviate this problem by introducing a low-code approach for building IoT and CPS applications. We argue that, through the proposed approach it is possible to lower development time and risk (errors/bug-related ones) and allow a wide range of end-users to build and monitor applications for state-of-the-art domains, such as smart home and smart industry. In this context, Model-Driven Engineering (MDE) approaches are explored and SmAuto, a Domain-specific Language (DSL) is proposed for creating and executing automation tasks for smart environments. Through SmAuto it is possible to handle the heterogeneity and complexity issues of the IoT and CPS domains, this way allowing end-users are non-technical application experts to build well-designed and properly functioning smart applications. The proposed DSL implements a Sense-Think-Act-Communicate model for smart environments and enables the creation, validation, and dynamic execution of composite automation models in physical, virtual and hybrid environments, while it also enables automated code generation of virtual entities for verification purposes. By using layered abstractions to automate the development process, end-users can concentrate on the real problem instead of dwelling into technical details, thus increasing their productivity. The results of the empirical evaluation and the comparison to existing approaches show that SmAuto can make application development more rigorous, improves productivity of end-users including non-experts, i.e. citizen developers and satisfies several functional and non-functional requirements of modern DSLs, such as tool support, modular deployment, reusability, availability and extensibility.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.