(Software archeology and the handbook of software architecture, 2008) Sneed, Harry M.
This paper is an attempt to define what software reengineering is and what it has accomplished in the light of 20 years of practical application. The paper points out that reengineering is one of the many software maintenance activities, i.e. everything done with software once it has been put to use. Reengineering actions are devoted to improving the technical quality of existing software. By accepting this definition, it is possible to distinguish reengineering from other related activities performed on a software product after its first release such as reverse engineering, redocumentation, evolution and migration.