Reverse and Re-Engineering in Software Engineering

Riya Goel
2 min readJun 11, 2023

--

In this article, I will explain you the difference between Reverse and Re-Engineering in very simple terms. But before diving deep into these terms, let’s understand a very basic definition of Software Engineering

What is Software Engineering?

It is a branch of Computer Science which deals with the design, development, testing, deployment and maintenance of a software application. Software engineering enables to build real world software solutions for the end users or customers.

After having a brief understanding of Software Engineering, let’s understand Re-Engineering first.

Re — Engineering

  1. It is a process to re design a product or a particular component
  2. It is also called as software refactoring
  3. It is like a modification of the existing product to improve its performance, maintainability and adaptability
  4. It is a cost effective method as a part of the software is altered instead of the entire product
  5. Less coding knowledge is required for re-engineering
  6. This practice is generally followed for safety issues or to update a new feature into the product’s existing functionality
  7. Re-engineering takes less time in comparison to Reverse Engineering

Why is Re-Engineering required

  1. To adapt to changing business needs: As business requirements changes, it is important to re-structure the software to support new technology
  2. To improve quality of software: Re engineering can help identify and rectify errors and defects, thus making the software robust and reliable
  3. To modernize the software: As technology is dynamic and is constantly changing, it is important to keep the software updated which can be achieved via the process of re-engineering

Reverse Engineering

  1. It is a process of deconstructing a product to see how it actually works
  2. It is also known as backward engineering
  3. In this, the product is broken down to see its functionality and is then recreated to bring something new out of it
  4. It is an expensive method as the entire product is rebuilt
  5. It requires prior coding knowledge regarding the software followed by knowledge of system components and their relationship
  6. This practice is generally followed by companies to evaluate their competitor’s latest inventions and get something better out of it
  7. This process comparatively takes more time as the product is created from scratch

Why is Reverse Engineering required

  1. To find how a system works: Reverse engineering helps in an in-depth analysis of the entire product and can be used to learn how things work
  2. As a learning tool: It is a way to make new and compatible products that might be cheaper than what’s currently in the market
  3. To uncover features: Reverse engineering helps to unveil some undocumented features of commercial products that might be incorporated while building the entire product from start

--

--