Back to the 2025 paper

Module 5: Software Maintenance

20257m

What is software maintenance? Why is it an inevitable phase in the software life-cycle?

Worked SolutionAI Assisted

Software Maintenance — Definition & Why It Is Inevitable

Definition

Software maintenance is the process of modifying a delivered software system to correct defects, adapt it to a changed environment, improve its performance or add features, and prevent future faults — after the software has been released for use. It is the final (and longest) phase of the SDLC.

Maintenance is classified into four types:

  1. Corrective — fixing bugs/errors.
  2. Adaptive — adjusting to changes in the environment (OS, hardware, regulations).
  3. Perfective — enhancing/improving the product (new features, better performance).
  4. Preventive — refactoring/hardening to avoid future problems.

Why maintenance is inevitable

  1. Errors are never fully eliminated. Testing can never prove the absence of defects; latent bugs always surface during real use, requiring corrective maintenance.

  2. The environment always changes. New operating systems, browsers, hardware, compilers, databases, and legal/regulatory requirements appear continuously — the software must be adapted (adaptive maintenance).

  3. User requirements keep evolving. As users gain experience with the system, they discover new needs and improvements; organizations also change their business processes, driving perfective changes.

  4. Software is "soft" — change is expected. Unlike hardware, software is expected to be changeable; users and managers naturally request modifications after delivery.

  5. Systems live a long life. Software often outlives its original architecture and developers. The working system becomes a valuable asset that must be kept alive through maintenance rather than rewritten (rewriting risks losing behaviour, and is expensive).

  6. Maintenance is huge. Maintenance typically consumes 60–80% of total life-cycle cost and the majority of the effort of software organizations — proof that it cannot be avoided; it is the dominant phase of the life cycle.

  7. Prevention requires maintenance too. Even "do-nothing" software eventually needs preventive/re-engineering to remain maintainable.

The maintenance paradox / last phase reality

Since both the software and its environment keep changing while the software is in use, some form of modification is unavoidable — making maintenance intrinsically inevitable, not optional. The only practical choice is to plan for it (good documentation, modular design, configuration management) so it is manageable.

Summary: maintenance is unavoidable because (a) defects always remain, (b) the environment always changes, and (c) requirements always evolve — and because delivered software is a long-lived asset that must be kept both working and cost-effective.

Similar questions

Free AppAndroid App

Coursify Android App

Generate AI courses, take quick quizzes between classes, and master complex engineering concepts on the go.