Reverse
Engineering is the process of analyzing software with the objective of
recovering its design and specification.

OR

Reverse Engineering is the process
followed in order to find difficult, unknown and hidden information about a
software system.

The main purpose of reverse engineering is
to recover information from the existing code or any other intermediate
documents, any activity that requires program and understanding at any level
may fall within the scope of reverse engineering.The objective of reverse engineering is to
derive the design or specification of a system from its source code.

Re-engineering :Re-engineering means
to re-implementing systems to make them more maintainable.Re-engineering essentially means having a
re-look on an entity, such as process, task, design, approach strategy using
engineering principles to bring in radical and dramatic improvement.

Principles
of software Re-engineering :In
software re-engineering, we may resort to any one or more of the following :

Redefining
software scope and goals.

Redefining
RDD and SRS by way of additions, deletions and extensions of functions and
features.

Resorting
to data restructuring, improving data base design, code restructuring to make
its size smaller and efficient in operations.

Difference:Re-engineering is not the same as reverse engineering but undoubtedly
reverse engineering is often a part of re-engineering process to develop better
understanding of a system.

S.No

Reverse
Engineering

Re-Engineering

1.

The objective of reverse engineering
is to derive the design or specification of a system from its source code.

The objective of re-engineering is to
produce a new more maintainable system.

2.

It performs transformation from a
lower abstraction level to a higher one.

It transform an existing software
system into a new but more maintainable system.