Software Re-engineering

Software Re-engineering

  • The concept of software re-engineering was introduced by Chikofsky and Cross in their 1990 paper.
  • Software re-engineering is the process to improving the quality of the software products.
  • In the software development life cycle, to increase the software maintainability, software re-engineering process is done.
  • Software re-engineering is used to update the existing software in the new form product so that software product will provide high performance, and improve the functionality of the system.
  • Software Re-engineering is the combination of reverse engineering, re-documentation, restructuring, translation and forward engineering.     
  • In other words, Software Re-engineering is an approach of updating software without changing its working.
  • This process may be done by adding some new features and functionalities in the software product to make the software more efficient and reliable.
  • Re-engineering process is mostly applied in the context where a legacy system is involved.

Process of Software re-engineering :-

  • Document Restructuring :-

software requirement specification document either describes how the software system operate or how to use software. Documentation must be restructured and modified.

  • Reverse Engineering :-

Reverse engineering is also called as backward engineering. Reverse engineering can be describes as reverse SDLC model. It is the process of understanding and analyzing and extracting the design and specification information from the existing system. Reverse engineering also discovers the components of the system and interrelationship between them.Software reverse engineering concerns the source code by reversing a program’s machine that  was written in the specific programming language. In this process, we obtain higher level abstraction by inspecting the lower level abstraction.

  • Code Restructuring :-

The source code is inspected using a restructuring tool. The code is restructured in this phase to check and make sure that there is no anomalies are present in the code,  the final restructured code is evaluated.

  •  Data Restructuring :-

 Data restructuring starts with the reverse engineering process. data architecture and data models are defined in the data reconstruction. Data restructuring is the process to analyze and define the data object, attributes and data structure in a system so that the system will be more understandable and efficient. This is time consuming process.

  • Forward Engineering :-

Forward Engineering is also known as renovation process. This process recovers design and specification information from the existing system. This information is used to modify the existing software system to increase the overall performance and quality. Forward engineering is done to achieve the desired software system from the specification information.

Need for Software Re-engineering :-

  1.  This process is used to improving the quality of the software products.
  2. Software re-engineering is a cost-effective method for software development. This method minimizes the cost.
  3. Software re-engineering allows to reusability of the software products.
  4. Developers can reuse the software by adding some features if customer needs that product.
  5. This process improves the software maintainability. It is easy to maintain a software by using this process.
  6. This is an approach by which you can find useless steps and resources that have been implemented in the latest software and then you can remove them from the application.
  7. When hardware or software support becomes outdated, this process is used.
  8. The objective of re-engineering is to achieve greater reliability.
  9. This approach is required when the programming language or platform is no longer supported.

Advantages of Software re-engineering :-

  1. By refining the code and database, the performance of the  work is increased.
  2. This process is time saving and saving all business logic.
  3. The concept of re-usability is allowed.
  4. We can add some new features in the old system.
  5. This is cost reducing process.
  6. This process produce a system with longer operational life.
  7. Customer is satisfied and meets their requirements.
  8. Documentation is very clear and well defined. 
Software Re-engineering
Forward & Reverse Engineering