"Low-code Engineering for the Internet of Things". By
, and Simone Gianfranceschi. Available at:
Abstract
Full text
The Internet of Things (IoT) technologies are often seen as the main drivers of the current technological revolution, which devotes the most priority to improving the well-being of humanity. IoT is typically regarded as a powerful network of systems that integrates several heterogeneous and independently networked devices working together to achieve a shared purpose. Engineering such systems requires efficient tools to deal with the intrinsic complexities while offering means to increase system reliability by limiting future repair costs. Low-Code Development Platforms (LCDPs) unravel the opportunities to advance the simplicity of how new applications are developed in different business application domains. However, in the IoT domain, systems are complex, multi-layered, and highly heterogeneous in all aspects, not to mention the large amount of data being collected and processed concurrently. Even though there is a convenient push toward coping with such complexities, there still needs to be a massive gap regarding the actual development techniques that support early system analysis, deployment, and run-time management. Low-Code Engineering (LCE), on the other hand, aims to tackle such issues by extending the development knowledge present in LCDPs to a more sophisticated era of "Low-Code Engineering Platforms (LCEPs)" by injecting into it the theoretical and technical concepts present in Model-Driven Engineering (MDE), Cloud Computing, and Machine Learning. These platforms target more sophisticated domains such as IoT, industrial automation, data science, recommender systems, etc. This dissertation addresses such challenges by first presenting the current state of the art of Low-Code Engineering Platforms (LCEPs), which gives a better understanding of what LCEPs are and their differences with respect to existing LCDPs, particularly in the IoT domain. We also highlight how MDE plays a significant role in the LCE's evolution. Then, we examine the current limitations, open challenges, and opportunities of existing IoT Engineering platforms in realizing such an initiative. While evaluating the quality of such complex platforms could be challenging, we propose the software product quality model for evaluating the static and dynamic quality properties of such engineering platforms.
The complexity behind the automated realization of IoT systems can be extremely daunting. One efficient approach is to adopt Domain-Specific Languages (DSLs). DSLs are tailored to the specific domain to pave the way for the domain experts to define the system's behavior based on their expertise. This dissertation presents CHESSIoT, a platform that integrates high-level visual DSLs, software development, safety analysis, and deployment mechanisms for engineering multi-layered IoT systems. With CHESSIoT, users may conduct various engineering tasks on system and software models to enable earlier decision-making. This is achieved in a unique environment that combines multi-staged designs, most notably the system-level, functional, and deployment architectures. The physical architecture specifically contains the high-level system building blocks and their interconnections suitable to perform both early qualitative and quantitative safety analysis by employing logical Fault-Trees (FTs).
On the other hand, the software model is equipped with the system's functional behavior suitable for generating platform-specific code ready to be deployed on low-level IoT device nodes. Additionally, the framework supports modeling of the system's deployment, which would ultimately be used to generate deployment artifacts. To facilitate run-time management of deployed services, the tool offers means for defining run-time service provisioning modules through which deployment rules are defined and configured. To demonstrate the effectiveness of our proposed approach, throughout this dissertation, different comparative assessment was conducted to highlight the potential contribution of our approach in relation to existing approaches. Finally, we used the implications from the conducted research studies as well as experiments from running examples to tackle potential research questions as well as demonstrate the capabilities of our supporting tool.