What is Software Re-engineering | Reverse Engineering in Software Engineering
Hello Everyone , In this article we will discuss about an important topic of software engineering that is Software Re-engineering with that you will also get to learn these following topic or you can say the approaches of software re-engineering:-
- Software Re-Engineering
- Forward Engineering
- Reverse Engineering
- Restructuring
Before starting lets see what is Software Engineering :
What is Software Engineering :
We can define software design as a detailed study of engineering for design , development and maintainance of different softwares .Software engineering is itself a vast topic to cover and we will not go through that ...
What is Software Re-Engineering :
- Software Re-Engineering is a process of software development which is done to improve the maintainability of a software .
- If you have large software and some parts / modules needs contineous maintainance ,in such cases you need software re-engineering.
- When we need to update a software to keep it uptodate on the current market without changing it's functionality and behaviour then on that case we need software re-engineering .
- This process is basically applicable when some subsystem / parts of a larger system need frequent maintainance .
- Software Re-Engineering is not only a single steps . It goes through several phases like reverse engineering ,forward engineering,software restructuring .
Phases of Software Re-Engineering :
Whenever a software or a part of a software is taken for software re-engineering it passes the following phases with the following sequence .
As you can see in the image , A software basically passes three phases for re-engineering :-
- Reverse Engineering
- Restructuring
- Forward Engineering
What is Reverse Engineering :
- Reverse Engineering is nothing getting the knowledge of existing software .
- It is the process of getting software specification by analyzing and understanding the existing software.
- This process is very much similar to SDLC ( Software Development Life Cycle ) . .
- It is a simple process where the developers, designers looks at the codes of the existing software the want to re-engineer and and plans the changes to be made .
- In every few months programming languages version changes . So the software is needed to be uptodate according to the version . So its very important for analyzing the existing code , so that functionality will not differ .
What is Restructuring | Program Reconstructing :
- Software Restructuring or reconstructing is an alternative of program re-writing.
- Software Restructuring is a process to restructure and re-construct an existing software.It is all about rearranging the source code . In this process developer may use the same programming language or may use any other programming language .
- Re-constructing does not impact the functionality of the existing software and it's reliability.
- Sometimes this process is applied on a software when the existing code is difficult to Test,maintain and understand. so software restructuring in software engineering is very important.
What is Forward Engineering :
- Forward Engineering is the process to aquire desired software with available specifications in hand which were brought down by reverse engineering .
- We can simply say that forward engineering is same as software engineering but with only one difference that it is always carried out after reverse engineering.
- Sometimes forward engineering not only provides the equivalent software as the previous but it can add new customer requirements and technologies .
Thank you for reading this Article -:)