A theoretical and empirical study of EFSM dependence

Dependence analysis underpins many activities in software maintenance such as comprehension and impact analysis. As a result, dependence has been studied widely for programming languages, notably through work on program slicing. However, there is comparatively little work on dependence analysis at the model level and hitherto, no empirical studies. We introduce a slicing tool for Extended Finite State Machines (EFSMs) and use the tool to gather empirical results on several forms of dependence found in ten EFSMs, including well-known benchmarks in addition to real-world EFSM models. We investigate the statistical properties of dependence using statistical tests for correlation and formalize and prove four of the empirical findings arising from our empirical study. The paper thus provides the maintainer with both empirical data and foundational theoretical results concerning dependence in EFSM models.

[1]  Susan Horwitz,et al.  Semantics-preserving procedure extraction , 2000, POPL '00.

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

[3]  Mark Harman,et al.  Forward slices are smaller than backward slices , 2005, Fifth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'05).

[4]  S. Ramesh,et al.  Slicing tools for synchronous reactive programs , 2004, ISSTA '04.

[5]  Mark Harman,et al.  Dependence clusters in source code , 2009, TOPL.

[6]  Lucas Layman,et al.  Are decomposition slices clones? , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[7]  Aniello Cimitile,et al.  Conditioned program slicing , 1998, Inf. Softw. Technol..

[8]  Mark Harman,et al.  An empirical study of static program slice size , 2007, TSEM.

[9]  David W. Binkley,et al.  A large-scale empirical study of forward and backward static slice size and context sensitivity , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[10]  Mark Harman,et al.  A survey of empirical results on program slicing , 2004, Adv. Comput..

[11]  David W. Binkley,et al.  Program integration for languages with procedure calls , 1995, TSEM.

[12]  M. Eliantonio,et al.  Private Parties and the Annulment Procedure: Can the Gap in the European System of Judicial Protection Be Closed? , 2010 .

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

[14]  Torben Amtoft,et al.  Slicing for modern program structures: a theory for eliminating irrelevant loops , 2008, Inf. Process. Lett..

[15]  Mark Harman,et al.  Control Dependence for Extended Finite State Machines , 2009, FASE.

[16]  Björn Lundell,et al.  Simplifying maintenance by using XSLT to unlock UML models in a distributed development environment , 2007, ICSM.

[17]  Vesa Ojala A Slicer for UML State Machines , 2007 .

[18]  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).

[19]  Liang Guo,et al.  Debugging Statecharts Via Model-Code Traceability , 2008, ISoLA.

[20]  Bogdan Korel,et al.  Model-based test prioritization heuristic methods and their evaluation , 2007, A-MOST '07.

[21]  Christophe Gaston,et al.  Symbolic Execution Techniques for Test Purpose Definition , 2006, TestCom.

[22]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[23]  Mark Harman,et al.  The impact of input domain reduction on search-based test data generation , 2007, ESEC-FSE '07.

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

[25]  Barbara G. Ryder,et al.  Identifying Failure Causes in Java Programs: An Application of Change Impact Analysis , 2006, IEEE Transactions on Software Engineering.

[26]  Keith Brian Gallagher,et al.  Using Program Slicing in Software Maintenance , 1991, IEEE Trans. Software Eng..

[27]  Bogdan Korel,et al.  Dynamic program slicing in understanding of program execution , 1997, Proceedings Fifth International Workshop on Program Comprehension. IWPC'97.

[28]  Rachida Dssouli,et al.  Automatic executable test case generation for extended finite state machine protocols , 1997 .

[29]  Matthew B. Dwyer,et al.  A new foundation for control dependence and slicing for modern program structures , 2005, TOPL.

[30]  Jean-Pierre Gallois,et al.  Slicing communicating automata specifications: polynomial algorithms for model reduction , 2008, Formal Aspects of Computing.

[31]  Alexander K. Wißpeintner,et al.  Specification of an Elevator Control System -- An AutoFocus Case Study , 1999 .