Backwards engineering (reverse engineering) is the process of analysing an existing product’s constituent components to allow a fully replicated design to be created from the information extracted.
You can reverse engineer by constructing models that describe the existing software and the presumed intent. This process has three main stages:
· Implementation recovery. Quickly learn about the application and prepare an initial model.
· Design recovery. Undo the mechanics of the database structure and resolve foreign key references.
· Analysis recovery. Remove design artefacts and eliminate any errors in the model.
Reverse Engineering Principles
Several broad principles govern the reverse engineering process.
· Don't mistake hypotheses for conclusions. Reverse engineering yields hypotheses. You must thoroughly understand the application before reaching firm conclusions.
· Expect multiple interpretations. There is no single answer as in forward engineering. Alternative interpretations of the database structure and data can yield different models. The more information that is available, the less judgments should vary among reverse engineers.
· Don't be discouraged by approximate results. It is worth a modest amount of time to extract 80 percent of an existing database's meaning. You can use the typical forward engineering techniques (such as interviewing knowledgeable users) to obtain the remaining 20 percent. Many people find this lack of perfection uncomfortable because it is a paradigm shift from forward engineering.
· Expect odd constructs. Database designers, even the experts, occasionally use uncommon constructs. In some cases, you won't be able to produce a complete, accurate model of the database because that model never existed.
· Watch for a consistent style. Databases are typically designed using a consistent strategy, including consistent violations of good design practice. You should be able to deduce the underlying strategy.
No comments:
Post a Comment