A comparison of methods for locating features in legacy software

  • Authors:
  • Norman Wilde;Michelle Buckellew;Henry Page;Vaclav Rajlich;LaTreva Pounds

  • Affiliations:
  • Department of Computer Science, University of West Florida, 11000 University Parkway, Pensacola, FL;Lockheed Martin Integrated Systems, 8529 South Park Circle, Suite 300, Orlando, FL;Micro Systems Inc., 35 Hill Ave. NW, Fort Walton Beach, FL;Department of Computer Science, Wayne State University, Detroit, MI;Dynetics Inc., 2 Clifford Dr., Shalimar, FL

  • Venue:
  • Journal of Systems and Software
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

Software engineers frequently need to locate the code that implements a specific feature of a program in order to fix a problem or add an enhancement. Several methods have recently been proposed to aid in feature location, notably the software reconnaissance method, which uses dynamic analysis of traces of execution, and the dependency graph method which involves static tracing of calling and data flow relationships in the program's dependency graph. Most studies performed so far on these methods have used relatively modern C code. However there is a large body of existing legacy software in Fortran and similar languages which is often much more poorly structured. This paper describes a case study to locate two features in a sample of poorly structured legacy Fortran code. Both methods were applied to locate the features, along with the well known "grep" text search method for comparison. Both the software reconnaissance and dependency graph methods located both features, although some difficulties were encountered and adaptations were needed due to the very tangled nature of the code. The "grep" search method worked well for one of the two features, but was ineffective for the second, more complex case.