# Research Challenges for the Internet of Things: What Role Can OR Play?
## 3 How can OR Support the Future IoT?
### IoT Software Development--An Application of System Dynamics  
System Dynamics (SD) is a methodology for studying complex dynamic system behavior from a holistic perspective. It was developed by [PERSON] of MIT to model industrial systems with physical flows (personnel, money, material and machinery), their respective accumulations, and information-based decision-making mechanisms that control the flows to achieve desired accumulation levels [123; 124]. [PERSON]'s approach was to model the relationships between the various systems components, express these as differential or difference equations, and then run the model as a computer simulation. Causal-loop diagrams are used to show the dynamic cause and effect relationships between various system variables and the resulting feedback loops. A feedback loop can generate one of two types of effects, a snowball effect where a change in state generates action that causes a bigger change in the state (a reinforcing, R, loop), or a balancing effect where a change in state generates action to absorb the change (a balancing, B, loop), as shown in Figure 5. The polarity of a link (\(\pm\)) indicates the direction of change that a change in the cause induces in the effect. A pair of parallel lines on a link indicates a time delay between cause and effect. Since its foundation, SD has been applied to a wide range of problems, including supply chain management, project management, IT infrastructure and strategic planning. It has been used to model Internet diffusion [125] and similar use can be expected for modelling industry investment in the IoT (see Section 4.9). Figure 6 shows a causal loop diagram of Internet diffusion in India. As discussed in Section 2.2, the future IoT is envisaged as an ecosystem or system of systems, and SD modelling could be carried out at different levels. The highest level might be the overall IoT core infrastructure, similar to the above Internet diffusion model, below which might be individual application areas such as energy, health care and the smart city. At a lower level, SD could model IoT project management, including software development. Much work has already been  
Figure 5: Feedback loops: Reinforcing loop (**left**) and Balancing loop (**right**), (redrawn from [PERSON] and [PERSON] [123]). Figure 6: Causal loop diagram of Internet diffusion in India (reproduced with permission from [125]). done in SD modelling of the agile software development process [126; 127] and software project management [128; 129]. [PERSON] et al. [130] used SD to assess a hybrid plan-driven and agile process, based on a scalable spiral model, to cope with a rapidly changing software environment. In the context of IoT software development, where many systems must interoperate, there is much interest in the relative effectiveness of standards versus Open Source processes [39; 131; 132]. As discussed in Section 2.3, ISO has developed standards for systems engineering (ISO/IEC 15288), software engineering (ISO/IEC 12207) and project management (ISO 21500). Further lower level standards govern the technical design of the IoT in a layered model, which may be broadly divided into technical, syntactic, semantic and pragmatic categories [131]. New technical developments such as software defined networking [133] can be expected as development of the IoT gathers momentum. There is clearly scope for SD modelling of many aspects of IoT design, development and operations. The other main role that SD modelling can play is to model the operational use of the IoT's \"big data\", utilizing intelligent processors. This has been done in the application area of smart transportation in an urban environment [134], which evaluated policies for:  
* Real-time train and bus schedules
* Smart traffic signalling
* Smart parking
* Autonomous and cooperative vehicles
* \"Uber\" vehicle sharing  
Another major area for SD modelling is IoT-enabled industrial logistics systems [135; 136].