Any response to the software maintenance challenge must address the underlying problem of program understanding. One way of doing this is through reverse engineering. A successful approach to reverse engineering must be both exible and scalable. Most reverse engineering tools provide a xed palette of analysis, extraction, organization, representation, and selection techniques. This paper descri...