Q1. What is Software Re-Engineering?Ans. Software Re-engineering: It mean re-implementing a system. Re-engineering means having a re-look at the software using certain engineering principle to bring improvement.
The functionality and the architecture of the system remains the same but it involves re-organizing, re-directing, modifying and updating the system.
The need for re-engineering of a software product arise because of the following reasons :
1. The software system fails frequently.
2. Ageing of the software has an effect on its performance.
3. The outdated technology used in the software product leads to adverse cost implications.
Software Re-engineering affects software cost, quality, service to the customer and speed of delivery positively. Software deals with business processes making them faster, smarter and automatic in response for delivery and execution.
Software re-engineering concerns with improving the software for making it efficient and effective, so that there is improvement in associated attributes such as quality, reliability, performance, robustness and usability.
There is a need of continuous improvement in a continuously changing business and application environment. Software once developed and delivered to the customer becomes ineffective over a period due to changing business environment.The changes could be new process definition, new rules, new strategies etc.
The changes could be due to new users and their changed requirement arising out of changed needs. Such software over a period needs a re-look through re-engineering to make it more current in the application. Software re-engineering prevents the software from becoming unmaintainable.
Software re-engineering includes the following activities :1. It helps re-defining the software scope and goals.
2. It helps in addition, deletion and modification of various functionalities of the software and thus re-defining the software requirement specification.
3. Using new technology for the re-designing of the application design and architecture.
4. Re-structuring code and improving the database design for making the software smaller in size and efficient in computations.
5. Rewriting the documents for making it more user friendly.
Software Re Engineering Cost :Software re engineering involves three costs :
1. Maintenance cost without software reengineering.
2. Running software cost.
3. Re-engineering costs.
Software re engineering is worth to be performed if the cost analysis is in its favour. Another important factor in context of software re-engineering is the life of the software.
It is considered uneconomical to perform software re-engineering, if the life of the software is very short.
But if the life of the software in terms of requirement is significant, then it might be beneficial to perform software re-engineering based on the cost analysis of the software.
Software Re-engineering Techniques :It has two techniques :
1. Forward Engineering: In forward engineering the existing software is taken. Then the software is redesigned as a new system by moving it forward to new architecture and new platform for improving the overall behavioural quality such as performance, recovery, reliability, etc.
In the process, some additional functions and features may be introduced in the software but the SRS, which is being delivered by the new design, remains the same.
Changing the conventional system design to an object oriented system design so that it can be integrated into new suit of application is a forward engineering application.
2. Reverse Engineering: In reverse engineering the software is disintegrated or disassembled into parts and components for understanding its design, architecture and application from all respects.
With such better understanding we take the software further for major improvements. In reverse engineering the software is analyzed by breaking it down for suggesting improvements.
The reverse engineering process reveals problems, difficulties and areas of improvements by using better technology, design, methods and tools.
Advantages :Re-engineering has various advantages, the most significant of which are :
1. The cost of software re-engineering is significantly less as compared to the cost of redeveloping the software.
2. Redeveloping a software has a potential of introducing new errors that worked smoothly in old software and thus reengineering is advantageous.
Disadvantages :Re-engineering also has some disadvantages compared to other approaches :
1. The re-engineered software will not be a new system developed by using modern techniques and thus, it would be difficult to maintain it.
2. Practically there is an extent beyond which a software cannot be improved using software re engineering.
Join us on Facebook, Instagram, and Twitter to get the latest study material. You can also ask us any questions.
Facebook = @allbcaweb
(click on it or search "allbcaweb" on Facebook)
Instagram = @allbcaweb
(click on it or search "allbcaweb" on Instagram)
Twitter = @allbcaweb
(click on it or search "allbcaweb" on Twitter)
Send us your query anytime!