Skip to main content
Log in

Slicing, Chopping, and Path Conditions with Barriers

  • Published:
Software Quality Journal Aims and scope Submit manuscript

Abstract

One of the critiques on program slicing is that slices presented to the user are hard to understand. This is mainly related to the problem that slicing ‘dumps’ the results onto the user without any explanation. This work will present an approach that can be used to ‘filter’ slices. This approach basically introduces ‘barriers’ which are not allowed to be passed during slice computation. An earlier filtering approach is chopping which is also extended to obey such a barrier. The barrier variants of slicing and chopping provide filtering possibilities for smaller slices and better comprehensibility. The concept of barriers is then applied to path conditions, which provide necessary conditions under which an influence between the source and target criterion exists. Barriers make those conditions more precise.

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

  • Anderson, P. and Teitelbaum, T. 2001. Software inspection using CodeSurfer, Workshop on Inspection in Software Engineering (CAV 2001).

  • Bates, S. and Horwitz, S. 1993. Incremental program testing using program dependence graphs, Conference Record of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 384–396.

  • Beck, J. and Eichmann, D. 1993. Program and interface slicing for reverse engineering, IEEE/ACM 15th Conference on Software Engineering (ICSE’93), pp. 509–518.

  • Bieman, J.M. and Ott, L.M. 1994. Measuring functional cohesion, IEEE Transactions on Software Engineering 20(8): 644–657.

    Google Scholar 

  • Binkley, D. 1992. Using semantic differencing to reduce the cost of regression testing, Proceedings of the International Conference on Software Maintenance, pp. 41–50.

  • Binkley, D. 1998. The application of program slicing to regression testing, Information and Software Technology 40(11-12): 583–594.

    Google Scholar 

  • Canfora, G., Cimitile, A., and De Lucia, A. 1998. Conditioned program slicing, Information and Software Technology 40(11-12): 595–607.

    Google Scholar 

  • Danicic, S., Fox, C., Harman, M., and Hierons, R. 2000. ConSIT: A conditioned program slicer, International Conference on Software Maintenance, pp. 216–226.

  • De Lucia, A., Fasolino, A.R., and Munro, M. 1996. Understanding function behaviors through program slicing, 4th IEEE Workshop on Program Comprehension, pp. 9–18.

  • De Lucia, A., Harman, M., Hierons, R., and Krinke, J. 2003. Unions of slices are not slices, 7th European Conference on Software Maintenance and Reengineering.

  • Ferrante, J., Ottenstein, K.J., and Warren, J.D. 1987. The program dependence graph and its use in optimization, ACM Transactions on Programming Languages and Systems 9(3): 319–349.

    Google Scholar 

  • Fox, C., Danicic, S., Harman, M., and Hierons, R. 2004. ConSIT: a fully automated conditioned program slicer, Software, Practice and Experience 34(1): 15–46.

    Google Scholar 

  • Gallagher, K. and O’Brien, L. 1997. Reducing visualization complexity using decomposition slices, Software Visualization Workshop, pp. 113–118.

  • Gallagher, K.B. 1996. Visual impact analysis, Proceedings of the International Conference on Software Maintenance, pp. 52–58.

  • 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 

  • Griswold, W.G. 2001. Making slicing practical: the final mile, PASTE’01, Invited talk.

  • Gupta, R., Harrold, M.J., and Soffa, M.L. 1992. An approach to regression testing using slicing, Proceedings of the IEEE Conference on Software Maintenance, pp. 299–308.

  • Harman, M. and Danicic, S. 1995. Using program slicing to simplify testing, Software Testing, Verification and Reliability 5(3): 143–162.

    Google Scholar 

  • Horwitz, S.B., Reps, T.W., and Binkley, D. 1990. Interprocedural slicing using dependence graphs, ACM Transactions on Programming Languages and Systems 12(1): 26–60.

    Google Scholar 

  • Jackson, D. and Rollins, E.J. 1994. A new model of program dependences for reverse engineering, Proceedings of the 2nd ACM SIGSOFT Symposium on Foundations of Software Engineering, pp. 2–10.

  • Krinke, J. 2002. Evaluating context-sensitive slicing and chopping, International Conference on Software Maintenance, pp. 22–31.

  • Krinke, J. 2003. Advanced Slicing of Sequential and Concurrent Programs, Ph.D. Thesis, Universität Passau.

  • Krinke, J. 2004. Visualization of program dependence and slices, International Conference on Software Maintenance.

  • Krinke, J. and Snelting, G. 1998. Validation of measurement software as an application of slicing and constraint solving, Information and Software Technology 40(11-12): 661–675.

    Google Scholar 

  • Lyle, J.R. and Weiser, M. 1987. Automatic program bug location by program slicing, Proceedings of the 2nd International Conference on Computers and Applications, pp. 877–882.

  • Orso, A., Apiwattanapong, T., and Harrold, M.J. 2003. Leveraging field data for impact analysis and regression testing, Proceedings of the 11th European Software Engineering Conference and 11th ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2003).

  • Orso, A., Sinha, S., and Harrold, M.J. 2001. Incremental slicing based on data-dependences types, International Conference on Software Maintenance.

  • Ott, L.M. and Bieman, J.M. 1998. Program slices as an abstraction for cohesion measurement, Information and Software Technology 40(11-12): 691–700.

    Google Scholar 

  • Ott, L.M. and Thuss, J.J. 1989. The relationship between slices and module cohesion, Proceedings of the 11th ACM Conference on Software Engineering, pp. 198–204.

  • Reps, T., Horwitz, S., Sagiv, M., and Rosay, G. 1994. Speeding up slicing, Proceedings of the ACM SIGSOFT’ 94 Symposium on the Foundations of Software Engineering, pp. 11–20.

  • Reps, T. and Rosay, G. 1995. Precise interprocedural chopping, Proceedings of the 3rd ACM Symposium on the Foundations of Software Engineering, pp. 41–52.

  • Robschink, T. and Snelting, G. 2002. Efficient path conditions in dependence graphs, Proceedings of the 24th International Conference of Software Engineering (ICSE), pp. 478–488.

  • Snelting, G. 1996. Combining slicing and constraint solving for validation of measurement software, Static Analysis Symposium, Lecture Notes in Computer Science, Vol. 1145, pp. 332–348. Springer.

    Google Scholar 

  • Snelting, G., Robschink, T., and Krinke, J. 2003. Efficient path conditions in dependence graphs for software safety analysis, submitted.

  • Steindl, C. 1998. Intermodular slicing of object-oriented programs, International Conference on Compiler Construction, Lecture Notes in Computer Science, Vol. 1383, pp. 264–278. Springer.

    Google Scholar 

  • Steindl, C. 1999. Benefits of a data flow-aware programming environment, Workshop on Program Analysis for Software Tools and Engineering (PASTE’99).

  • Sturm, T. and Weispfenning, V. 1998. Computational geometry problems in REDLOG, Automated Deduction in Geometry, pp. 58–86.

  • Weiser, M. 1979. Program Slices: Formal, Psychological, and Practical Investigations of an Automatic Program Abstraction Method, Ph.D. Thesis, University of Michigan, Ann Arbor.

    Google Scholar 

  • Weiser, M. 1984. Program slicing, IEEE Transactions on Software Engineering 10(4): 352–357.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Krinke, J. Slicing, Chopping, and Path Conditions with Barriers. Software Quality Journal 12, 339–360 (2004). https://doi.org/10.1023/B:SQJO.0000039792.93414.a5

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/B:SQJO.0000039792.93414.a5

Navigation