Loading

Software Re-engineering


Introduction :

Software re-engineering encompasses all the activities related to restructuring, re-analysing and re-documentation of an already existing software program into a new one. It is an approach used in the event of software product needing to undergo any transformation. The main idea behind software re-engineering is the need for a change. The reason we need timely changes in our software system is the fact that there are so many new technologies emerging everyday. It becomes an inevitable part of keeping a software product up to date.

Why software re-engineering ?

  • Emergence of new technologies
  • Increasing competition among companies
  • Quality of a product is gaining importance
  • Needs of people are changing

The aforementioned reasons lay the foundation for re-engineering a software system.

Software re-engineering activities may comprise of the following types of maintenance activities :

  • Understanding the software system : It is important to understand the core need for transforming a software system.
  • Taking corrective actions : Deciding upon the fact that how things should be taken forward and what all aspects needs attention.
  • Improving: Strategies for improving a software product.

A complete replacement of the existing system is not a feasible option, so the following approaches becomes an inherent factor in the realisation of re-engineering.

  • Amount of risk involved in terms of errors peeking into the already developed software product.
  • Cost incurred - Obviously the cost involved in recreating the old software product is lesser than building a new one.

The re-engineering activity undergoes through the following process :

  • Source Code Translation : The coding scheme is changed from an old version into the latest one.
  • Reverse engineering : The old program is carefully analysed so as to base the progress of re-engineering on that documentation .
  • Improvement in structure of program : The program structure is analysed and it is modified to enhance its readability and functioning.
  • Modularisation : Wherever necessary, parts of program are integrated,removing the redundant ones.
  • Data re-engineering : Wherever appropriate, the data processed by the program is modified to reflect the modifications made to the program.

Life cycle of Software Re-engineering :

  • Product Management : This involves risk analysis, root cause analysis, analysis from the perspective of business requirements.
  • Research and Innovation : Identifying the problems, gathering necessary data and its analysis, identifying a solution and formulate the best kind of algorithm that results in an high-end code.
  • Product Development : Preparing the architecture for the software, prototyping and production code development, finding the appropriate technology , its analysis and selection.
  • Product Delivery and Support : Analysing compatibility between hardware and software,defining deployment and release procedures, installation and upgrades.
  • Project Management: Utilizing the modern software management techniques, ensuring high level software quality mechanisms, applying advanced risk management measures.

Conclusion :

The very need for software re-engineering is to be in pace with the technological advancements taking place in the industry. Each day we come across many new changes which poses a challenge for an organisation to retain it's target audience's faith. Hence it becomes important to restructure our software system in a way , so as to stay ahead in the race.