Norman Wilde
University of West Florida
Pensacola, Florida 32514, USA
e-mail:
THE KEY PROBLEM in software maintenance and reuse is that you usually need to understand old code in order to make use of it. Probably 30 - 40% of all programmer time and many millions of dollars is expended yearly in large software organizations in studying old code and documents in order to make changes. Understanding takes time and thus impacts project budgets. Changes made without perfect understanding create subtle bugs that can be a major cause of schedule slippage.
Maintainers tell us that a frequent question is "Where does this program do X?". Large systems provide many functionalities to their users but it can be very difficult to locate the code implementing a particular functionality.
To answer this question, the technique called software reconnaissance. has recently been developed. Software reconnaissance locates key code for a particular functionality by carefully analyzing traces of program execution. It has been tried successfully on systems of up to 30,000 lines of code and seems to be both effective and easy to use.
Expected benefits of software reconnaissance are faster maintenance and reuse, and a reduction in the budget and schedule uncertainties caused by imperfect code understanding. The technique should be particularly valuable for code assets that will be maintained for a long period or for code that is about to be re-engineered.
Software reconnaissance is quite easy to implement using either the tools available through SERC, or else a test coverage monitor such as Tactic (developed by Siemens Corporate Research) or Atac (developed by Bellcore).
A 1994 SERC project will help SERC affiliate companies evaluate software reconnaissance by performing demonstration trials at affiliate sites on active affiliate code. If you would be interested in participating in such a study please contact the author of this report.
This report may be cited as SERC-TR-75F, Software Engineering Research Center, CSE-301, University of Florida, Gainesville, FL 32611, July 1994.