  Dependability is an umbrella concept that subsumes many key properties about
a system, including reliability, maintainability, safety, availability,
confidentiality, and integrity. Various dependability modeling techniques have
been developed to effectively capture the failure characteristics of systems
over time. Traditionally, dependability models are analyzed using
paper-and-pencil proof methods and computer based simulation tools but their
results cannot be trusted due to their inherent inaccuracy limitations. The
recent developments in probabilistic analysis support using formal methods have
enabled the possibility of accurate and rigorous dependability analysis. Thus,
the usage of formal methods for dependability analysis is widely advocated for
safety-critical domains, such as transportation, aerospace and health. Given
the complementary strengths of mainstream formal methods, like theorem proving
and model checking, and the variety of dependability models judging the most
suitable formal technique for a given dependability model is not a
straightforward task. In this paper, we present a comprehensive review of
existing formal dependability analysis techniques along with their pros and
cons for handling a particular dependability model.
