# A Methodology for the Design of Application-Specific Cyber-Physical Social Sensing Co-Simulators
## 2 State of the Art
### Social, Physical and Network (Cyber) Simulation
\begin{table}
\begin{tabular}{c c c c} \hline \hline \multirow{2}{*}{**Characteristics**} & \multicolumn{2}{c}{**Traditional Network**} & \multirow{2}{*}{**IoT Simulators**} & \multirow{2}{*}{**Social IoT Simulators**} \\  & & **Simulators** & & \\ \hline Include a graphic environment & Sometimes & Yes & Yes \\ Programming abilities are required & Yes & No & No \\ Include social aspects & No & No & No \\ Is a stable version & Yes & Sometimes & No \\ Number of customizing options & High & Medium & Low \\ Simulation scheme & & Event-driven, offering the logs in each step \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Network or IT simulators comparison. \begin{table}
\begin{tabular}{c c c c c} \hline \hline \multirow{2}{*}{**Characteristics**} & \multirow{2}{*}{
\begin{tabular}{c} **Social-Level** \\ **Simulators** \\ \end{tabular} } & \multicolumn{4}{c}{**Agent-Based Simulators**} \\ \cline{3-5}  & & **Ambient** & **Development of** & **Generic** \\  & & **Intelligence** & **IoT Systems** & \\ \hline Represent each people as a unit & No & Yes & Yes & Yes \\ Programming knowledge is required & No & Sometimes & Sometimes & Sometimes \\ A graphic interface is provided & Yes & Yes & Yes & Yes \\ Cyber elements may be included & No & Yes & Yes & No \\ People is the objective of the simulations & Yes & Yes & No & Yes \\ Stable tools are available & Yes & Yes & Yes & Yes \\ Simulation scheme & & Results are showed as calculated in each time step & \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Social simulators comparison. enables stakeholders to evaluate deployments in a very realistic way. In order to reach this objective, individual simulation tools should be able to exchange information such as variables and their values, synchronize the time steps and, in general, orchestrate the co-operative simulation [112]. Mainly, two standard technologies have been proposed to coordinate co-simulations: the High-level architecture (HLA) [56] and the Functional Mock-up Interface (FMI) [57]. Although several tools are compatible with these standards, not all simulation tools implement the same and, even, some tools do not implement any (for example, most social simulators). Moreover, problems and restrictions in the integrated tools based on these standards have been reported [112]. And finally, some important challenges related to CPSS co-simulation are not addressed by these solutions (such as data exchange and time management in the case of FMI standard). In fact, the complexity of CPSS pushes designers to create application-specific and simple solutions, losing most of powerful advantages of standard solutions. In that way, the proposed methodology in this paper aims to enable CPSS researchers and software architects to design the most adequate co-simulation for a given application, addressing the four most important challenges. Namely [112; 113]:  
* The first step addresses the \"Data Flow and Concurrency\". Different paradigms in order to parallelize and manage the data flow among the domain specific simulation tools are presented and different criteria to select among them depending on the situation are provided. * Challenges related to the \"Modeling language\" and \"System Topology representation\" are addressed during the second step. A basic simulation model is proposed, and indications to adapt it to the particular scenario under study are provided. An identical process is followed with the simulation lifecycle. * \"Time management\" and \"System Scalability\" are investigated in the third step. Different options to coordinate the different time representation and simulation speeds are studied. Besides, depending on the desired future system scalability and the scenario under study, different criteria to select the most appropriate management technique are provided. * Finally, the fourth step is focused on \"Tool heterogeneity\". In order to homogenize the interaction with the proposed co-simulator as much as possible, different ideas about the possibilities for user interfaces are provided and analyzed.