Model-driven Development of Adaptive IoT Systems Mahmoud Hussein1,2, Shuai Li, and Ansgar Radermacher 1 CEA, LIST, Laboratory of Model Driven Engineering for Embedded Systems, P.C. 174, Gif-sur-Yvette, 91191, France 2 Faculty of Computers and Information, Menofia University, Egypt {mahmoud.hussein, shuai.li, and ansgar.radermacher}@cea.fr, mahmoud.hussein@ci.menofia.edu.eg Abstract- There is an increasing demand for software systems used to generate the system implementation. To do so, the that utilize the new Internet of Things (IoT) paradigm to provide design model is transformed to an IoT platform specific model, users with the best functionalities, through transforming objects which is then used for generating the code. Finally, this code is from traditional to smart ones. In recent years, a number of deployed to a hardware platform to have a fully functioning approaches have been proposed to enable the development of such software system. IoT systems. However, developing IoT systems that adapt at runtime is still a major challenge. In this paper, we propose a To show the applicability of our approach, we have used it model-driven approach to ease the modeling and realization of to develop a smart lighting system in the context of the S3P adaptive IoT systems. First, to model an IoT system, we adopted project (Smart, Safe and Secure Platform, see [10]). The system SysML4IoT (an extension of the SysML) to specify the system hardware platform has temperature and luminosity sensors, a functions and adaptations. We also adopted a publish/subscribe light strip, an Edison board [11] that has a data distribution paradigm to model environment information and its relationship service (DDS), i.e., Java implementation of publish/subscribe with the system. Second, based on the system design model, code paradigm [12], and a board with the MicroEJ operating system is generated which is deployed later on to the hardware platform [13]. At runtime, our approach also supports the synchronization of the system. To show our approach applicability, we have between the lighting system execution and its design, through developed a smart lighting system in the context of the S3P project. reflecting the system state to its design model. Keywords- IoT Systems; Adaptive Software; Model-driven; Publish- The remainder of the paper is organized as follows. A short Subscribe Paradigm description of related work is given in Section II. Our approach I. INTRODUCTION for designing an adaptive IoT software system and generating Recently, a growing number of objects have been connected its implementations is described in Section III. In Section IV, we to the internet for realizing the idea of Internet of Things (IoT) present our approach implementation. Finally, we conclude the in a number of domains such as smart homes, transportation, paper in Section V. healthcare, industrial automation, etc. [1]. In these domains, the IoT paradigm transforms objects from traditional to smart ones II. RELATED WORK to provide end users with functions and qualities of IoT systems. Such systems need to be adapted at runtime to take the The work introduced in this paper is related to developing environment changes into account [2]. A major challenge is how IoT and adaptive systems. In the following, we describe related to develop such adaptive IoT software systems [3]. work from these two angles. In recent years, a number of approaches have been proposed A. Developing IoT Systems to ease the development of IoT systems (e.g. [1], [4], [5], and Patel and Cassou have proposed an approach to ease the [6]). However, these approaches do not enable runtime development of IoT systems [1]. In this approach, the different adaptation of IoT systems while they are in operation. In system concerns are separated by a development methodology addition, some of the existing approaches focus only on one which is implemented through a development framework. This development phase (e.g. analysis [4] or deployment [6]). Thus, framework supports stakeholder actions to develop, deploy, and there is a need for an approach that fully supports the maintain an IoT system. It provides a set of modelling languages development of adaptive IoT software systems. for specifying each development concern and to abstract the complexity related to the system heterogeneity and scale. The In this paper, we propose a model-driven approach to ease approach also provides automation through code generation that the development of the adaptive IoT systems. First, based on the allows stakeholders to focus on the system’s functional logic system requirements, a design model is specified. This model while the task mapping and linking techniques produce a device- captures the system functionality and adaptations. The specific code that results in a distributed system hosted by the functionality is modelled using an extension of SysML [7] for individual devices. capturing IoT concepts (i.e. SysML4IoT) [4], while the environment information needed by the system are modelled The approach proposed by Costa et al. aims to design IoT following a publish/subscribe pattern [8]. To model the system systems and verify their QoS properties [4]. To model the adaptations, a state machine approach is adopted [9]. The system, they have introduced SysML4IoT, a SysML profile machine states represent the different configurations of the based on the IoT reference architecture model [14]. They also system, while the transitions represent its adaptation triggers proposed a model-to-text translator called SysML2NuSMV. It converts an IoT model to a NuSMV (symbolic model verifier) (i.e. the pre-conceived changes to which the system can adapt) program automatically [15]. Using the SysML4IoT, elements of such as concrete hardware failures. Second, the design model is the system and their properties can be precisely identified by information is then processed, so that it can be used by the software engineers. The engineers are also able to verify system system functionality. properties without modifying the system model (i.e., to keep its precision and alignment with the IoT reference model). The The MUSIC project is a component-based framework that is approach also does not require any profound knowledge about used to optimize the system overall utility in response to the NuSMV programs from the engineers. context changes [21]. They have a quality of service (QoS) model that describes the system composition together with the A model-driven approach for improving the reusability and relevant QoS dimensions, and how they are affected when the flexibility of sensor software systems, called FRASAD system changes from one configuration to another. The quality (FRAmework for Sensor Application Development), has been of service model is used for selecting a new configuration that proposed in [5]. In this approach, the system is described using has the best utility and is able to cope with the context changes. a rule-based model and a Domain Specific Language (DSL). The FRASAD tool has a graphical user interface, code Heaven et al. have developed an approach for adapting a generation components, and supporting tools for helping the software system in response to the environment changes while developers in modelling, realizing, and testing an IoT system. preserving its high level goals [22]. They use Labelled The evaluation of the approach showed that it enables fast Transition Systems (LTS) to capture the system states and the development of IoT systems, and reduces the cost of dealing environment situations. with their complexity. Andrade et al. have proposed an approach to cope with the The deployment of IoT systems to heterogeneous sensors, unanticipated changes of a system’s adaptive behaviour [23]. actuators, and business components is a challenging task. Thus, They separate the system adaptation from its functionality, and the Open TOSCA (Topology and Orchestration Specification represent the adaptation logic as a set of condition-action rules. for Cloud Applications) runtime has been proposed to ease this These rules are constructed as a component-based system that task [6]. This runtime platform supports the automated plan- can be changed at runtime. based deployment and management of the IoT systems defined following the packaging format of TOSCA, which called CSAR Morin et al. proposed a technique to handle the exponential (Cloud Service ARchive). This format enables the bundling of growth of the number of configurations that are derived from the all system entities (e.g. management and business operations) in system’s high variability [24]. They combine model driven and a self-contained manner. aspect oriented approaches to cope with the complexity of adaptive software systems. For building interoperable and cross-domain IoT systems, a Machine-to-Machine Measurement (M3) framework has been Limitations. The approaches discussed above for developing introduced in [16]. The framework supports the IoT developers IoT systems do not enable their runtime adaptation in response in semantically annotating machine-to-machine (M2M) data, to environment changes. However, IoT systems need to be and generating IoT software systems by combining M2M data adapted in response to hardware and software failures (e.g. a from heterogeneous areas. Therefore, end users can receive the sensor failure, or unavailability of a function). In addition, the high-level information about their sensor data. approaches proposed for developing adaptive systems target general software, which makes their adoption for IoT software B. Developing Adaptive Systems development difficult and error prone due to the complexity The Rainbow framework provides mechanisms to monitor a introduced by IoT system characteristics such as their large scale system environment, analyze it for initiating the adaptation and distributed nature. Furthermore, some of the existing process, select the required adaptation strategy, and act needed approaches focus only on one development phase (e.g. analysis changes to the running system [17]. To capture the system or deployment). Therefore, there is a need for an approach that reactions to context changes, they use a language called Stitch. fully supports the development of IoT software systems, and enables their runtime adaptation to cope with the environment Sheng et al. proposed a model-driven approach to ease the changes. development of context-aware services [18]. In this approach, they consider the service functionality as a single service, and III. DEVELOPMENT OF IOT ADAPTIVE SYSTEMS the environment changes are used by a number of adaptation rules to adapt the output parameters of this service. To ease the development of adaptive IoT systems, we have proposed a two-phase process (see Figure 1). In the first phase, Zhang and Cheng inroduced an approach to create formal a system model is created to specify the system functionality and models of a system behaviour [19]. In this approach, the system its adaptive behavior. In phase two, code corresponding to the adaptive behavior is separated from its non-adaptive behavior. design model is generated. In the following, we describe the two This separation makes the system models easier to specify and phases in detail. verify. They used Petri-nets to capture the system adaptive behaviour, where the environment changes are used as guidance A. Modelling Adaptive IoT Systems for the transition between system states. To model an adaptive IoT software system, two aspects of the system need to be captured: the system functionality and its The SOCAM project (Service-Oriented Context-Aware adaptive behavior. The adaptive behavior specifies the system Middleware) has introduced an architecture to build adaptive reactions to a number of anticipated context changes such as a software systems [20]. It uses a central server for gathering sensor failure. context information from distributed context providers. Such IoT system (referred to as an Augmented Entity) consists of System Requirements Anticipated Changes Devices and Services. A device is a hardware element which can be a Tag (to identify a Physical Entity such as a light strip id), a Sensor (to monitor a physical entity such as temperature), or an Actuator (to act on a physical entity such as turning lights on or 1 Design Model off). A service is a software component to enable interactions between the system users (which can be Human or Digital Artifact) and the physical entities. The service also exposes a Functional Model Adaptation Model Resource that can be on a device or on the network. Following the SysML4IoT profile, we model an IoT system as a composite structure that includes a number of functional Synchronize Generate IoT Generate services (e.g. light strip controller), a set of sensors to monitor 2 environment information required by the functional services Platform Model Code (e.g. current temperature and luminosity level), and a number of actuators to control parts of the system (e.g. switching the light strip to on or off). Second, we adopted a publish/subscribe pattern to specify which information is provided by the sensors or required by the functional services [8]. In this pattern, the Topic concept is used to specify the required or provided information, while the Data Adaptive System Execution Reader and Data Writer concepts are used for specifying readers and writers of the topics information. Figure 1. A Process for developing adaptive IoT systems Following the publish/subscribe paradigm, we modeled the The System Functionality. The system consists of a set of environment information as a set of topics (e.g. temperature and functions that interact with each other to meet the end user luminosity), while the data reader concept is applied to a requirements. To model such functionality, we first adopted a functional service (e.g. a light controller to read the luminosity SysML extension that is called SysML4IoT [4] for capturing IoT level) and the data writer is applied to sensors (e.g. temperature concepts. The SysML4IoT profile is based on the IoT reference sensor to provide the current temperature). architecture model (see Figure 2) [14]. In the SysML4IoT, the Figure 2. IoT domain model [14] The System Adaptive Behavior. To adapt an IoT system in service connections with the sensors and actuators. This project response to environment changes, we have introduced a system is later compiled to a JAR file that can be deployed to the DDS management component [25]. This component is responsible for Java implementation. In the same manner, Java projects for the the system switching from a configuration to another in response sensors and actuators are generated. to an adaptation trigger. Therefore, we need to model adaptation triggers and different runtime configurations (states) of the IoT Second, to generate the code corresponding to a DDS topic, system. Both represent a runtime system state, and then we an Interface Definition Language (IDL) file is generated which model both of them as UML instance specifications. These is then used by the idlj tool to generate Java code [29]. Third, to specifications describe component instances along with values adapt the IoT software system at runtime, a system management for their attributes. Such a set is called a deployment plan, a term service based on the adaptation state machine is created, which inspired from the CORBA component model. In our approach, has the ability to identify the adaptation triggers and actions. It a system deployment plan represents either an adaptation trigger also contains code that is able to change the system or a configuration (state) [26]. configuration by starting and stopping the functional services at runtime. In order to model the adaptive behavior of an IoT system, we adopted the state machine approach [27]. This technique makes IV. IMPLEMENTATION adaptation policies easy to specify/understand, and it is useful In this Section, we use the concepts previously explained in for validation and verification purposes. In this machine, states Section III to model an adaptive lighting system, and generate are corresponding to the system configurations, while transitions its implementation. This case study has been conducted in the represent adaptations between the configurations. Each context of the S3P project, [10]. We also describe tools that transition is guarded and triggered through an adaptation event. support our approach. For example, to cope with a sensor failure during a specific state, the system switches from its current state to a configuration that A. Modelling an Adaptive Lighting System recovers from this failure. As discussed previously, a model of an adaptive system should specify its functionality and adaptive behavior. Below, B. Code Generation we discuss the model of the adaptive lighting system. The code generation is performed in two steps, where the high level model of the system is transformed to an IoT specific Modelling System Functionality. To create a design model model which is later on transformed to a code. of the adaptive lighting system following our approach, we use the Papyrus UML modeler [30]. The architecture model of the Generate IoT Specific Model. Code generation is usually system functionality is shown in Figure 3. The model consists of tied to the environment (platform) in which the system is going a number of functions that are linked to each other through to execute. The IoT platforms are very large, and then it is very functional ports. In Figure 3, there are a number of functional difficult for any approach to consider all of them. Thus, in our services to control lights based on the environment information work, as a proof of concept, we generate an IoT system that can availability (e.g. luminosity and temperature controller). It also execute on a specific Java implementation of the publish- includes two sensors for monitoring the temperature and the subscribe paradigm, which called data distribution service luminosity level (i.e. temperature and luminosity sensors). (DDS) [12]. The idea behind choosing such a platform is that the Furthermore, there is a service to control the lights manually generated Java code can run on a very large number of devices, using a user interface. implying that our approach can have a wide applicability. To generate code for a system modelled using SysML4IoT and publish/subscribe paradigm concepts, we automatically transform the system model to a model that is compatible with the target DDS platform [28]. In this transformation, a functional service (or an actuator) is transformed to a micro-service concept. This service includes initiate, start, and stop methods. The initiate method is responsible for initializing the functional service subscriptions to specific DDS topics. The start method prepares the topics data readers, while the stop method closes the opened data readers. In the same manner, the sensors are transformed to periodic-services that have initiate, start, and stop methods similar to the micro-services. These services also include “schedule” and “get duration” methods. The “get duration” method is used to determine how frequent the environment information are sensed, while the “schedule” method includes the specific strategy to get such information. Figure 3. The architecture model of smart lighting system Generate Java Code. Based on an IoT model (generated as described above), the Java code is generated. In this process, Modelling the System Adaptive Behavior. To model the first, for each functional service, a Java project is generated adaptive behavior of the system, both the adaptation triggers and which includes a code corresponding to the functionality and the the system states need to be specified. An example of an adaptation trigger modeled as an instance specification is shown configuration to another that takes the luminosity level into in Figure 4 (see the top part). For each component, a runtime account (i.e. the system configuration shown at the bottom of system state is defined {e.g. Active or Inactive}. In the example, Figure 4). This switching is specified by a transition (i.e. light temperature controller, and temperature and luminosity sensors sensor available) shown in Figure 5. In this transition, the state are in active state, while temperature and luminosity controller, of the temperature controller is changed from “Active” to and luminosity controller are inactive. A configuration to cope “Inactive”, while the state of the temperature and luminosity with the availability of the luminosity sensor is shown in controller is changed from “Inactive” to “Active”. Figure 4 (see the bottom part). The instance specification for each component is defined as . B. Code Generation Therefore, this configuration is defined as follows: Papyrus software designer [31] is an extension of Papyrus [30]. It provides code generation from UML models for a {< temperature controller, Inactive >, < temperature sensor, number of programming languages such C, C++, and Java, and Active>, < luminosity sensor, Active>, < luminosity controller, supports the integration of new code generators. We have added Inactive>, < temperature and luminosity controller, Active>} support for the generation of adaptive IoT software systems to this tool. This enhancement is based on extensibility mechanism in the tool, notably the use of an extensible model-2-model transformation chain. The resulting tool enables the generation of an IoT specific model from the system’s high level model. Using this extension, first, code corresponding to a functional service such as luminosity controller is generated in two steps (see Figure 6). The top part of the Figure shows the service design model, while the bottom part shows its extended platform specific model (on the left), and the generated Java project (on the right). The generated Maven project can then be complied to create a JAR file (i.e. lux2hue.jar), which is later on deployed to a running instance of the DDS implementation [28]. Therefore, users and other services can interact with this service. Similar to generating the code for the functional services, code corresponding to system sensors and actuators is generated. High Level Model 1- Model-to-Model Figure 4. Specifying an adaptation trigger and a system response IoT Specific Model Maven Project 2- Model-to-Code Figure 5. Adaptive behavior of the smart lighting system To model the switching between the system configurations in response to the adaptation triggers, a state machine is created as shown in Figure 5. For example, in response to the availability of the luminosity sensor (the adaptation trigger specified on top Figure 6. Code generation of an IoT functional service part of Figure 4), the system adapts from its current Second, as discussed above, the information required by the sensor, and the luminosity controller are active. Therefore, in functional services is modelled as a set of topics. Thus, for a response to changes in luminosity level, the light strip is turned functional service to use these topics, Java code corresponding on or off. In Figure 8, the active components are also indicated to these topics needs to be generated. The topic data structure is by model elements that have the green colour (changed using the modelled by the TopicStruct concept that includes a number of Moka animation framework). data items. For example, a temperature topic has id, value, and raw value (rvalue) as data items (see the top part of Figure 7). To generate the Java code corresponding to this topic, an IDL file representing this data structure is generated, which is then used by the idlj tool to generate the Java code as shown in the bottom part of Figure 7. High Level Model 1- Model- to-IDL 2- IDL-to-Code IDL file Maven Project // ----------------------------------------- // Code generated by Papyrus IDL // ----------------------------------------- module com { module prismtech { Figure 8. Snapshot from the case study execution module edison { module sensor { V. CONCLUSION module types { In recent years, a growing number of objects have been struct AnalogSensor { connected to the internet to realize the idea of Internet of Things short id; (IoT). A challenge is how to develop adaptive systems that can float value; float rvalue; benefit from the IoT. In this paper, we have proposed a model- }; driven approach to develop such IoT systems. First, based on }; //end of module types system requirements, a design model is created that captures the }; //end of module sensor }; //end of module edison system functionality and its adaptation. The functionality is }; //end of module prismtech modelled by the SysML4IoT profile, while data needed by the }; //end of module com system functionity is modelled following the publish/subscribe paradigm. To model the runtime adaptation, the state machine Figure 7. Generating code corresponding to the DDS topics approach is adopted. Second, the model is used to generate C. System Deployment and Runtime Monitoring system implementations. To do so, the high level design model is transformed to an IoT platform specific model, which is then The hardware platform that we have used to deploy our IoT used to generate the Java code. Finally, the generated code is system generated above includes a light strip, temperature and deployed to the hardware platform of the system to make it fully luminosity sensors, an Edison board (a computer-on-module functioning. provided by Intel as a development system for IoT devices [11]) that has Java implementation of the data distribution service As a future work, firstly, we plan to extend our approach to middleware running on it, and a board with the MicroEJ enable the deployment of IoT systems to other IoT platforms, operating system [13] that is optimized for the IoT architectures and to enable automatic system deployment to such platforms. (see Figure 8). Secondly, further evaluations will also be carried out to assess the approach robustness by applying it to a set of case studies. To have a fully functioning IoT system, the generated code is compiled and deployed to the Edison board. In addition, an REFERENCES application is developed for the MicroEJ board that enables the manual control of the light strip. Furthermore, to enable runtime [1] P. Patel and D. Cassou, "Enabling High-level Application Development for the Internet of Things," Journal of Systems and Software, vol. 103, monitoring of the system, we used a model animation pp. 62-84, Januray 2015. framework developed in the context of the Papyrus Moka [32]. [2] A. P. Athreya, B. DeBruhl and P. Tague, "Designing for self- Using Moka, the runtime state of the deployed system is configuration and self-adaptation in the Internet of Things," in 9th IEEE reflected to its design model by instrumenting the generated International Conference on Collaborative Computing: Networking, code with monitors. We also support the control of the running Applications and Worksharing, Austin, TX, 2013, pp. 585-592. system via the model: functional services can be started and [3] A. Al-Fuqaha, M. Guizani, M. Mohammadi, M. Aledhari, and M. stopped from the design model. Ayyash, "Internet of Things: A Survey on Enabling Technologies, Protocols and Applications," IEEE Communications Surveys & In Figure 8, we show a snapshot of the case study during its Tutorials, vol. 17, no. 4, pp. 2347-2376, 2015. operation. In this snapshot, the light controller, the luminosity [4] B. Costa, P. F. Pires, F. C. Delicato, W. Li and A. Y. Zomaya, "Design [19] J. Zhang and B. H. C. Cheng, "Model-based development of dynamically and Analysis of IoT Applications: A Model-Driven Approach," in IEEE adaptive software," in the 28th international conference on Software 14th Intl Conf on Dependable, Autonomic and Secure Computing, engineering, Shanghai, China, 2006. Auckland, 2016, pp. 392-399. [20] T. Gu, H. K. Pung, and D. Q. Zhang, "A service-oriented middleware for [5] X. T. Nguyen, H. T. Tran, H. Baraki and K. Geihs, "FRASAD: A building context-aware services," J. Netw. Comput. Appl., vol. 28, pp. 1- framework for model-driven IoT Application Development," in IEEE 18, 2005. 2nd World Forum on Internet of Things , Milan, 2015, pp. 387-392. [21] R. Rouvoy, P. Barone, Y. Ding, F. Eliassen, S. Hallsteinsen, J. Lorenzo, [6] A. Franco da Silva, U. Breitenbücher, K. Képes, O. Kopp, and F. A. Mamelli, and U. Scholz, "MUSIC: Middleware Support for Self- Leymann, "OpenTOSCA for IoT: Automating the Deployment of IoT Adaptation in Ubiquitous and Service-Oriented Environments," Applications based on the Mosquitto Message Broker," in Proceedings Software Engineering for Self-Adaptive Systems, vol. LNCS 5525, pp. of the 6th International Conference on the Internet of Things (IoT'16), 164-182, 2009. New York, NY, USA, 2016, pp. 181-182. [22] W. Heaven, D. Sykes, J. Magee, and J. Kramer, "A Case Study in Goal- [7] (2017, June) SysML. [Online]. http://www.omgsysml.org/ Driven Architectural Adaptation," Software Engineering for Self- [8] W. Kang, K. Kapitanova and S. H. Son, "RDDS: A Real-Time Data Adaptive Systems, vol. LNCS 5525, pp. 109-127, 2009. Distribution Service for Cyber-Physical Systems," IEEE Transactions [23] S. S. Andrade and R. J. de Araujo Macedo, "A non-intrusive component- on Industrial Informatics, vol. 8, no. 2, pp. 393-405, May 2012. based approach for deploying unanticipated self-management [9] M. Hussein, R. Nouacer, A. Radermacher, "A Model-driven Approach behaviour," in Software Engineering for Adaptive and Self-Managing for Validating Safe Adaptive Behaviors," in 19th Euromicro Conference Systems (SEAMS '09), 2009. on Digital Systems Design (DSD 2016), Limassol, Cyprus, August 31 – [24] B. Morin, O. Barais, G. Nain, and J. Jezequel , "Taming Dynamically September 2, 2016. Adaptive Systems using models and aspects," in the 31st International [10] (2017, June) Smart, Safe and Secure Platform (S3P). [Online]. Conference on Software Engineering, 2009. http://www.esterel-technologies.com/S3P-en.html [25] M. Salehie, and L. Tahvildari, "Self-adaptive software: Landscape and [11] (2017, June) Intel Edison Board. [Online]. https://software.intel.com/en- research challenges," ACM Trans. Auton. Adapt. Syst, vol. 4, no. 2, pp. us/iot/hardware/edison 1-42, 2009. [12] (2017, June) Open Source Data Distribution Service (DDS). [Online]. [26] M. Fowler, "UML Distilled: A Brief Guide to the Standard Object http://www.prismtech.com/dds-community Modeling Language (3 ed.).," , Boston, MA, USA, 2003. [13] (2017, June) MicroEJ Platforms. [Online]. [27] B. Morin, O. Barais, J.M. Jezequel, F. Fleurey, and A. Solberg, http://developer.microej.com/index.php?resource=JPF "Models@ Run.time to Support Dynamic Adaptation," Computer, vol. 42, pp. 44-51, 2009. [14] A. Bassi, M. Bauer, M. Fiedler, T. Kramp, R. van Kranenburg, and S. Langeand S. Meissner, Enabling things to Talk. Berlin, Heidelberg: [28] (2017, June) AgentV. [Online]. https://github.com/PrismTech/agentv Springer, 2013. [29] (2017, June) idlj. [Online]. [15] A. Cimatti, E. M. Clarke, E. Giunchiglia, F. Giunchiglia, M. Pistore, M. http://docs.oracle.com/javase/7/docs/technotes/tools/share/idlj.html Roveri, R. Sebastiani, and A. Tacchella, "NuSMV 2: An OpenSource [30] S. Gérard, C. Dumoulin, P. Tessier, and B. Selic, "Papyrus: a UML2 tool Tool for Symbolic Model Checking," in Proceedings of the 14th for domain-specific language modeling," in International Dagstuhl International Conference on Computer Aided Verification (CAV '02), conference on Model-based engineering of embedded real-time systems 2002, pp. 359-364. (MBEERTS'07), Berlin, Heidelberg, 2007, pp. 361-368. [16] A. Gyrard, S. K. Datta, C. Bonnet and K. Boudaoud, "Cross-Domain [31] W. Chehade, A. Radermacher, F. Terrier, B. Selic, and S. Gerard, "A Internet of Things Application Development: M3 Framework and model-driven framework for the development of portable real-time Evaluation," in 3rd International Conference on Future Internet of embedded systems. ," in International Conference on Engineering of Things and Cloud, Rome, 2015, pp. 9-16. Complex Computer Systems, 2011, pp. 45-54. [17] D. Garlan, S. Cheng, A. Huang, B. Schmerl, and P. Steenkiste, [32] J. Tatibouet, A. Cuccuru, S. Gérard, F. Terrier, "Towards a Systematic, "Rainbow: Architecture-Based Self-Adaptation with Reusable Tool-Independent Methodology for Defining the Execution Semantics of Infrastructure," Computer , vol. 37, no. 10, October 2004. UML Profiles with fUML ," in MODELSWARD, 2014. [18] Q. Z. Sheng, J. Yu, A. Segev, K. Liao, "Techniques on developing context-aware web services," Int. Journal of Web Information Systems, vol. 6, no. 3, pp. 185-202, 2010.