Lecture 11 re-eng
Lecture 11 re-eng
Software Re-Engineering
Course Code: SE473
Lecture # 11
02/08/2025 2
OUTLINES
• Introduction to Software Renovation
• Key Goals of Software Renovation
• Examples of Software Renovation
• When to Choose Software Renovation?
• Key Scenarios for Choosing Software Renovation
• Benefits of Choosing Renovation
Introduction to Software Renovation
• Software Renovation:
• it is a re-engineering process focused on updating or improving existing
software systems to enhance their functionality, maintainability,
performance, or compatibility without completely rebuilding the
system from scratch.
• It involves modernizing systems to meet current business and technical
requirements while preserving core functionalities.
Examples of Software Renovation
Migrating Systems to Modern Platforms
• Scenario: A banking system built in the 1980s using COBOL needs to
operate on modern cloud infrastructure.
• Renovation Process: The COBOL-based system's critical business logic
is extracted and rewritten in a modern language like Java or Python,
and the system is deployed on a cloud-based platform like AWS.
• Benefit: Improved scalability, performance, and easier integration with
modern APIs.
Examples of Software Renovation
User Interface Modernization
• Scenario: A company has an outdated desktop application with a
clunky UI.
• Renovation Process: The UI is redesigned using modern web
technologies (e.g., React.js or Angular) to create a responsive, user-
friendly web-based application.
• Benefit: Enhanced user experience and accessibility across devices.
Examples of Software Renovation
Adding New Features
• Scenario: An e-commerce website lacks mobile app support.
• Renovation Process: The backend is updated to provide RESTful APIs,
and a mobile app is developed to interact with the existing system.
• Benefit: Better customer engagement through multi-channel support
Examples of Software Renovation
Improving Code Quality
• Scenario: A system has accumulated technical debt due to years of
patchwork updates.
• Renovation Process: The codebase is cleaned up by removing
redundant code, standardizing code structures, and updating libraries.
• Benefit: Reduced likelihood of bugs, easier debugging, and faster
development for future features.
Examples of Software Renovation
Database Optimization
• Scenario: A company’s database queries take too long to execute.
• Renovation Process: Indexing is added, redundant tables are removed,
and an outdated database engine is replaced with a modern
alternative like PostgreSQL.
• Benefit: Faster query execution and improved application
performance.
When to Choose Software
Renovation?
• When replacing the system is too costly or time-consuming.
• If the core functionality of the system is still valuable but requires
modernization.
• When addressing compatibility issues with newer technologies
• This strategy is often chosen when a system is still valuable but faces
challenges that hinder its current and future effectiveness
Key Scenarios for Choosing Software
Renovation
Outdated Technology Stack
• When the software uses old technologies that are no longer supported
or efficient. Renovation can involve upgrading frameworks,
programming languages, or libraries.