Skip to main content
Log in

Automatic extraction of executable program subsets by simultaneous dynamic program slicing

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

Developers of software product families and maintainers of “legacy” software can benefit from the ability to automatically extract a correctly functioning subset of the code of a system that performs a desired subset of its behaviors. This article introduces a technique for automatic subsetting based on computing asimultaneous dynamic program slice of the code for a set of representative inputs. I show first why the naive approach (unioning traditional dynamic slices) fails, then give an abstract algorithm that succeeds in any slicing framework satisfying certain (mild) assumptions. Experiments using an implementation within the ISAT environment indicate that the algorithm consistently produces significantly smaller subsets than three competing approaches. I also discuss how to characterize the subset's correctness on inputs of interest outside the set used to compute the slice.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Agrawal, H., DeMillo, R. A., and Spafford, E. H. 1993. Debugging with dynamic slicing and backtracking.Software Practice and Experience 23(6):589–616.

    Google Scholar 

  • Beck, J., and Eichmann, D. 1993. Program and interface slicing for reverse engineering. InProc. 15th International Conference on Software Engineering, pp. 509–518.

  • Forgy, C. L. 1981.The OPS5 User's Manual. Department of Computer Science, Carnegie-Mellon University.

  • Gallagher, K. B., and Lyle, J. R. 1991. Using program slicing in software maintenance.IEEE Transactions on Software Engineering 17(8):751–761.

    Google Scholar 

  • Hall, R. J. 1992. Interactive specification acquisition via scenarios: A proposal. InProc. AAAI-92 Workshop on Automating Software Design, pp. 60–65.

  • Hall, R. J. 1993. Validation of rule-based reactive systems by sound scenario generalization. InProc. Eighth Knowledge-based Software Engineering Conference, pp. 30–39.

  • Hall, R. J. 1994. Systematic incremental validation of rule-based reactive systems. InProc. Ninth Knowledge-Based Software Engineering Conference, pp. 69–78.

  • Horwitz, S., Prins, J., and Reps, T. 1989. Integrating non-interfering versions of programs.ACM Transactions on Programming Languages and Systems 11(3):345–387.

    Google Scholar 

  • Korel, B., and Laski, J. 1990. Dynamic slicing of computer programs.J. Systems Software 13:187–195.

    Google Scholar 

  • Musa, J. 1993. Operational profiles in software-reliability engineering.IEEE Software, pp. 14–32.

  • Weiser, M. 1981. Program slicing. InProc. Fifth International Conference on Software Engineering, pp. 439–449.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Hall, R.J. Automatic extraction of executable program subsets by simultaneous dynamic program slicing. Autom Software Eng 2, 33–53 (1995). https://doi.org/10.1007/BF00873408

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00873408

Keywords

Navigation