Results 1 -
4 of
4
Using Program Slicing in Software Maintenance
- IEEE Transactions on Software Engineering
, 1991
"... Program slicing, introduced by Weiser, is known to help programmers in understanding foreign code and in debugging. We apply program slicing to the maintenance problem by extending the notion of a program slice (that originally required both a variable and line number) to a decomposition slice, on ..."
Abstract
-
Cited by 242 (13 self)
- Add to MetaCart
Program slicing, introduced by Weiser, is known to help programmers in understanding foreign code and in debugging. We apply program slicing to the maintenance problem by extending the notion of a program slice (that originally required both a variable and line number) to a decomposition slice, one that captures all computation on a given variable; i.e., is independent of line numbers. Using the lattice of single variable decomposition slices, ordered by set inclusion, we demonstrate how to form a slice-based decomposition for programs. We are then able to delineate the effects of a proposed change by isolating those effects in a single component of the decomposition. This gives maintainers a straightforward technique for determining those statements and variables that may be modified in a component and those that may not. Using the decomposition, we provide a set of principles to prohibit changes that will interfere with unmodified components. These semantically consistent ch...
Program slicing
"... Program slicing is a decomposition technique that elides program components not relevant to a chosen computation, referred to as a slicing criterion. The remaining components form an executable program called a slice that computes a projection of the original program’s semantics. Using examples coup ..."
Abstract
-
Cited by 112 (21 self)
- Add to MetaCart
Program slicing is a decomposition technique that elides program components not relevant to a chosen computation, referred to as a slicing criterion. The remaining components form an executable program called a slice that computes a projection of the original program’s semantics. Using examples coupled with fundamental principles, a tutorial introduction to program slicing is presented. Then applications of program slicing are surveyed, ranging from its first use as a debugging technique to current applications in property verification using finite state models. Finally, a summary of research challenges for the slicing community is discussed.
The Semantics of Program Slicing
, 1988
"... ... This paper concerns the relationship between the execution behavior of a program and the execution behavior of its slices. Our main results are those stated as the Slicing Theorem and the Termination Theorem. The Slicing Theorem demonstrates that a slice captures a portion of a program's behavio ..."
Abstract
-
Cited by 42 (10 self)
- Add to MetaCart
... This paper concerns the relationship between the execution behavior of a program and the execution behavior of its slices. Our main results are those stated as the Slicing Theorem and the Termination Theorem. The Slicing Theorem demonstrates that a slice captures a portion of a program's behavior in the sense that, for any initial state on which the program halts, the program and the slice compute the same sequence of values for each element of the slice. The Termination Theorem demonstrates that if a program is decomposed into (two or more) slices, the program halts on any state for which all the slices halt. These
Conditions to Assure Semantically Consistent Software Merges in Linear Time
- In Third Conference on Con Management
, 1991
"... Software maintenance is the process of designing and integrating consistent changes to an existing software system. It is difficult for the maintainer to ascertain the complete effect of a code change; the maintainer may make a change to a program that is syntactically and semantically legal, but ha ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Software maintenance is the process of designing and integrating consistent changes to an existing software system. It is difficult for the maintainer to ascertain the complete effect of a code change; the maintainer may make a change to a program that is syntactically and semantically legal, but has ripples into the parts of the program that were to remain unchanged. A decomposition slice is the union of certain program slices and can be used to decompose a program into a fixed part and and changing part. A decomposition slice induces guidelines for maintainers to use so that changes can be assured to be completely contained in the modules under consideration and that there are no undetected linkages between the modified and unmodified code. In this paper we review the conditions for changing on component in ways that will guarantee that the two components will not interact in any untoward fashion. What we have, then, are two related programs (since a slice is an executable projectio...

