Legacy Program Understanding Through Program Slicing and Plan Recognition

Institute for Space Systems Operations


Description:

One of the greatest challenges in the maintenance and adaptation of long-lived software systems is the comprehension of system structure after months or years of modifications, few of which are ever reflected in changes to the corresponding portions of the system's design documents. The maintainers are left with a daunting task discerning the design and functionality of the system from the only remaining trustable artifact, the source code. For small programs (hundreds or even thousands of source lines) this can prove reasonably tractable, but most currently fielded software systems are measured in tens of thousands, hundreds of thousands, and even tens of millions of source lines. Clearly, automated support for program comprehension is required in these cases.

Two techniques offer interesting promise in addressing these problems. The first technique, plan-based program recognition, involves the creation of a catalog of plans, patterns of commonly used program constructs that are used in a given programming language to implement a particular design goal. A recognizer uses these plans to construct a characterization of the program based upon the semantics of the plans, rather than the syntax of the programming language. However, plan recognition is quite expensive. The second technique, program slicing, involves the creation of a derivative program containing only those statements relevant to the portion of the program state currently under study by the maintainer. Fewer statements implies improved comprehension.

We are creating a hybrid plan recognition technique based upon program slicing to support program maintenance and adaptation. This technique enjoys both the syntactic analytic approach of slicing and the semantics base approach of plan recognition, employing each where appropriate to support the other. We are also developing a proof-of-concept prototype supporting the proposed technique in order to demonstrate its efficacy and conduct a case study demonstrating the utility of the proposed technique. In particular, we intend to support practical languages (e.g., FORTRAN and C), rather than constructing a toy language.

Task Schedule:

Relevance:

This work is a natural extension of work currently underway at UHCL - enhancing the current work of the Repository Based Software Engineering (RBSE) project with the ability to manipulate content as well as metadata relating to software resources. This is of key value to NASA, given the scale, distribution and complexity of the legacy systems present within the agency. Furthermore, UHCL has been very successful in the technology transfer and commercialization of the MORE repository (140+ external sites evaluating the system, one commercialization license granted and one under negotiation), developed within RBSE with NASA funding. This work promises similar results.

JSC Resources Required: None

UHCL Investigator: David Eichmann

JSC Team Member: Charles Pitman (NASA/JSC/PT4)

In conjunction with: Repository Based Software Engineering Program

Contact Information:

Assistant Professor of Software Engineering,
University of Houston - Clear Lake,
Box 113, 2700 Bay Area Boulevard,
Houston, TX 77058.

eichmann@rbse.jsc.nasa.gov
Phone: + 713 283-3875
Fax : + 713 283-3869