Deriving Data Dependence from/for UML State Machine Diagrams

Slicing is a well-known reduction technique in many areas such as debugging, maintenance, and testing, and thus, there has been considerable research in the application of slicing techniques to models at the design level. UML state machine diagrams can properly describe the behavior of large software systems at the design level. The slicing of UML state machine diagrams is helpful for their maintenance. But it is difficult to apply a slicing algorithm to automatically reduce the diagrams with respect to slicing criteria, because of the unique properties of these diagrams, such as hierarchy and orthogonality. These properties make constructing a data dependence graph highly complicated. Hierarchy between states leads to implicit paths between states, which may affect data dependence. Also, orthogonality (i.e., parallelism) can cause an intransitivity problem when tracing data dependence. In this paper, we discuss an approach to address such problems. We first construct a control flow graph, which explicitly describes all possible transitions; and a hierarchy graph, which depicts the hierarchical structure of state machine diagram. Next we retrieve data dependence information and construct a dependence graph across different levels. We also show how data dependence information is retrieved, by virtue of ATM example.

[1]  Doo-Hwan Bae,et al.  Identifying properties of UML state machine diagrams that affect data and control dependence , 2011, SAC '11.

[2]  Mats Per Erik Heimdahl,et al.  On the effectiveness of slicing hierarchical state machines: a case study , 1998, Proceedings. 24th EUROMICRO Conference (Cat. No.98EX204).

[3]  Doo-Hwan Bae,et al.  Bridging the Gap between Fault Trees and UML State Machine Diagrams for Safety Analysis , 2010, 2010 Asia Pacific Software Engineering Conference.

[4]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[5]  Marc Pouzet,et al.  Slicing Communicating Automata Specifications for Efficient Model Reduction , 2007, 2007 Australian Software Engineering Conference (ASWEC'07).

[6]  Doo-Hwan Bae,et al.  An approach to analyzing the software process change impact using process slicing and simulation , 2011, J. Syst. Softw..

[7]  Mats Per Erik Heimdahl,et al.  Reduction and slicing of hierarchical state machines , 1997, ESEC '97/FSE-5.

[8]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[9]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[10]  Bogdan Korel,et al.  Slicing of state-based models , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[11]  Baowen Xu,et al.  An overview of methods for dependence analysis of concurrent programs , 2002, SIGP.

[12]  Kevin Lano Slicing of UML state machines , 2009 .

[13]  Mark Harman,et al.  Slicing Extended Finite State Machines-TR-0804 ∗ , 2008 .

[14]  Francoise Balmas Displaying dependence graphs: a hierarchical approach , 2004, J. Softw. Maintenance Res. Pract..

[15]  Amey Karkare,et al.  Heap reference analysis using access graphs , 2006, ACM Trans. Program. Lang. Syst..

[16]  Ji Wang,et al.  Slicing Hierarchical Automata for Model Checking UML Statecharts , 2002, ICFEM.

[17]  Baowen Xu,et al.  A brief survey of program slicing , 2005, SOEN.