Software Re-Engineering is the examination and alteration of a system to reconstitute it in a new form. The principles of Re-Engineering when applied to the software development process is called software re-engineering. It affects positively at software cost, quality, service to the customer and speed of delivery. In Software Re-engineering, we are improving the software to make it more efficient and effective.
Re-Engineering cost factors:
- The quality of the software to be re-engineered.
- The tool support availability for engineering.
- Extent of the data conversion which is required.
- The availability of expert staff for Re-engineering.
Software Re-Engineering Activities:
1. Inventory Analysis:
Every software organisation should have an inventory of all the applications.
- Inventory can be nothing more than a spreadsheet model containing information that provides a detailed description of every active application.
- By sorting this information according to business criticality, longevity, current maintainability and other local important criteria, candidates for re-engineering appear.
- Resource can then be allocated to candidate application for re-engineering work.
2. Document reconstructing:
Documentation of a system either explains how it operate or how to use it.
- Documentation must be updated.
- It may not be necessary to fully document an application.
- The system is business critical and must be fully re-documented.
3. Reverse Engineering:
Reverse engineering is a process of design recovery. Reverse engineering tools extracts data, architectural and proccedural design information from an existing program.
4. Code Reconstructing:
- To accomplish code reconstructing, the source code is analysed using a reconstructing tool. Violations of structured programming construct are noted and code is then reconstruct.
- The resultant restructured code is reviewed and tested to ensure that no anomalies have been introduced.
5. Data Restructuring:
- Data restructuring begins with the reverse engineering activity.
- Current data architecture is dissecred, and necessary data models are defined.
- Data objects and attributes are identified, and existing data structure are reviewed for quality.
6. Forward Engineering:
Forward Engineering also called as renovation or reclamation not only for recovers design information from existing software but uses this information to alter or reconstitute the existing system in an effort to improve its overall quality.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
- Software Engineering | Halstead’s Software Metrics
- Software Engineering | Classification of Software Requirements
- Software Engineering | Classification of Software
- Software Engineering | Software Project Management Complexities
- Software Engineering | Role and Responsibilities of a software Project Manager
- Software Engineering | Seven Principles of software testing
- Software Engineering | Agile Software Development
- Software Engineering | Software Maintenance
- Software Engineering | Jelinski Moranda software reliability model
- Software Engineering | Schick-Wolverton software reliability model
- Software Engineering | Introduction to Software Engineering
- Software Engineering | Software Business and Development
- Software Engineering | Characteristics of good Software
- Software Engineering | Identifying Software Development Metrics
- Software Engineering | Changing Nature of Software
- Software Engineering | Software Characteristics
- Software Engineering | Software Crisis
- Software Engineering | Software Quality Assurance
- Software Engineering | Software Quality Assurance (SQA) Set 2
- Software Engineering | Software Process Framework
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.