Nepedia
Back to Discover
Fluent Reader
💻

Software maintenance

technology Maturity 11-13 war conflict Next article →

This article covers sensitive topics: war_conflict. Parents can manage visibility in Parental Controls.

Software maintenance is the work done on a computer program after it is released to users.

Traditional software development life cycle diagram
Traditional software development life cycle diagram

While building new software is exciting, keeping it running is a huge job. Most software is not perfect when it first arrives. It often contains bugs, which are mistakes that stop the system from working as intended. Maintenance teams must find and fix these bugs to keep the software useful. This work is a very long part of a program's life. In fact, it can make up 80 to 90 percent of the total cost of a software life cycle.

This work follows a specific way it works called a change cycle. First, a customer sends a change request to ask for a fix or a new feature. A team then evaluates the request to see if it is possible or too expensive. If they decide to do it, a programmer must study the existing code. They need to understand how the code works before they can change it. After the code is modified, the team must do a lot of testing. This testing makes sure the new parts work and that the old parts did not break.

Software retirement diagram
Software retirement diagram

People have been thinking about this work for a long time. In the early 1970s, companies began creating special teams just for maintenance. This helped the main developers focus on building new things. In 1972, a man named R. G. Canning wrote about the "Maintenance Iceberg." He argued that maintenance is like an extension of development, but with the existing system added as a new part. Even though technology has changed, our understanding of this work has stayed mostly the same since the 1980s.

There are four main types of maintenance used to help software. Corrective maintenance is used to fix bugs reported by users. Preventive maintenance is forward-looking to stop problems before they happen. Adaptive maintenance helps software work in a changing environment. Finally, perfective maintenance makes the software better or faster.

Software retirement diagram
Software retirement diagram

Some companies even release software that is incomplete. They plan to finish it after it is released, which is sometimes called software evolution. This can make the work harder for the maintenance teams later on.

Maintaining software is a lot like taking care of a car. When you first buy a car, it works well. But over time, you might need to fix a broken light or change the oil. If you want a new radio, that is like adding a new feature. If the roads change, you might need new tires to keep driving safely. Software needs this same kind of care to stay useful. Without it, the software becomes a "legacy system" that is hard to use. Eventually, the software is withdrawn from the market entirely.

457 words

Where will your curiosity go next?

Keep exploring at your chosen reading level.

🖼️ Images & Media (2)
File:Traditional software development life cycle diagram.png
Traditional software development life...
File:Software retirement diagram.png
Software retirement diagram.png
More to explore

What is Nepedia?

A free, ad-free encyclopedia for children. Every article is written at five reading levels, so the same page works for a five-year-old and a fifteen-year-old — use the level switcher above to see this one change. No account needed to read.