=Paper=
{{Paper
|id=Vol-2999/messpaper1
|storemode=property
|title=Towards a Modeling and Analysis Environment for Industrial IoT systems
|pdfUrl=https://ceur-ws.org/Vol-2999/messpaper1.pdf
|volume=Vol-2999
|authors=Felicien Ihirwe,Davide Di Ruscio,Silvia Mazzini,Alfonso Pierantonio
|dblpUrl=https://dblp.org/rec/conf/staf/IhirweRMP21
}}
==Towards a Modeling and Analysis Environment for Industrial IoT systems==
Towards a modeling and analysis environment for industrial IoT systems Felicien Ihirwe1,2 , Davide Di Ruscio2 , Silvia Mazzini1 and Alfonso Pierantonio2 1 Innovation Technology Services Lab, Intecs Solutions S.p.A, Pisa, Italy 2 Department of Information Engineering Computer Science and Mathematics, University of L’Aquila, L’Aquila, Italy Abstract The development of Industrial Internet of Things systems (IIoT) requires tools robust enough to cope with the complexity and heterogeneity of such systems, which are supposed to work in safety-critical conditions. The availability of methodologies to support early analysis, verification, and validation is still an open issue in the research community. The early real-time schedulability analysis can help quan- tify to what extent the desired system’s timing performance can eventually be achieved. In this paper, we present CHESSIoT, a model-driven environment to support the design and analysis of industrial IoT systems. CHESSIoT follows a multi-view, component-based modeling approach with a comprehensive way to perform event-based modeling on system components for code generation purposes employing an intermediate ThingML model. To showcase the capability of the extension, we have designed and analysed an Industrial real-time safety use case. Keywords CHESSIoT, Model-driven engineering, Industrial IoT, Schedulability analysis 1. Introduction The complexity of industrial IoT systems is deemed to increase due to the growing need for data acquisition, processing, and storage techniques. Moreover, the rapid penetration of advanced machine-to-machine communications in cyber-physical systems triggers even more complexity in IoT production systems [1]. The design complexity of such systems has to consider different layers, including the behaviour of the building components, their inter-connectivity, not to mention the message heterogeneity [2, 3]. Model-Driven Engineering (MDE) aims at supporting software development and analysis by promoting the adoption of models as first-class citizens. Performing early analysis on intended systems can help discover how they will behave once deployed. Furthermore, the quantitative results from the conceptual analysis of such systems can provide theoretical support for optimizing system architectures and parameters earlier enough [4]. The challenges present in IoT systems validation and verification (V&V) also poses a significant gap in certifying such International workshop on MDE for Smart IoT Systems (MeSS’21) co-located with STAF2021, Virtual conference, Bergen, Norway. June 21-25, 2021 " felicien.ihirwe@intecs.it (F. Ihirwe); davide.diruscio@univaq.it (D. D. Ruscio); silvia.mazzini@intecs.it (S. Mazzini); alfonso.pierantonio@univaq.it (A. Pierantonio) ~ http://people.disim.univaq.it/diruscio/ (D. D. Ruscio); https://pieranton.io (A. Pierantonio) 0000-0002-4463-6268 (F. Ihirwe); 0000-0002-5077-6793 (D. D. Ruscio); 0000-0002-5231-3952 (A. Pierantonio) © 2021 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). CEUR Workshop Proceedings http://ceur-ws.org ISSN 1613-0073 CEUR Workshop Proceedings (CEUR-WS.org) systems. Different industrial model-driven approaches such as [5, 6, 7, 8] try to cope with such challenges, but we see it as not yet enough. To cope with the complexity and heterogeneity issues at the levels of system design, opera- tional, and deployment, we propose CHESSIoT. CHESSIoT is a multi-view modeling environment to support the design, development, and analysis of industrial IoT systems. Currently, CHESSIoT is being developed on top of the CHESS tool[9], a mature modeling and analysis environment for the development of complex industrial systems [10]. Since the CHESS tool has been developed to meet industrial needs [11], we decided to rely on it to support industrial IoT development. In addition to CHESS, CHESSIoT offers an IoT-specific modeling infrastructure where the user can specify the system’s structural and behavioural architectures, perform different real-time analyses and generate platform-specific code. To guaranty a fully decoupled extension, CHESSIoT introduced the "IoT sub-view", and once applied in all design stages, the user will benefit from a dedicated IoT-specific modeling infrastructure consisting of specific diagrams and palettes. The CHESSIoT methodology follows a component-based approach where all system components and their internal behaviours are decomposed separately. The specified components can be annotated with extra-functional properties for analysis purposes or used to generate platform-specific code. The inner or external events can be defined using component state machines. The development of CHESSIoT is still in its early phases but with very significant progresses concerning its design capabilities. CHESSIoT will benefit from the system model-based verification and validation resources provided by CHESS. Moreover, CHESSIoT employs ThingML tool [12] to generate code. ThingML is a well-proven software modeling tool aligned with UML (state-charts and components) and an imperative platform-independent action language to construct the intended IoT applications [13]. ThingML model can compile and generate code in different languages such as C/C++, Java, JavaScript, Arduino, and Go. In this paper, we overview an industrial IoT real-time safety use case to showcase the current capabilities of CHESSIoT. Interested readers can access the complete source code of the developed extension publicly available on GitHub repository.1 The main contributions of this paper can be summarized as follows: • The CHESSIoT modeling environment to support the development and analysis of indus- trial IoT systems; • Overview of the envisioned CHESSIoT2ThingML transformation that will enable the generation of target platform code. • Description of a simple use-case on industrial real-time safety to showcase the analysis capabilities for the IoT. • Showcase the real-time schedulability analysis that can be performed on the CHESSIoT model of the presented use case. This paper is structured as follows: Section 2 examines the related work. Section 3 gives a concise background of the CHESS and ThingML platforms. Section 4 presents the technical specification of the proposed CHESSIoT extension. Section 5 describes the simple industrial use-case. Lastly, Section 6 concludes the paper and makes an overview of our future work. 1 https://github.com/feliIhirwe/ChessIoT_Dev 2. Related Work Modeling and analysis of the Internet of Things is not a new topic in general, several ap- proaches have already been studied and validated, but few of them focus on the Industrial domain. This section will look briefly at some related research to our system and discuss their differences and correspondences. For the sake of the topic of interest, we will only cover the MDE approaches that extend uses Eclipse Papyrus 2 modeling as an underlying environment. In [14], the CHESS tool has been used to model the life-cycle of scalable and distributed intelligent IoT applications. Although this was a great start towards using CHESS for modeling IoT systems, it is generic considering the specificity of IoT applications. In our approach, we emphasize decoupling the modeling environment for IoT elements to the whole CHESS platform. In [15] the authors presented a Cloud and Model-based IDE for the Internet of Things tool (COMFIT) to target the wireless sensor networks (WSN) applications for IoT. The COMFIT modeling environment is built on top of Papyrus, and it presents a simple multi-view environment to model the system’s requirement, structural and behavioural aspects. Ciccozzi et al. presented the MDE4IoT tool [6] developed to support the modeling of self-adaptation of connected Emergent Configurations (ECs) referred to as Things in the IoT domain. The authors present a simple smart street light case to highlight and validate their approach characterized by the multi-view and separation of concern capability of the MDE4IoT tool. The run-time adaptations are meant to be performed automatically by specific in-place model transformations that modify the source models. Although this approach is closely related to CHESSIoT, the paper still does not address any analysis aspects of the system. In [16] the authors introduced Papyrus4IoT, a modeling tool developed under the S3P project. The authors presented a modeling methodology that uses the UML use case diagrams and early system conceptual system specification requirements. Later the designer can define process specification definition, functional, operational platform, and finally, the deployment is done by allocating the system’s functional blocks to the device processing units. Unlike [16], our emphasis is given on separation of concerns and supporting analysis that has not been addressed in [16]. Conzon et al. [17] have presented the BRAIN-IoT framework, an integrated modeling tool to ease rapid prototyping of intelligent cooperative IoT systems based on shared models. The constructed models are transformed into XML format before being uploaded to the BRAIN-IoT marketplace for future reuse. In [5], the authors introduced UML4IoT domain-specific modeling language to tackle the In- dustrial Automation Thing (IAT) domain. In UML4IoT, the system’s components are transformed into IATs by IoTwrapper and later integrated into the IoT-based industrial automation envi- ronment. The RESTful paradigm is adopted for enhancing the connectivity with third-parties resources. Although their approach focuses more on the industrial use case, it differs from CHES- SIoT concerning the multi-view and analysis support. Authors in [7] introduced a SySML4IoT modeling and analysis platform derived from SysML to support the IoT domain. Following the IoT-A reference architectural reference in [18], the authors introduced the SysML2NuSMV translator. The tool has later been extended by [19] to support the design, and the usage of the public/subscribe paradigm to model the communication relationships with other systems. 2 https://www.eclipse.org/papyrus/ Although the authors suggest the system analysis by considering only the quality of service through model checking, we see it as not sufficient in the industrial IoT domain. From the above discussion, we can see that most of the proposed UML-based modeling approaches for industrial systems focus more on design and code generation; we see a significant lack in the analysis mechanism of IoT systems in general with the industrial case in particular. We think that this is an excellent direction for CHESSIoT to explore to address such challenges. 3. Background The following section gives a brief background on the CHESS tool and the motivation behind its extension. Furthermore, we will briefly present the ThingML tool and its development infrastructure and why it is crucial for CHESSIoT code generation. 3.1. CHESS development environment The CHESS tool is a mature cross-domain model-driven tool developed on top of the Eclipse Papyrus environment to support the modeling and analysis of dependable systems [9]. The CHESSML modeling language provided by CHESS is an integrated modeling language profiled from OMG standard languages: UML, SysML, and MARTE under the Papyrus modeling environ- ment [20]. The CHESSML language was designed to support the component-based development methodology. Emphasis is given to specify the non-functional properties of the modeled compo- nents, including critical properties such as time predictability, isolation, transparency, and other real-time and dependability-related characteristics [14]. CHESS tool provides a multi-view mod- eling environment where each view has its own underlined constraints that enforce its specific privileges on model entities and properties that can be manipulated. Depending on the current stage of the design process, CHESS sub-views are adopted to enhance specific design properties or steps of the current process. Different tools, plugins, and languages have been integrated into CHESS to support model validation, model checking, real-time, and dependability analysis. Even though CHESS has been successfully applied in different application domains such as Avionics [21], Automotive [22], Space [23], Telecommunication [24], and Petroleum [25, 26], its current status does not explicitly provide modeling capabilities for the IoT domain. Consequently, we aim at extending the existing modeling and analysis infrastructure starting from software modeling infrastructure. 3.2. ThingML framework ThingML is amongst the most popular domain-specific model-driven engineering tools for the IoT domain. It comprises a custom textual modeling language, a supporting modeling tool, and advanced code generator capabilities. The ThingML language combines well-proven software modeling constructs aligned with UML (state-charts and components) and an imper- ative platform-independent action language to construct the intended IoT applications [13]. ThingML code generator targets many popular programming languages such as C/C++, Java, and Javascript, and about ten different target platforms (ranging from tiny 8bit microcontrollers to servers) and ten different communication protocols [12]. Several research approaches have been shown interest in applying ThingML as their modeling or code generation framework. To mention a few, in [27] ThingML has been used to generate code for CAPS, an architecture-driven modeling framework for the development of IoT Systems. In [28] ThingML has been used to specify the behaviour of distributed software components, and later it has been extended with mechanisms to monitor and debug the execution flow of a ThingML program. In [29], CyprIoT tool used and extended the ThingML modeling language to model the behaviour of IoT things and as a code generator for platform-specific code. Although ThingML framework is very mature and looks very promising, it can not be one shoe fit for all aspects that involve IoT systems design and development. For instance, the ThingML framework does not provide the means to conduct any system-related analyses that are very important in the Industrial IoT domain. There is also a lack of system-level design and validation in ThingML. CHESSIoT envisions having a consolidated and fully automated environment where users can combine both ThingML and CHESS technologies for industrial IoT systems development. 4. Proposed Approach The CHESSIoT tool has been developed on top of the recently released CHESS 1.0.0 tool [9]. At design time, CHESSIoT enforces that all the components and elements be IoT specific and follows the already existing CHESS modeling methodologies. In particular, systems are specified in terms of a component-based design and employing a multi-view paradigm. The CHESSIoT extension consists of four different profiles depending on the specific view and need for the particular task at hand. As an addition to the domain-specific CHESS views, CHESSIoT adds the IoT sub-view to permit the user to activate services and palettes related to the IoT domain. The CHESSIoT design extensions are available throughout the whole views provided by CHESS as long as the user activates the IoT sub-view from the toolbar. Figure 1 shows the high-level representation of the CHESSIoT extension concerning its development infrastructure, design time, and run-time modeling functionalities. As shown at the top-right of Figure 1 CHESSIoT consists of four profiles that are singularly described as follows. CHESSIoTSystem profile serves to cover the system-level design aspects in which the system’s main blocks and their interconnections are defined. This is done in the CHESS System View invoking the IoT sub-view. As an extension of the SysML blocks, the IoT high-level blocks and their corresponding flow-ports are defined and later annotated with formal properties as contracts. In this regard, the user benefits from the system level validation and verification, contract refinements, parameterized architecture, and trade-off analysis infrastructure, all provided by the CHESS tool. For the sake of the paper scope, we do not cover such aspects in this paper. The CHESSIoTSoftware profile provides users with modeling constructs to describe the IoT software components and their behaviours. The software design is done in the Component view. In this regard, the user can decompose the system’s software components and sub-components provided by specific palettes. In CHESSIoT the component behaviours are defined by using state machines. Figure 2 shows the CHESSIoT software profile meta-model, which consists of the following elements: Figure 1: CHESSIoT approach – The Virtual entity permits the definition of digital representations of physical objects in which the systems resources are allocated. This entity consistently links to its corre- sponding "Physical Entity" to be defined in the deployment view when performing the hardware designs; – The Virtual board enables the specification of IoT computing boards on which the applica- tion will run. This component is a sub-component to VirtualEntity and can be connected or have reference to one or many other virtual boards. The only crucial property it poses is its state which later gets defined; – The "IoTElement" represents any other IoT Thing that comprises a system aside of being a VirtualEntity or a VirtualBoard. The internal software architecture can be specified using other internal sub-elements and the connectors and ports, while their behavioural specifi- cation is defined using custom states, events, and actions. Furthermore, the IoTElements decomposed as IoT system sub-components are then connected to define the system’s main components. To this level, the user can instantiate as many components as possible to meet any system complexity wanted. In CHESSIoT, we have introduced a flexible event-based modeling mechanism. Normally, the UML state machine events and actions modeling process is complex and tricky when done using the normal Papyrus infrastructure. In our case, the IoTEvents and IoTActions can be modeled separately and later be invoked as many times as possible or by many different IoTElements states. An IoTState always should be linked to an "OnEntry" and an "OnExit" events, which in Figure 2: CHESSIoT software meta-model turn can be either generic, incoming, or an outgoing event. The IoTAction element is for sending and receiving payloads, and action types can then be associated with each event in the form of effect. A payload is any type of message exchanged between IoTElements through ports and can be reused as many times as possible. More information on this is also presented in Section 4.1. CHESSIoTHardware profile contains a physical deployment representation of the virtual components designed in Component view. The hardware modeling activities are performed in Deployment View. The hardware design also includes the definition of target platform specifications, such as the number of processors and core units. Most of the elements in this profile rely on MARTE [30]. CHESSIoTOperational profile contains all the information regarding the communication aspects of the system, and it extends the CHESS’s Component View. Ideally, the information related to communication mode, servers, communication protocols, and storage resources will be modeled and analysed using this profile. The purpose of adding this part is to support the performance analysis of the involved resource blocks. In the end, CHESSIoT also will allow the user to generate platform-specific code employing the ThingML platform automatically. Lastly, the user will interact with a remote repository by consuming an open API pushing or pulling artifacts. The high-level description of envisioned CHESSIoT to ThingML model transformation is described in the next section. 4.1. The CHESSIoT to ThingML model transformation Modeling software component in CHESSIoT goes hand in hand with defining its behaviours, resulting in platform-specific code. The CHESSIoT component’s semantics differs from the ThingML’s to some extent, and that is why the mapping of the elements is needed to solicit an efficient transformation. In the following, we discuss how the different CHESSIoT modeling constructs contribute to the generation of target ThingML elements. A component: In CHESSIoT, the software components such as IoTElement, VirtualBoard, VirtualEntity are the main modeling elements. They are used to encapsulate the system’s main part structure, operations, and behaviours. These components are mapped to ThingML’s thing. Provided/Required port: Ports are used to support the communication between two or more components exposing or requiring the interfaces from other components. In CHESSIoT, the component’s messages are passed through the port using the required or provided interface operations. During the transformation, the Required/Provided ports of the components are mapped to the required/provided port of a ThingML’s thing. Operation: In CHESSIoT, operations specify the functional behaviour of components. During the transformation, each component’s operation is mapped to corresponding Thing’s function. Property: Properties represent variable attributes local to a component. The property can be primitive or be an instance of other components. Same as in ThingML, properties are used to retain the variable functional value of a Thing, in which during the transformation, the component’s property will be mapped to thing’s property. Payload: This is a standalone and straightforward object to carry information to be passed between components. The payload will be mapped to a Message in the ThingML model. In CHESSIoT, the payload can have zero or many primitive or derived properties to be defined in a message. IoTState: This serves to keep the component state from its initial participation until its disposal in the system. IoTState extends actual UML states but in addition to that, IoTState carries information related to what events need to be taken care of at a certain point in time. For instance, OnEntry or OnExit events are triggered when entering or exiting a state. An IoT state can also trigger an internal event, which corresponds to an internal action to be taken. During the transformation, the IoTState will be mapped to the ThingML state, same goes to State transition that will also be mapped to their corresponding transition provided by ThingML. IoTEvent: Events in CHESSIoT are triggered in a different manner depending on the state of the component. An IoTvent can be incoming, outgoing, or generic, which means it can come from the inside-out, from the outside, or internal. A GenericEvent is an event that gets triggered internally to the component, for example, changing variable value. CHESSIoT events are mapped to corresponding ThingML event(s). IoTAction: IoTAction(s) can be of different types depending on the kind of action to be per- formed. For instance, the SendPayload action is referred to when an OutgoingEvent is triggered to send the payload through a specified port while ReceivePayload is used on IncomingEvents to receive messages from another components. A GenericAction does not require to access the component’s ports, for example, changing the component’s property value. During the transformation, IoTActions will be mapped to corresponding ThingML actions. State Transition: In CHESSIoT, state transitions enable transiting from the source state to a target state, abiding the trigger from the guard value. Guard expressions are boolean expressions defined based on state values. They serve to initiate a state transition by checking whether the OnExit event has been performed correctly. During the transformation, State transitions will be mapped to the corresponding transitions in ThingML. Table 1 Proposed CHESSIoT2ThingML mapping CHESSIoT element ThingML element Component Thing Provided/required port Provided/required port Operation Function Property Property Payload Message IoTState/Transition State/Transition StateGuards Guards IoTEvent/Action Event/Action 5. A real-time safety use case in the IIoT domain In this section, an explanatory industrial safety use case is modeled and analysed employing the proposed approach. In the example shown in Figure 3, a basic safety system is proposed. The system objective is to gather information through specific nodes deployed into a modern environment to collect environment data, and in case of an unprecedented issue, the system triggers an alarming mechanism to limit further damages. In this example, we do not cover the communication layer and the cloud-side designs. This is deemed to be done using the operational profile, which is currently yet fully developed. Besides that, the analyses being performed will be one on the ThingLayer components. More on this is discussed in Section 5.2. In the following, we present the modeling phases of the proposed system. 5.1. Modeling software components The first step of the proposed approach consists of modeling the node’s main components, corresponding types, and the interfaces they implement. We suppose that the system require- ments have been modeled in CHESS’s requirement view. Modeling the software constructs is done in the component view. Following the approach presented before, the computing board in CHESSIoT is defined as a Virtual board, other devices such as LEDs, sensors, and buzzer are de- fined as IoTElements. As CHESSIoT follows a component-based approach, only one component needs to be defined, and it can be instantiated and reused as many times as possible. A virtual entity is considered as a physical object where the computing node will be deployed. In other words, they won’t implement any interface or perform any action. As described before, the interfaces contain functional operations to be carried out during the communication, and they automatically get applied to the elements that implement them. After defining Component, Figure 3: Physical structure of the simple IoT system ComponentType, Interfaces elements and their corresponding Operations, each component’s internal structure is decomposed. This is done by using the UML composite structure diagram. IoTElemnts such as LED, sensors, and buzzer are considered as sub-components of the Virtual board. The internal structure is specified by defining the component’s required/provided ports with the corresponding interfaces they expose or require. At this stage, CHESSIoT allows mod- eling the component behavioural aspects using the UML state machine. The component’s event, action, and payloads are modeled using the component’s inner class diagram and then linked back to their corresponding states. Note that the IoT sub-view element provided by CHESSIoT needs to be opened here to have the right palette containing the behavioural resources. Figure 4 shows the three different modeling parts of the internal structure of a temperature/humidity sensor. As shown in Fig. 4, temperature/humidity sensors have only one port which provide the IsenseHumTemp interface. The behavioural modeling of it is mainly for code generation purposes. This process has to be done for each defined IoTElements. The next step is to model the node, which is a Virtual board. At this level, the IoTElement can be instantiated as many times as possible to achieve the desired structure of the node. The internal structure of the virtual board can be modeled as shown in Fig. 5. The virtual board also contains required (in red) and provided (in green) ports. The provided ports of the IoTElements have to be connected to their corresponding required ports of the board and vice-versa. The ports in yellow represent a port that provides and require an interface. This can apply to the data communication between the Figure 4: (a)Temp/hum sensor internal structure, (b) State machine, (c) Event, action and payload definition RFModule and the computing board. The same as the other elements, the board’s behavior specification has to be defined too, but we won’t present it for the sake of space. The virtual entity comprises as many virtual board instances as possible and one or more power source instances. In our case, we used four board instances with one power source. The next stage involves specifying different physical characteristics of the target platform, such as the number of processors and number of cores. This part extends the MARTE profile typically and this is done in CHESS’s deployment view. In our case, the system will be deployed to one Physical entity which will comprise four different processors. Three of the processors will run on one core each, while the fourth runs on two cores. This process is performed in Deployment view. At this stage, we generated the software and hardware instances that contain the containers and connectors representing components instances and their connectors. 5.2. Real-time schedulability analysis CHESS tool offers the means to perform real-time analyses on the modeled instance model. Schedulability analysis is performed employing MAST [31], a timing analysis tool that relies on the system’s component timing requirements. To perform such analysis, the user needs to annotate the real-time temporal logic properties on each component’s operations. Those properties include the timing request type (i.e., periodic or sporadic), the worst-case execution time of a request, the priority, and the desired execution deadline. This activity is performed in the CHESS’s InstanceView. CHESS also supports the software to hardware component allocation, Figure 5: Virtual board internal structure Figure 6: Schedulability Figure 7: Schedulability results (NOT OK) results ( OK) which includes allocating components to processor cores. In our case, each node is allocated to one processor running on a single core, except for the second processor, which had two cores and can accommodate two nodes. For analysis purposes, we have allocated the battery unit to one processor running on one core also. In the Analysis View, we can now specify the analysis context, which will contain the software- hardware instance specifications to run the schedulability analysis. The schedulability results indicated in Fig. 6 show that the system cannot be schedulable due to the excess memory utilization according to the specified real-time properties. We can also observer that the timing deadline constraint specified is a way less than the response time. In this case, when the deadline is increased, the execution time also increases, amplifying the response time exponentially as more components are still waiting to respond to a given request. To make the system schedulable, we have reduced the worst-case execution time by 70% and fixed the deadline for all operations to 100milliseconds. We have also separated the nodes from running on the same processor and deploy the battery unit to the second processor’s second core. As presented in Fig. 7, the system has now become schedulable. Given the schedulability information presented above, we can now know how we may go ahead with the real-case deployment e.g., by having a clear picture of processor types or core counts. Another helpful information we can account too is the event deadlines specifications. In our example, the SendPayload action is periodic, and it is deemed to be sent every 200ms (refer to figure 4), which is perfectly fine because each action in the system needs an average of 100ms to be schedulable. 6. Conclusion and future work Developing Industrial IoT systems has to cope with several challenges, ranging from the heterogeneity in different players to the types of transferred messages. This paper has proposed the CHESSIoT extension covering the Industrial IoT domain on top of the already existing CHESS tool. CHESS is known for its success in modeling and analysis of industrial system engineering applications. We have presented an envisioned mapping from the CHESSIoT model to the ThingML model to support the code generation later. Finally, we showed a modeling and analysis example of a real-time safety use case to validate the current capabilities of the extension. To enhance the scalability of our approach, in our plans, we would like to explore to possibilities of combining the graphical modeling with a textual-based interface. We would also want to extend different real-time and dependability analyses provided by CHESS to cover the CHESSIoT approach taking care of IoT-specific aspects in the analysis processes. ThingML platform is compelling, but as we have seen, there are still other essential aspects it can’t cover now, for example, concerning model checking and analysis. In our plans, we would like to fully automate the ThingML code generation process from CHESS, in which the platform-specific code generation will be complied and generated directly from the CHESSIoT environment. In the future, we would also like to explore the possibility of exposing the analysis infrastructure so that any external user can consume the tool remotely by consuming an open API. Acknowledgments This work has received funding from the Lowcomote project under European Union’s Horizon 2020 research and innovation program under the Marie Skłodowska-Curie grant agreement n° 813884. References [1] L. Freund, S. Al-Majeed, Modeling industrial iot system complexity, in: 2020 3ICT, 2020, pp. 1–5. doi:10.1109/3ICT51146.2020.9311942. [2] A. Gómez, M. Iglesias-Urkia, A. Urbieta, J. Cabot, A model-based approach for devel- oping event-driven architectures with asyncapi, in: Proceedings of the 23rd ACM/IEEE MODELS’20, 2020, p. 121–131. doi:10.1145/3365438.3410948. [3] J. Venkatesh, B. Aksanli, C. S. Chan, A. S. Akyürek, T. S. Rosing, Scalable-application design for the iot, IEEE Software 34 (2017) 62–70. doi:10.1109/MS.2017.4. [4] J. Huang, S. Li, Y. Chen, J. Chen, Performance modeling and analysis for iot services, International Journal of Web and Grid Services 14 (2018) 146. doi:10.1504/IJWGS.2018. 090742. [5] K. Thramboulidis, F. Christoulakis, UML4IoT—A UML-based approach to exploit IoT in cyber-physical manufacturing systems, Computers in Industry 82 (2016) 259–272. doi:https://doi.org/10.1016/j.compind.2016.05.010. [6] F. Ciccozzi, R. Spalazzese, Mde4iot: Supporting the internet of things with model- driven engineering, in: Intelligent Distributed Computing X, 2017. doi:10.1007/ 978-3-319-48829-5_7. [7] B. Costa, P. F. Pires, F. C. Delicato, Modeling iot applications with sysml4iot, in: 2016 42th SEAA, 2016, pp. 157–164. doi:10.1109/SEAA.2016.19. [8] B. Costa, P. F. Pires, F. C. Delicato, W. Li, A. Y. Zomaya, Design and analysis of iot appli- cations: A model-driven approach, in: 2016 IEEE 14th DASC,14th PiCom, 2nd DataCom, 2016, pp. 392–399. doi:10.1109/DASC-PICom-DataCom-CyberSciTec.2016.81. [9] A. Debiasi, F. Ihirwe, P. Pierini, S. Mazzini, S. Tonetta, Model-based analysis support for dependable complex systems in CHESS, in: Proceedings of the 9th MODELSWARD, 2021, February 8-10, 2021, SCITEPRESS, 2021, pp. 262–269. doi:10.5220/0010269702620269. [10] A. Cicchetti, F. Ciccozzi, S. Mazzini, S. Puri, M. Panunzio, A. Zovi, T. Vardanega, CHESS: a model-driven engineering tool environment for aiding the development of complex industrial systems, in: IEEE/ACM, ASE’12, Essen, Germany, September 3-7, 2012, ACM, 2012, pp. 362–365. doi:10.1145/2351676.2351748. [11] L. Baracchi, S. Mazzini, S. Puri, T. Vardanega, Lessons learned in a journey toward correct- by-construction model-based development, in: 21st Ada-Europe conference, Pisa, Italy, June 13-17, 2016, Proceedings, volume 9695 of Lecture Notes in Computer Science, Springer, 2016, pp. 113–128. doi:10.1007/978-3-319-39083-3_8. [12] N. Harrand, F. Fleurey, B. Morin, K. E. Husa, Thingml: A language and code generation framework for heterogeneous targets, in: In the ACM/IEEE 19th MODELS’16, 2016, p. 125–135. doi:10.1145/2976767.2976812. [13] F. Ihirwe, D. Di Ruscio, S. Mazzini, P. Pierini, A. Pierantonio, Low-code engineering for internet of things: A state of research, in: In the 23rd ACM/IEEE MODELS’20: Companion Proceedings, MODELS ’20, 2020. doi:10.1145/3417990.3420208. [14] S. Mazzini, J. M. Mavaro, L. Baracchi, A model-based approach across the iot lifecycle for scalable and distributed smart applications, in: IEEE 18th ITSC, 2015, Gran Canaria, Spain, September 15-18, 2015, IEEE, 2015, pp. 149–154. doi:10.1109/ITSC.2015.33. [15] C. M. de Farias, I. C. B. et al, Comfit: A development environment for the internet of things, Future Generation Computer Systems 75 (2017) 128 – 144. doi:https://doi.org/10. 1016/j.future.2016.06.031. [16] S. Dhouib, A. Cuccuru, F. L. Fèvre, S. Li, B. Maggi, I. Paez, A. Rademarcher, N. Rapin, J. Tatibouet, P. Tessier, S. Tucci, S. Gerard, Papyrus for IoT – a modeling solution for IoT, 2016. [17] D. Conzon, M. R. A. Rashid, X. Tao, A. Soriano, R. Nicholson, E. Ferrera, Brain-iot: Model- based framework for dependable sensing and actuation in intelligent decentralized iot systems, in: 2019 4th ICCCS, IEEE, 2019, pp. 1–8. [18] A. Bassi, M. Bauer, M. Fiedler, R. van Kranenburg, S. Lange, S. Meissner, T. Kramp, Enabling things to talk, Springer Nature, 2013. [19] M. Hussein, S. Li, A. Radermacher, Model-driven development of adaptive IoT systems, in: 2017 MODELS Satellite Event, volume 2019, Austin, United States, 2017, pp. 17–23. [20] S. Gérard, C. Dumoulin, P. Tessier, B. Selic, Papyrus: A UML2 tool for domain-specific language modeling, volume 6100 of Lecture Notes in Computer Science, Springer, 2007, pp. 361–368. doi:10.1007/978-3-642-16277-0_19. [21] W. Godard, G. Nelissen, Model-based design and schedulability analysis for avionic applications on multicore platforms, Ada User Journal 37 (2016) 157–163. [22] L. Bressan, A. L. de Oliveira, L. Montecchi, B. Gallina, A systematic process for applying the chess methodology in the creation of certifiable evidence, in: EDCC, 2018, pp. 49–56. [23] L. Pace, M. Pasquinelli, D. Gerbaz, J. Fuchs, V. Basso, S. Mazzini, L. Baracchi, S. Puri, M. Lassalle, J. Viitaniemi, Model-based approach for the verification enhancement across the lifecycle of a space system, in: INCOSE CIISE2014, 2014. [24] S. Mazzini, The concerto project: An open source methodology for designing, deploying, and operating reliable and safe cps systems, Ada User Journal 36 (2015) 264–267. [25] B. Gallina, E. Sefer, A. Refsdal, Towards safety risk assessment of socio-technical systems via failure logic analysis, in: ISSRE Workshops, 2014, pp. 287–292. [26] L. Montecchi, B. Gallina, Safeconcert: A metamodel for a concerted safety modeling of socio-technical systems, in: MBSA, 2017, pp. 129–144. [27] M. Sharaf, M. Abusair, R. Eleiwi, Y. Shana’a, I. Saleh, H. Muccini, Modeling and code generation framework for iot, in: System Analysis and Modeling. Languages, Methods, and Tools for Industry 4.0, 2019, pp. 99–115. [28] N. Ferry, et al, Development and operation of trustworthy smart iot systems: The enact framework, in: Software Engineering Aspects of Continuous Development and New Paradigms of Software Production and Deployment, 2020, pp. 121–138. [29] I. Berrouyne, M. Adda, J.-M. Mottu, J.-C. Royer, M. Tisi, Cypriot: framework for modeling and controlling network-based iot applications, in: In 34th ACM/SIGAPP Symposium on Applied Computing, 2019, pp. 832–841. [30] M. Faugere, T. Bourbeau, R. d. Simone, S. Gerard, Marte: Also an uml profile for modeling aadl applications, in: 12th IEEE ICECCS 2007, 2007, pp. 359–364. doi:10.1109/ICECCS. 2007.29. [31] M. Gonzalez Harbour, J. J. Gutierrez Garcia, J. C. Palencia Gutierrez, J. M. Drake Moy- ano, Mast: Modeling and analysis suite for real time applications, in: Proceedings 13th Euromicro Conference on Real-Time Systems, 2001, pp. 125–134. doi:10.1109/EMRTS. 2001.934015.