A review of slicing techniques in software engineering

Program slice is the part of program that may take the program off the path of the desired output at some point of its execution. Such point is known as the slicing criterion. This point is generally identified at a location in a given program coupled with the subset of variables of program. This process in which program slices are computed is called program slicing. Weiser was the person who gave the original definition of program slice in 1979. Since its first definition, many ideas related to the program slice have been formulated along with the numerous numbers of techniques to compute program slice. Meanwhile, distinction between the static slice and dynamic slice was also made. Program slicing is now among the most useful techniques that can fetch the particular elements of a program which are related to a particular computation. Quite a large numbers of variants for the program slicing have been analyzed along with the algorithms to compute the slice. Model based slicing split the large architectures of software into smaller sub models during early stages of SDLC. Software testing is regarded as an activity to evaluate the functionality and features of a system. It verifies whether the system is meeting the requirement or not. A common practice now is to extract the sub models out of the giant models based upon the slicing criteria. Process of model based slicing is utilized to extract the desired lump out of slice diagram. This specific survey focuses on slicing techniques in the fields of numerous programing paradigms like web applications, object oriented, and components based. Owing to the efforts of various researchers, this technique has been extended to numerous other platforms that include debugging of program, program integration and analysis, testing and maintenance of software, reengineering, and reverse engineering. This survey portrays on the role of model based slicing and various techniques that are being taken on to compute the slices.

[1]  Uffe Kock Wiil,et al.  Verification-driven slicing of UML/OCL models , 2010, ASE.

[2]  Uffe Kock Wiil,et al.  Evaluation of Tools and Slicing Techniques for Efficient Verification of UML/OCL Class Diagrams , 2011, Adv. Softw. Eng..

[3]  Alessandro Orso,et al.  Incremental slicing based on data-dependences types , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[4]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

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

[6]  Jianjun Zhao,et al.  Software Architecture Slicing , 1997 .

[7]  Andrew M. Sutton,et al.  Context-free slicing of UML class models , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[8]  Mathieu Acher,et al.  Slicing feature models , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[9]  Janusz W. Laski,et al.  Dynamic slicing of computer programs , 1990, J. Syst. Softw..

[10]  Bernard Carré,et al.  Information-flow and data-flow analysis of while-programs , 1985, TOPL.

[11]  Mathieu Acher,et al.  Separation of concerns in feature modeling: support and applications , 2012, AOSD.

[12]  R. Mall,et al.  UML Sequence Diagram Based Testing Using Slicing , 2005, 2005 Annual IEEE India Conference - Indicon.

[13]  Ákos Horváth,et al.  Towards dynamic backward slicing of model transformations , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[14]  Jaiprakash T. Lallchandani,et al.  Static Slicing of UML Architectural Models , 2009, J. Object Technol..

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

[16]  Uffe Kock Wiil,et al.  UOST: UML/OCL Slicing Technique for Efficient Verification of Models , 2011 .

[17]  Uffe Kock Wiil,et al.  A feedback technique for unsatisfiable UML/OCL class diagrams , 2014, Softw. Pract. Exp..

[18]  Rajiv Gupta,et al.  Hybrid slicing: an approach for refining static slices using dynamic information , 1995, SIGSOFT FSE.

[19]  Prafulla Kumar Behera,et al.  Test Case Design Using Slicing of UML Interaction Diagram , 2012 .

[20]  David Eichmann,et al.  Program and interface slicing for reverse engineering , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[21]  Heung Seok Chae,et al.  Modularization of the UML Metamodel Using Model Slicing , 2008, Fifth International Conference on Information Technology: New Generations (itng 2008).

[22]  Philip Samuel,et al.  Automatic test case generation from UML communication diagrams , 2007, Inf. Softw. Technol..

[23]  Philip Samuel,et al.  Slicing-based test case generation from UML activity diagrams , 2009, SOEN.

[24]  Jianjun Zhao,et al.  Applying slicing technique to software architectures , 1998, Proceedings. Fourth IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.98EX193).

[25]  Jong-Deok Choi,et al.  A mechanism for efficient debugging of parallel programs , 1988, PADD '88.

[26]  Mehrdad Sabetzadeh,et al.  SafeSlice: a model slicing and design safety inspection tool for SysML , 2011, ESEC/FSE '11.

[27]  Mark Harman,et al.  Stop-List Slicing , 2006, 2006 Sixth IEEE International Workshop on Source Code Analysis and Manipulation.

[28]  K. Lano,et al.  A framework for verification of model transformations , 2013 .

[29]  Jens Krinke,et al.  Slicing, Chopping, and Path Conditions with Barriers , 2004, Software Quality Journal.

[30]  Jacques Julliand,et al.  B model slicing and predicate abstraction to generate tests , 2013, Software Quality Journal.

[31]  Karl J. Ottenstein,et al.  The program dependence graph in a software development environment , 1984, SDE 1.

[32]  Jaiprakash T. Lallchandani,et al.  Slicing UML architectural models , 2008, SOEN.

[33]  M. Harman,et al.  Program Slicing Using Functional Networks , 2022 .

[34]  Kevin Lano,et al.  Slicing Techniques for UML Models , 2011, J. Object Technol..

[35]  Chris Fox,et al.  Concurrent statechart slicing , 2010, 2010 2nd Computer Science and Electronic Engineering Conference (CEEC).

[36]  Uffe Kock Wiil,et al.  UMLtoCSP (UOST): a tool for efficient verification of UML/OCL class diagrams through model slicing , 2012, SIGSOFT FSE.

[37]  Ákos Horváth,et al.  Dynamic Backward Slicing of Model Transformations , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.

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

[39]  Jens Krinke,et al.  Barrier slicing and chopping , 2003, Proceedings Third IEEE International Workshop on Source Code Analysis and Manipulation.

[40]  Kevin Lano,et al.  Slicing of UML models using model transformations , 2010, MODELS'10.

[41]  Rupinder Singh,et al.  Practical approach for model based slicing , 2013 .

[42]  Pierre-Yves Schobbens,et al.  Supporting multiple perspectives in feature-based configuration , 2013, Software & Systems Modeling.

[43]  Indrakshi Ray,et al.  Contract-Aware Slicing of UML Class Models , 2013, MoDELS.

[44]  Heung Seok Chae,et al.  UMLSlicer: A tool for modularizing the UML metamodel using slicing , 2008, 2008 8th IEEE International Conference on Computer and Information Technology.

[45]  Mark Harman,et al.  Amorphous program slicing , 2003, J. Syst. Softw..

[46]  Janusz W. Laski,et al.  Dynamic Program Slicing , 1988, Inf. Process. Lett..

[47]  G. A. Venkatesh,et al.  The semantic approach to program slicing , 1991, PLDI '91.

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

[49]  Jaiprakash T. Lallchandani,et al.  A Dynamic Slicing Technique for UML Architectural Models , 2011, IEEE Transactions on Software Engineering.

[50]  Jean-Marc Jézéquel,et al.  Meta-model Pruning , 2009, MoDELS.