Software Maintenance · Software Engineering

Software Maintenance

Watch lectures

Software Maintenance

Definition

Software Maintenance is the process of modifying a software system after delivery, to correct faults, improve performance, adapt to a changed environment, or add new capabilities — it is the final phase of the SDLC, and the longest and most expensive one.

IEEE Definition

"The modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment."

Why Maintenance Is So Significant

  • Studies consistently show maintenance consumes 60–80% of total software lifecycle cost
  • Software must evolve to remain useful — Lehman's Laws of Software Evolution state that a system must continually adapt or become progressively less useful

Types of Maintenance (Detailed in later topics as "Maintenance Models"/categories)

  1. Corrective — fixing bugs/defects
  2. Adaptive — adapting to environment changes (new OS, hardware, regulations)
  3. Perfective — improving performance, adding new features, enhancing usability
  4. Preventive — proactively improving maintainability to prevent future problems

Why Maintenance Is Difficult

  1. Lack of documentation — original design/rationale often poorly documented
  2. Staff turnover — original developers may have left; institutional knowledge lost
  3. Aging technology — legacy code may use outdated languages/frameworks
  4. Complexity growth — repeated modifications increase system complexity over time (unless actively managed)
  5. Regression risk — every change risks breaking existing functionality

Maintenance and Software Quality

Well-designed software (high cohesion, low coupling, good documentation — see Module 3) is significantly cheaper to maintain than poorly designed software — this is why "maintainability" is emphasized as a key design goal from the very start.


Exam tip: Memorize the "60-80% of lifecycle cost" statistic and the 4 maintenance types (Corrective, Adaptive, Perfective, Preventive) — foundational facts for nearly every question in this module.

AI LearningWeb Platform

Coursify — Personal AI Course Generator

Struggling with a difficult subject or concept? Turn any engineering topic into a structured course with interactive lessons, quizzes, and research-backed explanations.

← All Software Engineering modules