### Co-Design Approach for the NCSs  
The design of an NCS integrates the domains of control system, communication, and real-time computing. The increasing complexity of the computer systems, and their networks, requires advanced methods specifically suited for the NCS. The main issue to be addressed is the achievement of the control objective (i.e., a combination of security, performance, and reliability requirements), despite the disturbances. For instance, sharing of common computing resources and communication bandwidths by competing control loops, alongside the other functions, introduces random delays and data losses. Moreover, the use of heterogeneous computers and communication systems increases the complexity of the NCS.  
Control plays a significant role in interconnected complex systems for their reliable performance [7]. The interconnection of elements and sub-systems, coming from different technologies, and which are subject to various constraints, calls for a design that can solve the conflicting constraints. Besides achieving the desired performance in normal situations, the reliability and safety-related problems are of concern for the system developers. A fundamental concept that is dependability, which is the device property that features various attributes, such as access, reliability, safety, confidentiality, integrity, and maintainability [8]. Being confronted with faults, errors, and failures, a system's dependability could be achieved in numerous ways, i.e., fault prevention, fault threshold, and fault forecasting [9].  
Except in the event of failures due to hardware or software components, most procedures run with nominal behavior, but, neither the process nor the execution resource parameters are completely known or modeled. One method is to allocate the system resources conservatively, which results in the wastage of resources. From the control viewpoint, specific inadequacies to be considered include poor timing, delays, and data loss. Control usually deals with modeling uncertainty, powerful adaptation, and disturbance attenuation. More correctly, as shown with recent results obtained on NCS [10], control loops tend to be robust and can tolerate networking and computing disturbances, up to a certain level. Therefore, the timing deviations, such as jitter or data loss, as long as they remain within the bounds, may be viewed as the nominal features of the system, but not as exceptions. Robustness allows for provisioning the execution resources according to needs that are average than for worst cases, and to take into account system reconfiguration only once the failures surpass the abilities of the controller tolerance that is running.  
An NCS is composed of a collection of heterogeneous devices and information subsystems. For designing the NCS, many conflicting constraints must be simultaneously fixed before reaching a satisfactory solution that is implementable. Issues related to networking control tracking performance, robustness, redundancy, reconfigurability, energy consumption, expense effectiveness, etc., are to be addressed. Traditional control usually deals with a procedure that requires a solitary computer, and the limitations of the communication links and computing resources usually do not notably affect its performance. Existing tools dealing with the modeling and identification, robust control, fault diagnosis and isolation, fault tolerant control, and flexible real-time scheduling need to be enhanced, adapted, and extended to handle the networked characteristics of the control system. Finally, the thought of a co-design system approach has emerged that allows the integration of control, as well as communication within the NCS design [10].