Content area
Full Text
Software Quality Journal, 12, 339360, 2004
2004 Kluwer Academic Publishers. Manufactured in The Netherlands.JENS KRINKE
FernUniversitt in Hagen, GermanyAbstract. 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.Keywords: program slicing, program dependence graph, path conditions1. IntroductionProgram slicing answers the question Which statements may affect the computation
at a different statement? At first sight, an answer to that question should be a valuable
help to programmers. After Weisers first publication (Weiser, 1979) on slicing, almost
25 years have passed and various approaches to compute slices have evolved. Usually,
inventions in computer science are adopted widely after around 10 years. Why are slicing techniques not easily available yet? William Griswold gave a talk at PASTE 2001
(Griswold, 2001) on that topicMaking Slicing Practical: The Final Mile. He pointed
out why slicing is still not widely used today. One of the main problems is that slicing
as-it-stands is inadequate to essential software-engineering needs. Usually, slices are
hard to understand. This is partly due to bad user interfaces, but mainly related to the
problem that slicing dumps the results onto the user without any explanation. Griswold stated the need for slice explainers that answer the question why a statement is
included in the slice, as well as the need for filtering. This work will present such a
filtering approach to slicing; it basically introduces barriers which are not allowed
to be passed during slice computation. Especially for chopping, barriers can be used
to focus a chop onto interesting program parts.The next section will present slicing and chopping in detail. Section 3 will...