Granularity-Driven Dynamic Predicate Slicing Algorithms for Message Passing Systems

  • Authors:
  • Hon F. Li;Juergen Rilling;Dhrubajyoti Goswami

  • Affiliations:
  • Department of Computer Science, Concordia University, Montreal, QC, Canada, H3G 1M8. hfli@cs.concordia.ca;Department of Computer Science, Concordia University, Montreal, QC, Canada, H3G 1M8. rilling@cs.concordia.ca;Department of Computer Science, Concordia University, Montreal, QC, Canada, H3G 1M8. goswami@cs.concordia.ca

  • Venue:
  • Automated Software Engineering
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Program Slicing is a well-known decomposition technique that transforms a large program into a smaller one that contains only statements relevant to the computation of a selected function. In this paper, we present two novel predicate-based dynamic slicing algorithms for message passing programs. Unlike more traditional slicing criteria that focus only on parts of the program that influence a variable of interest at a specific position in the program, a predicate focuses on those parts of the program that influence the predicate. The dynamic predicate slices capture some global requirements or suspected error properties of a distributed program and computes all statements that are relevant. The presented algorithms differ from each other in their computational approaches (forward versus backward) and in the granularity of information they provide. A proof of correctness of these algorithms is provided. Through the introduction of dominant states and dominant events, critical statement executions are identified that change the value of the global predicate. Under this formulation, optimizing dynamic predicate slicing becomes a meaningful goal as well. Finally, we present how predicate slices can be applied to support comprehension tasks for analyzing and maintaining distributed programs.