Using Bidirectional Data Flow Analysis To Support Software Reuse

  • Authors:
  • C. M. Overstreet;R. Cherinka;R. Sparks

  • Affiliations:
  • -;-;-

  • Venue:
  • Using Bidirectional Data Flow Analysis To Support Software Reuse
  • Year:
  • 1994

Quantified Score

Hi-index 0.00

Visualization

Abstract

Ripple analysis, a form of program slicing, can be used to identify those parts of an existing system which provide specific functionality, thus supporting code reuse and other software development/maintenance activities. If a functional requirement is completely met by an identified set of input and output statements, forward ripple analysis for all input statements combined with backward ripple analysis for all output statements can identify all parts of the code related to that functionality. This paper describes a prototype static code analysis system for Pascal code that can be used to identify bi-directional ripples (based on data flow analysis). This system utilizes data flow analysis techniques to collect flow insensitive information about the variables in each source statement and build a database containing a call, control flow, and dead graph. This data base can then be used to identify forward and backward ripples of all appropriate input and output statements and thus the subset of the system which provides the specified functionality. In this paper we describe work under way to build a system which can generate the data flow information to support code reuse and other software development and maintenance activities. An interesting observation is that forward ripples require less average computation than backward ripples. A ripple algorithm that performs a graph traversal to identify reverse an forward side-effects for a given variable on a given source line is described.