Reverse Engineering to Understand Data
Reverse engineering of data occurs at different levels of abstraction .It is often the first reengineering task.
- At the program level, internal program data structures must often be reverse engineered as part of an overall reengineering effort.
- At the system level, global data structures (e.g., files, databases) are often reengineered to accommodate new database management paradigms (e.g., the move from flat file to relational or object-oriented database systems).
Internal Data Structures
Reverse engineering techniques for internal program data focus on the definition of classes of objects.
- This is accomplished by examining the program code with the intent of grouping related program variables.
- In many cases, the data organization within the code identifies abstract data types.
- For example, record structures, files, lists, and other data structures often provide an initial indicator of classes.
Database Structures
A database allows the definition of data objects and supports some method for establishing relationships among the objects. Therefore, reengineering one database schema into another requires an understanding of existing objects and their relationships.
The following steps define the existing data model as a precursor to reengineering a new database model:
- Build an initial object model.
- Determine candidate keys (the attributes are examined to determine whether they are used to point to another record or table; those that serve as pointers become candidate keys).
- Refine the tentative classes.
- Define generalizations.
Reverse Engineering – Software Engineering
Software Reverse Engineering is a process of recovering the design, requirement specifications, and functions of a product from an analysis of its code. It builds a program database and generates information from this. This article focuses on discussing reverse engineering in detail.
Contact Us