askvity

Understanding Re-engineering

Published in Engineering Concepts 3 mins read

The difference between re-engineering and reverse engineering lies primarily in their goal and direction. Re-engineering aims to change or update a system for improvement, while reverse engineering aims to understand how an existing system works.

Based on the provided information: "Re-engineering is usually used to update the functionality of a product whereas reverse engineering is mostly used to peep into the working of the product and what goes into the making".


Re-engineering, often known as business process re-engineering (BPR) in the business context or software re-engineering in the technical realm, is about fundamentally redesigning core business processes or technical systems.

  • Goal: To achieve dramatic improvements in performance metrics such as cost, quality, service, and speed.
  • Focus: Changing how work is done or how a system functions to make it more efficient, modern, or effective. This often involves discarding existing structures and starting fresh with new processes or architectures.
  • Output: A significantly altered or completely new system, process, or structure that is better optimized for current needs.
  • Direction: Forward-looking, focused on future improvement and performance.

Examples of Re-engineering:

  • Redesigning a company's entire order fulfillment process to integrate online sales and reduce delivery times.
  • Rewriting an old software application from scratch using modern programming languages and architecture to improve performance and maintainability.
  • Restructuring a product's internal components to add new features or improve existing ones significantly.

Understanding Reverse Engineering

Reverse engineering, on the other hand, is the process of analyzing a finished product to determine its design, specifications, or construction.

  • Goal: To understand the internal workings, design principles, or source code of a system or product.
  • Focus: Disassembling, analyzing, and documenting an existing system to figure out what it does and how it does it. This involves gaining insight into its components, interconnections, and logic.
  • Output: Detailed documentation, models, or even source code representing the original system's design and functionality.
  • Direction: Backward-looking, focused on understanding the existing or original system.

Examples of Reverse Engineering:

  • Analyzing a competitor's product to understand its manufacturing process or design features.
  • Examining compiled software code to understand its algorithms or recover lost source code.
  • Disassembling a mechanical device to see how its parts fit together and function.
  • Investigating malware to understand its behavior and develop countermeasures.

Key Differences Summarized

Here is a table highlighting the core distinctions:

Feature Re-engineering Reverse Engineering
Primary Goal To improve or update a system/process To understand an existing system's workings
Direction Forward-looking (Changing) Backward-looking (Analyzing)
Focus Redesigning, optimizing, adding features Analyzing structure, function, components
Output Improved or new system/process Documentation, models, understanding
Purpose Update functionality Peep into working and making (as per reference)

In essence, reverse engineering is about understanding what is, while re-engineering is about changing what is to what should be. Sometimes, reverse engineering is a necessary first step for re-engineering, especially if the original design documentation is missing.

Related Articles