Abstract:
In modern software engineering, software reverse engineering is the first step of software maintenance, software reengineering, software reuse and software restructure It actually is a design recovery and knowledge abstracting process The differences between object oriented language and procedural language demand other reverse engineering techniques In this paper, the design knowledge in object oriented design and the software reverse engineering process are thoroughly analyzed According to the analysis result, the contents of object oriented software reverse engineering are summarized and a classification method about its techniques is proposed Then, the representative techniques, tools and research directions in this area are surveyed Finally, further research directions of general interest on this topic are proposed