0% found this document useful (0 votes)
5 views5 pages

Notes SME

Hsjsbsnxifbncjxncjc chc cjc u nfb u djcnduc fjcncucnf ufnncd chcjxbhdud d chhcbf uc fjcjd cjcbchcj c

Uploaded by

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

Notes SME

Hsjsbsnxifbncjxncjc chc cjc u nfb u djcnduc fjcncucnf ufnncd chcjxbhdud d chhcbf uc fjcjd cjcbchcj c

Uploaded by

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

Lecture: Software Maintenance and Evolution

1. Importance of Software Maintenance

Definition:

Software maintenance involves modifying and updating software after


delivery to correct faults, improve performance, or adapt to a changed
environment.

Why is Software Maintenance Important?

1. Correcting Errors

2. Adapting to Changes

3. Improving Software Performance

4. Extending the Software’s Lifespan

5. Cost-Effectiveness

Case Study: NASA’s Space Shuttle Software

The software for NASA’s Space Shuttle required ongoing maintenance for
over 20 years. Regular updates were made to correct bugs, adapt to new
missions, and improve reliability. This maintenance was critical for the
success and safety of space missions.

2. Types of Software Maintenance

There are four main types of software maintenance, each addressing


different needs.

A. Corrective Maintenance

Definition: Addresses issues or bugs identified after the software has been
released.

Purpose:

 Fix errors that may cause incorrect results or crashes.

 Ensure that the software operates as intended.

Example: Fixing a bug in a mobile app that causes it to crash when users try
to upload an image.
B. Adaptive Maintenance

Definition: Modifies software to keep it functional in a changing


environment.

Purpose:

 Adapt to new operating systems, hardware, or market conditions.

 Ensure compatibility with external changes.

Example: Updating an accounting application to work with a new version of


Windows.

C. Perfective Maintenance

Definition: Enhances or improves software functionality based on user


feedback or emerging requirements.

Purpose:

 Add new features or improve usability.

 Optimize performance for better efficiency.

Example: Adding a dark mode feature to a web application based on user


demand.

D. Preventive Maintenance

Definition: Focuses on identifying and fixing potential problems before they


occur.

Purpose:

 Improve system stability and reduce downtime.

 Proactively address vulnerabilities.

Example: Refactoring legacy code to prevent future technical debt and


performance issues.

Comparison Table
Type Focus Example

Correctiv Resolving a login error in a web


Fixing bugs and errors
e application

Adapting to environmental Updating for new operating system


Adaptive
changes compatibility

Perfectiv Adding features/improving Introducing a recommendation system


e usability in an e-shop

Preventiv
Avoiding future issues Refactoring code to improve scalability
e

Case Study: Microsoft Windows Maintenance

Over the years, Microsoft has released updates for Windows to address
security vulnerabilities (preventive maintenance), add new features
(perfective maintenance), and ensure compatibility with hardware and
software changes (adaptive maintenance).

3. Managing Legacy Systems and Software Evolution

A. What Are Legacy Systems?

Definition: Legacy systems are older software systems that are still in use
but may no longer be actively updated or supported.

Challenges of Legacy Systems:

1. Obsolete Technology:

 Older systems may rely on outdated programming languages or


hardware.

 Example: A COBOL-based banking application.

2. High Maintenance Costs:

 Maintaining legacy systems can be more expensive than


developing new software.
 Example: Allocating resources for patches in an outdated ERP
system.

3. Lack of Documentation:

 Original developers may have left, and documentation might be


incomplete.

 Example: Difficulty understanding a 15-year-old system without


clear records.

4. Integration Issues:

 Legacy systems may not integrate well with modern software.

 Example: Challenges in connecting a legacy payroll system with


cloud HR software.

B. Strategies for Managing Legacy Systems

1. Encapsulation:

 Isolate the legacy system and expose its functionality through


APIs.

 Example: Wrapping a legacy inventory system with a web service


interface.

2. Rehosting:

 Move the legacy system to modern infrastructure without


altering its functionality.

 Example: Migrating a mainframe-based application to a cloud


environment.

3. Refactoring:

 Improve the internal code structure without changing its external


behavior.

 Example: Simplifying complex code in a legacy CRM system.

4. Replacement:

 Gradually or entirely replace the legacy system with modern


software.
 Example: Replacing a legacy ERP system with a cloud-based
solution like SAP or Oracle.

C. Software Evolution

Definition: Software evolution refers to the process of modifying software


over time to meet changing requirements and ensure its long-term viability.

Characteristics of Software Evolution:

1. Continuous Process:

 Software evolves continuously to meet new demands.

 Example: Social media platforms like Facebook introducing new


features regularly.

2. User-Driven:

 Evolution often responds to user feedback and market trends.

 Example: Adding video call functionality to messaging apps


based on user demand.

3. Compliance with Laws and Standards:

 Adapting software to meet new legal or industry regulations.

 Example: Updating software for GDPR compliance in Europe.

4. Technological Advancements:

 Incorporating new technologies to improve functionality.

 Example: Integrating AI-based recommendations in e-commerce


platforms.

Case Study: Evolution of Gmail

When Gmail was first launched in 2004, it offered basic email functionality.
Over the years, Google evolved Gmail by adding features like labels, spam
filters, Google Drive integration, and smart compose. These changes were
driven by user feedback, competitive pressure, and advancements in
technology.

You might also like