Dependence analysis is a well-known technique to analyze, understand and maintain programs,which has been widely used in activities of software engineering and reengineering. Although dependence analysis for programs written in high-level languages has been widely studied in literatures, very little work is involved in analyzing dependence for Unified modeling language(UML) models. Therefore, the paper proposes a new approach for analyzing dependences among UML statechart diagrams for three cases: (1) it does not contain composite states; (2) it may include ordinal substates; (3) it may include concurrent substates. Firstly, we analyze and compute data and control dependences in Case 1 and Case 2 at full length. Then, using the information obtained in the previous steps, we discuss concurrent dependence and synchronal dependence besides data and control dependencesin Case 3. Finally, we present one of the most important applications of dependence analysis - program slicing, using the method presented in this paper. Our method successfully solves the problems in previous methods, and can obtain more precise slices than any other methods we known.