Back to the 2024 paper

Module 5: Software Maintenance

20247m

What is Software Maintenance? Explain its types of the Software Maintenance.

Worked SolutionAI Assisted

Software Maintenance — Definition & Types

Definition

Software maintenance is the process of modifying and updating a delivered software system after it has been released for use — to correct defects, adapt to a changed environment, improve performance/features, or prevent future problems. It is the final and longest phase of the software life cycle, often consuming 60–80% of total life-cycle cost.

Types of software maintenance

1. Corrective Maintenance

  • Fixing errors/defects found in the software after delivery.
  • Example: fixing a crash when entering a negative number; correcting a wrong tax calculation.

2. Adaptive Maintenance

  • Modifying the software to adapt to changes in the external environment (OS, hardware, compilers, databases, regulations).
  • Example: porting the application to a new Windows version; updating for new GST rules; supporting a new browser.

3. Perfective Maintenance

  • Improving/enhancing the software — adding new features, improving performance, usability, and maintainability — to satisfy new/changed user needs.
  • Example: adding a new report; optimizing a slow query; redesigning the UI.

4. Preventive Maintenance

  • Changes that prevent future problems — improving maintainability and reliability without changing external behaviour in the short term.
  • Example: refactoring complex code, adding documentation/metadata, restructuring modules, using reverse/forward engineering (re-engineering).

Summary table

Type Trigger What is done Example
Corrective Bugs/defects Fix errors Crash fix, wrong-output fix
Adaptive Environment change Adjust to new environment Port to new OS/DB
Perfective New user needs Enhance/improve New feature, better performance
Preventive Future risk Re-engineer/harden Refactor, add documentation

Relative distribution (Lientz & Swanson)

  • Perfective ~ 50%
  • Adaptive ~ 25%
  • Corrective ~ 21%
  • Preventive ~ 4%

Why it matters

  • Keeps the software correct, current, improved, and robust over a long operational life.
  • Requires strong configuration management, good documentation, and modular design to be economical.
  • The largest share of software cost — managing it well is essential to organizational productivity.

Summary: maintenance is the continuous post-delivery process covering corrective (fixing), adaptive (environment change), perfective (enhancing), and preventive (hardening) activities — the dominant cost phase of the software life cycle.

Similar questions

Student FinanceWeb Platform

Pocketly — Personal Finance for Students

Keep your hostel and college expenses under control. Track accounts, log spending in seconds, and stay within your monthly budget.