Deploying a safety-critical system (SCS) adds new challenges for experts to improve system reliability, safety, and performance. Several modeling tools and techniques like Unified Modeling Language (UML), Fault Tree Analysis (FTA), Dynamic Fault Tree Analysis (DFTA), Event Tree Analysis (ETA), Reliability Block Diagram (RBD), Dynamic Reliability Block Diagrams (DRBD), Markov models and Petri Nets (PN), etc. have been widely used for designing and modeling a safety system for ensuring the above-stated dependability attributes. The modeling tools capture the system's static as well as dynamic nature depending on their constructs. However, not all stated modeling techniques can capture the system dynamics. Many modeling tools and methods capable of capturing the system dynamics fail to detect many critical facets of dependability, for example non-liveliness, deadlock, boundedness, or design errors. The present article provides an exhaustive survey of the existing modeling tools and techniques to investigate and ensure the different dependability factors and the critical aspects of an SCS system required before its deployment to a real-time scenario.