100% found this document useful (1 vote)
543 views

Lecture Notes 3 - Software Reengineering

Software re-engineering is the process of examining and altering an existing software system to reconstruct it in a new form, to improve its quality, efficiency, and maintainability. It involves inventory analysis, reverse engineering, code reconstruction, data restructuring, and forward engineering. The goals are to boost productivity, allow continued functionality while testing, reduce risks, save time and costs, and optimize the system through refinement and reduction of complexity. Factors that impact re-engineering costs include the quality of the software, tool availability, required data conversion efforts, and availability of expert staff.

Uploaded by

Nyerhovwo Ozah
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
543 views

Lecture Notes 3 - Software Reengineering

Software re-engineering is the process of examining and altering an existing software system to reconstruct it in a new form, to improve its quality, efficiency, and maintainability. It involves inventory analysis, reverse engineering, code reconstruction, data restructuring, and forward engineering. The goals are to boost productivity, allow continued functionality while testing, reduce risks, save time and costs, and optimize the system through refinement and reduction of complexity. Factors that impact re-engineering costs include the quality of the software, tool availability, required data conversion efforts, and availability of expert staff.

Uploaded by

Nyerhovwo Ozah
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

Software Re-Engineering

Software Re-Engineering
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. 
The need of software Re-engineering: Software re-engineering is an economical
process for software development and quality enhancement of the product. This process
enables us to identify the useless consumption of deployed resources and the constraints
that are restricting the development process so that the development process could be
made easier and cost-effective (time, financial, direct advantage, optimize the code,
indirect benefits, etc.) and maintainable. The software reengineering is necessary for
having-
a) Boost up productivity: Software reengineering increase productivity by optimizing
the code and database so that processing gets faster.
b) Processes in continuity: The functionality of older software product can be still used
while the testing or development of software.
c) Improvement opportunity: Meanwhile the process of software reengineering, not
only software qualities, features and functionality but also your skills are refined, new
ideas hit in your mind. This makes the developers mind accustomed to capturing new
opportunities so that more and more new features can be developed.

d) Reduction in risks: Instead of developing the software product from scratch or from


the beginning stage here developers develop the product from its existing stage to
enhance some specific features that are brought in concern by stakeholders or its users.
Such kind of practice reduces the chances of fault fallibility.
e) Saves time: As we stated above here that the product is developed from the existing
stage rather than the beginning stage so the time consumes in software engineering is
lesser.
f) Optimization: This process refines the system features, functionalities and reduces the
complexity of the product by consistent optimization as maximum as possible. 

Re-Engineering cost factors: 


 
 The quality of the software to be re-engineered.
 The tool support availability for engineering.
 The 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.
 The resource can then be allocated to a candidate application for re-engineering work.
2. Document reconstructing: 
Documentation of a system either explains how it operates 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 extract
data, architectural and procedural 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
reconstructed.
 The resultant restructured code is reviewed and tested to ensure that no anomalies
have been introduced.
5. Data Restructuring: 
 
 Data restructuring begins with a reverse engineering activity.
 Current data architecture is dissected, and the 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 renovation or reclamation, not only 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.
 

Source: https://www.geeksforgeeks.org/software-re-engineering/

You might also like