A Case Study of Feature Location in Unstructured Legacy Fortran Code
Feature location is a major problem in supporting legacy code. Two methods, the Sojhare Reconnaissance technique and the Dependency Graph search method, have been proposed to help software engineers locate features in a program that needs to be modiped. Both methods have been developed and evaluated largely using relatively modern C code. This report describes preliminary experiences in adapting them to legacy Fortran code typical of systems developed in the 1970's. A case study was performed to apply the two methods to the CONVERT3 program, which is part of the FASTGEN geometric modeling suite. CONVERT3 exhibits many characteristics typical of legacy Fortran programs such as poor modularity, prolific use of unstructured GOTOs, tight coupling through large common blocks, and confusing program plans introduced to provide efficiency on now-obsolete platforms. Both methods were effective in locating features in CONVERT3. The Dependency Graph search method required considerable adaptation to be useful on this kind of program and required the systematic exploration of a large amount of code. The Software Reconnaissance technique was able to locate features with less searching but, as compared to earlier experience with C, the Fortran code proved more dijjficult to understand once it had been located.