ABSTRACT

Chapter Summary The objective of reverse engineering is to extract design information from code automatically or in the interaction with a programmer. During program maintenance, programmers often extract abstract program views such as cross-reference lists, control flow relations, or procedure call trees to better understand a maintenance task at hand. Techniques for object and component recovery have received much attention because of the market need. Reverse engineering techniques can be helpful in any project that involves poorly documented legacy software, such as maintenance, reengineering of legacy software into new architectures, or reengineering for reuse.