The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.07 - July (2013 vol.39)
pp: 892-909
Kelly Androutsopoulos , University College London, London
David Clark , University College London, London
Mark Harman , University College London, London
Robert M. Hierons , Brunel University, Uxbridge, Middlesex
Zheng Li , Beijing University of Chemical Technology, Beijing
Laurence Tratt , King's Colledge London, London
ABSTRACT
Slicing is useful for many software engineering applications and has been widely studied for three decades, but there has been comparatively little work on slicing extended finite state machines (EFSMs). This paper introduces a set of dependence-based EFSM slicing algorithms and an accompanying tool. We demonstrate that our algorithms are suitable for dependence-based slicing. We use our tool to conduct experiments on 10 EFSMs, including benchmarks and industrial EFSMs. Ours is the first empirical study of dependence-based program slicing for EFSMs. Compared to the only previously published dependence-based algorithm, our average slice is smaller 40 percent of the time and larger only 10 percent of the time, with an average slice size of 35 percent for termination insensitive slicing.
INDEX TERMS
Automata, Algorithm design and analysis, Approximation algorithms, Software algorithms, Unified modeling language, Educational institutions, Electronic mail, extended finite state machines, Slicing
CITATION
Kelly Androutsopoulos, David Clark, Mark Harman, Robert M. Hierons, Zheng Li, Laurence Tratt, "Amorphous Slicing of Extended Finite State Machines", IEEE Transactions on Software Engineering, vol.39, no. 7, pp. 892-909, July 2013, doi:10.1109/TSE.2012.72
REFERENCES
[1] H. Agrawal, "On Slicing Programs with Jump Statements," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation, vol. 29, no. 6, pp. 302-312, June 1994.
[2] M.H. Albert and S. Linton, "A Practical Algorithm for Reducing Non-Deterministic Finite State Automata," Technical Report OUCS-2004-11, Univ. of Otago, 2004.
[3] K. Androutsopoulos, D. Clark, M. Harman, J. Krinke, Z. Li, and L. Tratt, "State-Based Model Slicing: A Survey," ACM Computing Surveys, to appear.
[4] K. Androutsopoulos, D. Clark, M. Harman, Z. Li, and L. Tratt, "Control Dependence for Extended Finite State Machines (Best Theory Paper Award Winner)," Proc. Fundamental Approaches to Software Eng., vol. 5503, pp. 216-230, Mar. 2009.
[5] K. Androutsopoulos, N. Gold, M. Harman, Z. Li, and L. Tratt, "A Theoretical and Empirical Study of EFSM Dependence," Proc. 25th IEEE Int'l Conf. Software Maintenance, Sept. 2009.
[6] P.K. Au and J.M. Atlee, "Evaluation of a State-Based Model of Feature Interactions," Proc. Feature Interactions in Telecomm. Networks IV, pp. 153-167, 1997.
[7] T. Ball and S. Horwitz, "Slicing Programs with Arbitrary Control-Flow," Proc. First Conf. Automated Algorithmic Debugging, Dec. 1992.
[8] A. Bertolino, G.D. Angelis, L. Frantzen, and A. Polini, "Model-Based Generation of Testbeds for Web Services," Proc. Eighth Int'l Workshop Formal Approaches to Testing Software, pp. 266-282, 2008.
[9] D. Binkley, "The Application of Program Slicing to Regression Testing," Information and Software Technology, vol. 40, no. 11, pp. 583-594, 1998.
[10] D. Binkley and K.B. Gallagher, "Program Slicing," Advances in Computing, M. Zelkowitz ed., vol. 43, pp. 1-50, Academic Press, 1996.
[11] D. Binkley and M. Harman, "An Empirical Study of Predicate Dependence Levels and Trends," Proc. 25th IEEE Int'l Conf. Software Eng., pp. 330-339, May 2003.
[12] D. Binkley and M. Harman, "A Large-Scale Empirical Study of Forward and Backward Static Slice Size and Context Sensitivity," Proc. IEEE Int'l Conf. Software Maintenance, pp. 44-53, Sept. 2003.
[13] D. Binkley and M. Harman, "A Survey of Empirical Results on Program Slicing," Advances in Computers, vol. 62, pp. 105-178, 2004.
[14] C. Bourhfir, R. Dssouli, E. Aboulhamid, and N. Rico, "Specification and Description Language (SDL)," WebPro Forum Tutorial, Int'l Eng. Consortium, http:/www.iec.org, 2013.
[15] C. Bourhfir, R. Dssouli, E. Aboulhamid, and N. Rico, "Automatic Executable Test Case Generation for Extended Finite State Machine Protocols," Proc. Int'l Conf. Testing of Communicating Systems, pp. 75-90, 1997.
[16] C. Calude, E. Calude, and B. Khoussainov, "Finite Nondeterministic Automata: Simulation and Minimality," Theoretical Computer Science, vol. 242, nos. 1/2, pp. 219-235, 2000.
[17] M. Caporuscio, A.D. Marco, and P. Inverardi, "Model-Based System Reconfiguration for Dynamic Performance Management," J. Systems and Software, vol. 80, no. 4, pp. 455-473, 2007.
[18] J. Choi and J. Ferrante, "Static Slicing in the Presence of Goto Statements," ACM Trans. Programming Languages and Systems, vol. 16, no. 4, pp. 1097-1113, July 1994.
[19] W. Dong, J. Wang, X. Qi, and Z.-C. Qi, "Model Checking UML Statecharts," Proc. Eighth Asia-Pacific Conf. Software Eng. Conf., pp. 363-370, 2001.
[20] European Union, "ARTEMIS Programme Embedded Computing Systems Call for Proposals," https:/www.artemis-ju.eu/, 2009.
[21] C. Fox and A. Luangsodsai, "And-Or Dependence Graphs for Slicing Statecharts," Proc. Beyond Program Slicing Conf., 2005.
[22] K.B. Gallagher and J.R. Lyle, "Using Program Slicing in Software Maintenance," IEEE Trans. Software Eng., vol. 17, no. 8, pp. 751-761, Aug. 1991.
[23] M.R. Garey and D.S. Johnson, Computers and Intractability. W.H. Freeman and Company, 1979.
[24] V. Garousi, L.C. Briand, and Y. Labiche, "Traffic-Aware Stress Testing of Distributed Systems Based on UML Models," Proc. Int'l Conf. Software Eng., pp. 391-400, 2006.
[25] C. Gaston, P.L. Gall, N. Rapin, and A. Touil, "Symbolic Execution Techniques for Test Purpose Definition," Proc. 18th Int'l Conf. IFIP TC 6/WG6.1 Testing of Communicating Systems, pp. 1-18, May 16-18 2006.
[26] D. Harel, "Statecharts: A Visual Formalism for Complex Systems," Science of Computer Programming, vol. 8, no. 3, pp. 231-274, June 1987.
[27] D. Harel and A. Naamad, "The Statemate Semantics of Statecharts," ACM Trans. Software Eng. Methodology, vol. 5, no. 4, pp. 293-333, 1996.
[28] M. Harman, D. Binkley, and S. Danicic, "Amorphous Program Slicing," J. Systems and Software, vol. 68, no. 1, pp. 45-64, Oct. 2003.
[29] M. Harman and S. Danicic, "A New Algorithm for Slicing Unstructured Programs," J. Software Maintenance and Evolution, vol. 10, no. 6, pp. 415-441, 1998.
[30] M. Harman, A. Lakhotia, and D. Binkley, "A Framework for Static Slicers of Unstructured Programs," Information and Software Technology, to appear.
[31] M.P.E. Heimdahl and M.W. Whalen, "Reduction and Slicing of Hierarchical State Machines," Proc. Fifth ACM SIGSOFT Symp. Foundations of Software Eng., 1997.
[32] J.E. Hopcroft, "An n log n Algorithm for Minimizing the States in a Finite Automaton," The Theory of Machines and Computation, Z. Kohavi, ed., pp. 189-196, Academic Press, 1971.
[33] J.E. Hopcroft and J.D. Ullman, Formal Languages and Their Relation to Automata. Addison-Wesley, 1969.
[34] S. Horwitz, T. Reps, and D. Binkley, "Interprocedural Slicing Using Dependence Graphs," ACM Trans. Programming Languages and Systems, vol. 12, no. 1, pp. 26-61, 1990.
[35] J. Hromkovic and G. Schnitger, "Comparing the Size of NFAs with and without Epsilon-Transitions," Theoretical Computer Science, vol. 380, nos. 1/2, pp. 100-114, 2007.
[36] L. Ilie, G. Navarro, and S. Yu, "On NFA Reductions," Theory Is Forever, pp. 112-124, 2004.
[37] L. Ilie and S. Yu, "Follow Automata," Information and Computation, vol. 186, no. 1, pp. 140-162, 2003.
[38] L. Ilie and S. Yu, "Reducing NFAs by Invariant Equivalences," Theoretical Computer Science, vol. 306, nos. 1-3, pp. 373-390, 2003.
[39] S. John, "Minimal Unambiguous $\varepsilon$ NFA," Proc. Ninth Int'l Conf. Implementation and Application of Automata, pp. 190-201, 2004.
[40] R. Jones and R. Lins, Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, 1999.
[41] R. Komondoor and S. Horwitz, "Semantics-Preserving Procedure Extraction," Proc. 27th ACM SIGPLAN-SIGACT Symp. Principles of Programming Languages, pp. 155-169, Jan. 19-21 2000.
[42] B. Korel, G. Koutsogiannakis, and L.H. Tahat, "Model-Based Test Prioritization Heuristic Methods and Their Evaluation," Proc. Third Int'l Workshop Advances in Model-Based Testing, pp. 34-43, 2007.
[43] B. Korel, I. Singh, L. Tahat, and B. Vaysburg, "Slicing of State Based Models," Proc. IEEE Int'l Conf. Software Maintenance, pp. 34-43, Sept. 2003.
[44] D.J. Kuck, R.H. Kuhn, D.A. Padua, B. Leasure, and M. Wolfe, "Dependence Graphs and Compiler Optimizations," Proc. Eighth ACM SIGPLAN-SIGACT Symp. Principles of Programming Languages, pp. 207-218, 1981.
[45] S. Labbé and J.-P. Gallois, "Slicing Communicating Automata Specifications: Polynomial Algorithms for Model Reduction," Formal Aspects of Computing, vol. 20, no. 6, pp. 563-595, 2008.
[46] S.V. Langenhove and A. Hoogewijs, "SV$_t$ L: System Verification through Logic Tool Support for Verifying Sliced Hierarchical Statecharts," Recent Trends in Algebraic Development Techniques, vol. 4409, pp. 142-155, 2007.
[47] A. Leitner, M. Oriol, A. Zeller, I. Ciupa, and B. Meyer, "Efficient Unit Test Case Minimization," Proc. 22nd IEEE/ACM Int'l Conf. Automated Software Eng., pp. 417-420, 2007.
[48] A. Luangsodsai and C. Fox, "Concurrent Statechart Slicing," Proc. Computer Science and Electronic Eng. Conf., pp. 1-7, Sept. 2010.
[49] F. Massicotte, M. Couture, L.C. Briand, and Y. Labiche, "Model-Driven, Network-Context Sensitive Intrusion Detection," Proc. Model Driven Eng. Languages and Systems, vol. 4735, pp. 61-75, 2007.
[50] V.P. Ranganath, T. Amtoft, A. Banerjee, M.B. Dwyer, and J. Hatcliff, "A New Foundation for Control-Dependence and Slicing for Modern Program Structures," Proc. European Symp. Programming, pp. 77-93, 2005.
[51] V.P. Ranganath, T. Amtoft, A. Banerjee, J. Hatcliff, and M.B. Dwyer, "A New Foundation for Control Dependence and Slicing for Modern Program Structures," ACM Trans. Programming Languages and Systems, vol. 29, no. 5, p. 27, 2007.
[52] Y. Sivagurunathan, M. Harman, and S. Danicic, "Slicing, I/O and the Implicit State," Proc. Third Int'l Workshop Automated Debugging, vol. 2, pp. 59-65, May 1997.
[53] A.M. Sloane and J. Holdsworth, "Beyond Traditional Program Slicing," Proc. Int'l Symp. Software Testing and Analysis, pp. 180-186, Jan. 8-10 1996.
[54] F. Strobl and A. Wisspeintner, "Specification of an Elevator Control System—An Autofocus Case Study," Technical Report TUM-I9906, Technische Univerität München, 1999.
[55] R.E. Tarjan, "Depth-First Search and Linear Graph Algorithms," SIAM J. Computing, vol. 1, pp. 146-160, 1972.
[56] F. Tip, "A Survey of Program Slicing Techniques," J. Programming Languages, vol. 3, no. 3, pp. 121-189, Sept. 1995.
[57] G.A. Venkatesh, "The Semantic Approach to Program Slicing," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation, pp. 107-119, 1991.
[58] J. Wang, W. Dong, and Z.-C. Qi, "Slicing Hierarchical Automata for Model Checking UML Statecharts," Proc. Fourth Int'l Conf. Formal Eng. Methods, pp. 435-446, 2002.
[59] M. Weiser, "Program Slices: Formal, Psychological, and Practical Investigations of an Automatic Program Abstraction Method," PhD thesis, Univ. of Michigan, 1979.
[60] M. Weiser, "Program Slicing," Proc. Fifth Int'l Conf. Software Eng., pp. 439-449, Mar. 1981.
[61] G. Xing, "Minimized Thompson NFA," Int'l J. Computer Math., vol. 81, no. 9, pp. 1097-1106, 2004.
[62] R.Y. Zaghal and J.I. Khan, "EFSM/SDL Modeling of the Original TCP Standard (RFC793) and the Congestion Control Mechanism of TCP Reno," Technical Report TR2005-07-22, Internet Working and Media Comm. Research Laboratories, Dept. of Computer Science, Kent State Univ., 2005.
13 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool