LearnViz CompSci
Home / Learn / Software Engineering / Software Maintenance

Beginner Topic 17 of 50 Software Engineering

Software Maintenance

Fixing, adapting and improving software after release.

How it works

Software maintenance covers all work after initial release, typically most of a system's total cost. It includes corrective maintenance to fix bugs, adaptive maintenance to keep up with changing environments such as new operating systems, perfective maintenance to improve features or performance and preventive maintenance such as refactoring and dependency updates. Lehman's laws note that useful software must keep evolving and its complexity grows unless actively managed.

Step-by-step walkthrough

  1. Corrective maintenance fixes bugs.
  2. Adaptive maintenance adjusts to new platforms or laws.
  3. Perfective maintenance adds features and speed.
  4. Preventive maintenance reduces future problems through refactoring.
  5. Maintenance often costs more than the first build.

Where it is used

Updating libraries for security patches, migrating to new platforms, fixing production defects and extending features in long-lived systems are maintenance work.

Common pitfall

Neglecting maintenance accumulates technical debt, outdated dependencies and security vulnerabilities. Lack of tests and documentation makes changes risky. Knowledge loss when original authors leave slows teams. Budget regular time for upgrades and cleanup, automate tests and builds, monitor in production and track dependency health.

Where it fits in the course

Software Maintenance is topic 17 of 50 in Software Engineering, rated Beginner. It follows Bug Tracking. The next topic is SOLID Principles.

Practice and explore

How to study this topic

  1. Read the explanation above and restate the definition in your own words.
  2. Open the interactive lesson and answer its mini quiz.
  3. Read the common pitfall, then write a short example that avoids it.
  4. Check your understanding in the Software Engineering quiz, and revisit the topic if you miss a question.

Frequently asked questions

What is Software Maintenance?
Fixing, adapting and improving software after release. It belongs to Software Engineering and is a beginner-level topic.
Where do people use Software Maintenance?
Updating libraries for security patches, migrating to new platforms, fixing production defects and extending features in long-lived systems are maintenance work.
What is the most common mistake with Software Maintenance?
Neglecting maintenance accumulates technical debt, outdated dependencies and security vulnerabilities.
What should I learn before this topic?
Start with Bug Tracking, the topic just before it in Software Engineering.
How can I practice it?
Answer the mini quiz in the interactive lesson, then take the Software Engineering quiz.
Is Software Maintenance hard to learn?
It is a Beginner topic, so it works as an entry point. If the terms are new, read the explanation twice and try the visualizer before the quiz.
How long does it take to learn Software Maintenance?
Most learners can read the explanation and finish the interactive lesson in under an hour. Fluency comes from applying the idea, so plan a few short practice sessions with the quiz.
Which topics are related to Software Maintenance?
Bug Tracking, SOLID Principles, Software Documentation are closely connected. The full list is in the related topics section of this page.
What should I study after Software Maintenance?
Continue with SOLID Principles, the next topic in Software Engineering.

Related topics