Program understanding in database reverse engineering

  • Jean Henrard

Student thesis: Doc typesDoctor of Sciences

Abstract

For many years software engineering has primarily focused on the development of new systems and neglected maintenance and reengineering of legacy applications. Maintenance typically represents 70% of the cost during the life cycle of a system. In order to allow an efficient and safe maintenance of a legacy system, we need to reverse engineer it in order to reconstruct its missing or out-of-date documentation. In data-oriented applications the reverse engineering complexity can be broken down by considering that the database can be reverse engineered independently of the procedural components.

Database reverse engineering can be defined as the process of recovering the database's schema(s) of an application from database declaration text and program source code that use the data in order to understand their exact structure and meaning. A database reverse engineering methodology is broken down into three processes: project preparation, data structure extraction that recovers the database's logical schema and data structure conceptualization that interprets the logical schema in conceptual terms.

In order to validate our methodology and program understanding techniques, we have developed tools to support them. Those tools have proved absolutely necessary to perform database reverse engineering of medium to larger applications in reasonable time and at reasonable cost. To cut down on the cost of large projects, we have stressed the need for automation to reduce the manual work of the analyst. Our experience with real size projects has taught us that the management aspects of a project are essential success factors. The management of a project comprises different aspects such as database reverse engineering explanation, cost evaluation and database reverse engineering result evaluation.

The results of this thesis are used by REVER (a spin-off created in 2003).

Date of Award19 Sept 2003
Original languageEnglish
Awarding Institution
  • University of Namur
SupervisorJean-Luc Hainaut (Supervisor), Jean FICHEFET (Jury), Rainer Koschke (Jury), Jean-Marc Petit (Jury) & Jean-Marie Jacquet (Jury)

Keywords

  • Program slicing
  • Migration
  • Data reverse engineering
  • Data structure extraction
  • Conceptualization

Cite this

'