views:

960

answers:

5

What is the difference between re-engineering and reverse engineering?

Simple example is much appreciated if provided.

+9  A: 

Reverse engineering is finding out how a product works from the finished product.

Re-engineering is to examine the finished product and build it again, but better.

Stefan Thyberg
+1  A: 

Wikipedia

The reengineering of software was described by Chikofsky and Cross in their 1990 paper[1], as "The examination and alteration of a system to reconstitute it in a new form". Less formally, reengineering is the modification of a software system that takes place after it has been reverse engineered, generally to add new functionality, or to correct errors.

This entire process is often erroneously referred to as reverse engineering; however, it is more accurate to say that reverse engineering is the initial examination of the system, and reengineering is the subsequent modification.

Or, what another answer already said: Re-engineering is simply a new re-implementation of a product with better engineering. Reverse-engineering is taking apart a finished product for the purposes of learning how it works.

altCognito
+1  A: 

Reverse engineering is to take a bridge apart to see how it was built.

Re-engineering is to throw a bridge away and rebuild it from scratch.

Andomar
A: 

Re-engineering means designing something again, perhaps from scratch.

Reverse engineering means trying and understanding the inner workings of an artifact, most often witout the help of explanatory material (such as documentation, drawings etc.).

The former may involve the latter, but the converse is generally not true.

Frederick
+1  A: 

Reverse Engineering is trying to recreate the source code from the compiled code. That is trying to figure out how a piece of software works given only the final system.

Re-Engineering on the other hand is creating a new piece of software with similar functionality as an existing one. But you may be "improving" the way it was built.

Vincent Ramdhanie