

The chapter also discusses the factors necessitating the need for reverse engineering, and the techniques used for reverse engineering. The five approaches are different in two aspects: (i) the extent of reengineering performed and (ii) the rate of substitution of the operational system with the new one. It explains five basic reengineering approaches that include: big bang, incremental, partial, iterative, and evolutionary. The chapter introduces the concept of software reengineering based on three basic principles: abstraction, refinement, and alteration.

It discusses four general software reengineering benefits: (i) improving maintainability (ii) migrating to a newer technology (iii) improving quality and (iv) preparing for functional enhancement. This chapter introduces the concepts, processes, and techniques of software reengineering including the risks associated with it.
