  Cyber-Physical Systems (CPS) allow us to manipulate objects in the physical
world by providing a communication bridge between computation and actuation
elements. In the current scheme of things, this sought-after control is marred
by limitations inherent in the underlying communication network(s) as well as
by the uncertainty found in the physical world. These limitations hamper
fine-grained control of elements that may be separated by large-scale
distances. In this regard, soft computing is an emerging paradigm that can help
to overcome the vulnerabilities, and unreliability of CPS by using techniques
including fuzzy systems, neural network, evolutionary computation,
probabilistic reasoning and rough sets. In this paper, we present a
comprehensive contemporary review of soft computing techniques for CPS
dependability modeling, analysis, and improvement. This paper provides an
overview of CPS applications, explores the foundations of dependability
engineering, and highlights the potential role of soft computing techniques for
CPS dependability with various case studies, while identifying common pitfalls
and future directions. In addition, this paper provides a comprehensive survey
on the use of various soft computing techniques for making CPS dependable.
