With rapid development in software technology, more and more safety-critical systems are software intensive. Safety issues become important when software is used to control such systems. However, there are 2 important problems in software safety analysis: (1) there is often a significant traceability gap between safety requirements and software design, resulting in safety analysis and software design are often conducted separately; and (2) the growing complexity of safety-critical software makes it difficult to determine whether software design fulfills safety requirements. In this paper, we propose a technique to address the above 2 important problems on the model level. The technique is based on statecharts, which are used to model the behavior of software, and fault tree safety analysis. This technique contains the following 2 parts, which are corresponding to the 2 problems, respectively. The first part is to build a metamodel of traceability between fault trees and statecharts, which is to bridge their traceability gap. A collection of rules for the creation and maintenance of traceability links is provided. The second part is a model slicing technique to reduce the complexity of statecharts with respect to the traceability information. The slicing technique can deal with the characteristics of hierarchy, concurrency, and synchronization of statecharts. The reduced statecharts are much smaller than their original statecharts, which are helpful to successive safety analysis. Finally, we illustrate the effectiveness and the importance of the method by a case study of slats and flaps control units in flight control systems. /journal/spe Softw Pract Exper. 2018;48:428-448. We now introduce 6 dependence relations through Definitions 6 to 11. These relations aim at detecting other safety-related elements which are not in slicing criteria. Definition 6. (Data Dependence within a Single Automaton) Let el 1 and el 2 be 2 elements (states or transitions) in a single automaton. el 2 is data dependent on el 1 denoted by el 2 → dd el 1 if there exists a path from el 1 to el 2 such that RCUV (el 2 ) ∩ UpdV(el 1 ) − ⋃ el i ∈ITD(el 1 ,el 2 ) UpdV(el i ) ≠ ∅. Definition 7. (Data Dependence among Automata) Let A, B, and C be 3 automata in an EHA. Let el A be an element of A, el B be an element of B, and s C be a state in σ C , and they satisfy A, B ∈ ρ(s C ). el A is data dependent on el B denoted by el A → pd el B if RCUV (el A ) ∩ UpdV(el B ) ≠ ∅. Definition 8. (Control Dependence among Automata) Let A, B, and C be 3 automata in an EHA. Let el A be an element of A, el B be an element of B, and s C be a state of C, and they satisfy A, B ∈ ρ(s C ). el A is control dependent on el B denoted by el A → sd el B if TE(el A ) ∩ GE(el B ) ≠ ∅ Definition 9. (Control dependence within a Single Automaton) Let el be an element and t be a transition in a single automaton. el is control dependent on t denoted by el→ cd t if there exists a path from t to el such that the set E = {el ′ |t→ xd el ′ (→ xd represents → dd , → pd , → sd )} sati...