0% found this document useful (0 votes)
7 views11 pages

Software Reengineering

Presented by Suleman abrar Danial ahmad

Uploaded by

king of comedy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views11 pages

Software Reengineering

Presented by Suleman abrar Danial ahmad

Uploaded by

king of comedy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 11

Software Reengineering

Presented by
Suleman abrar
Danial ahmad
What is Software Reengineering ?
Software re-engineering is the process of revisiting and improving an existing software system, even if it
is already considered well-designed. It involves rethinking and enhancing the software to adapt to new
requirements, maintain competitiveness, and keep up with the fast-paced changes in technology and
industry demands. The goal of re-engineering is to make the software more effective, efficient, and
relevant over time.

The re-Engineering procedure requires the following steps


o Decide which components of the software we want to re-engineer. Is it the complete software or just
some components of the software?
o Do Reverse Engineering to learn about existing software functionalities.
o Perform restructuring of source code if needed for example modifying functional-Oriented
programs in Object-Oriented programs
o Perform restructuring of data if required
o Use Forward Engineering ideas to generate re-engineered software
Process of Software Re-engineering
Process of Software Re-engineering

• Planning: The first step is to plan the re-engineering process, which involves identifying the reasons for re-
engineering, defining the scope, and establishing the goals and objectives of the process.

• Analysis: The next step is to analyze the existing system, including the code, documentation, and other
artifacts. This involves identifying the system’s strengths and weaknesses, as well as any issues that need to
be addressed.

• Design: Based on the analysis, the next step is to design the new or updated software system. This involves
identifying the changes that need to be made and developing a plan to implement them.

• Implementation: The next step is to implement the changes by modifying the existing code, adding new
features, and updating the documentation and other artifacts.

• Testing: Once the changes have been implemented, the software system needs to be tested to ensure that it
meets the new requirements and specifications.

• Deployment: The final step is to deploy the re-engineered software system and make it available to end-
users.
Steps involved in Re-engineering
• Inventory Analysis
• Document Reconstruction
• Reverse Engineering
• Code Reconstruction
• Data Reconstruction
• Forward Engineering
Inventory Analysis:
•Create an inventory of all software components, modules, and dependencies to understand the scope of
the system.
•Identify outdated or redundant components that need to be re-engineered.

Documentation Update:
•Review and update existing documentation to ensure it accurately
reflects the current system.
•Document missing or outdated parts to provide a complete
overview for the re-engineering process.

Code Analysis:
•Analyze the source code to understand its structure, quality, and complexity.
•Identify areas for improvement, code redundancies, and potential bugs.
Restructuring and Refactoring:
•Modify the code structure without altering its external behavior.
•Simplify complex code, remove redundancies, and improve readability and maintainability.

Data Restructuring:
•Analyze and restructure the existing data to improve data integrity,
organization, and performance.
•This step may involve changes in the database schema or
data models.

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 to
improve its overall quality.
Restructuring and Refactoring:
•Modify the code structure without altering its external behavior.
•Simplify complex code, remove redundancies, and improve readability and maintainability.

Data Restructuring:
•Analyze and restructure the existing data to improve data integrity,
organization, and performance.
•This step may involve changes in the database schema or
data models.

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 to
improve its overall quality.
Advantages of software Re-engineering

•Reduced maintenance costs.


•Adaptation to new technologies.
•Extended software life cycle.
•Increased productivity.
•Better scalability and flexibility.
•Enhanced security.
•Business agility and competitiveness.
•Improved documentation.
•Higher customer satisfaction.
References

https://fullscale.io/blog/software-reengineering/
https://www.geeksforgeeks.org/software-engineering-re-engineering/
https://chatgpt.com/c/6703f894-5910-8013-9ff2-c75120241712

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy