0% found this document useful (0 votes)
520 views1 page

Software Reverse Engineering and Re-Engineering

Both software re-engineering and reverse engineering involve examining existing software products. Software re-engineering involves updating software to keep it current without impacting functionality, which involves changing the design and rewriting programs. Reverse engineering aims to understand how a product works by analyzing a finished product. For example, Unix was re-engineered from assembly language to C to make it easier to work with. The re-engineering process involves deciding what to re-engineer, performing reverse engineering to obtain specifications, restructuring programs and data as needed, and applying forward engineering concepts to create the re-engineered software. Reverse engineering specifically involves thoroughly analyzing an existing system to derive its specifications by examining it from lower to higher abstraction levels.

Uploaded by

Jai Chaudhry
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
520 views1 page

Software Reverse Engineering and Re-Engineering

Both software re-engineering and reverse engineering involve examining existing software products. Software re-engineering involves updating software to keep it current without impacting functionality, which involves changing the design and rewriting programs. Reverse engineering aims to understand how a product works by analyzing a finished product. For example, Unix was re-engineered from assembly language to C to make it easier to work with. The re-engineering process involves deciding what to re-engineer, performing reverse engineering to obtain specifications, restructuring programs and data as needed, and applying forward engineering concepts to create the re-engineered software. Reverse engineering specifically involves thoroughly analyzing an existing system to derive its specifications by examining it from lower to higher abstraction levels.

Uploaded by

Jai Chaudhry
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 1

Both software re-engineering and software reverse enginering come under software

maintenence

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.

When we need to update the software to keep it to the current market, without
impacting its functionality, it is called software re-engineering. It is a thorough
process where the design of software is changed and programs are re-written.

As the hardware become obsolete, updating of software becomes a headache. Even if


software grows old with time, its functionality does not.

For example, initially Unix was developed in assembly language. When language C
came into existence, Unix was re-engineered in C, because working in assembly
language was difficult.

Re-engineering Process:
1) Decide what to re-engineer.
2) Perform Reverse Engineering, in order to obtain specifications of existing
software.
3) Restructure Program if required
4) Re-structure data as required.
5) Apply Forward engineering concepts in order to get re-engineered software.

Where as on the other hand

Reverse Engineering
It is a process to achieve system specification by thoroughly analyzing,
understanding the existing system. This process can be seen as reverse SDLC model,
i.e. we try to get higher abstraction level by analyzing lower abstraction levels.

An existing system is previously implemented design, about which we know nothing.


Designers then do reverse engineering by looking at the code and try to get the
design.

You might also like