This document discusses software re-engineering, which involves examining and altering an existing software system to reconstruct it in a new form that is more maintainable. The key steps in re-engineering include source code translation, reverse engineering, improving program structure, program modularization, and data re-engineering. The overall goal of re-engineering is to analyze, reorganize, and modify existing software and data structures to make the system easier to understand and maintain.