Log in Sign up
Back to Discover
💻

Software maintenance

technology Maturity 11-13 war conflict
This article covers sensitive topics: war_conflict. Parents can manage visibility in Parental Controls.

People fix computer programs.

Traditional software development life cycle diagram.png
Traditional software development life cycle diagram.png
They fix mistakes in the code. They also add new things. This helps the tools work well for you. It keeps things running. Do you use computer tools?

38 words

People fix computer programs.

Traditional software development life cycle diagram.png
Traditional software development life cycle diagram.png
This work happens after a program is made. Sometimes programs have mistakes. These mistakes are called bugs.
Software retirement diagram.png
Software retirement diagram.png
Workers must find and fix these bugs. They also add new things to the tools. They do this when people ask for help. This keeps the tools useful for a long time. It is a very big job. It can take many years to finish. Keeping programs running is very important.

81 words

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

Traditional software development life cycle diagram.png
Traditional software development life cycle diagram.png
Most software is not perfect when it first arrives. It often has bugs, which are mistakes that stop it from working right. Maintenance teams must find and fix these bugs.
Software retirement diagram.png
Software retirement diagram.png

This work follows a set of steps. First, a user sends a change request. This is a note asking for a fix or a new feature. A programmer then studies the existing code to learn how it works. Next, they change the code. Finally, they must do a lot of testing. Testing makes sure the new changes work and do not break old parts. This testing can cost a lot of money.

There are different ways to do this work. Some teams use corrective maintenance to fix bugs. Other teams use adaptive maintenance to help the software work in new settings. Some even use perfective maintenance to make the software better or faster. This work helps keep a program useful for a long time. It can last many years before the software is finally retired.

187 words

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

Traditional software development life cycle diagram.png
Traditional software development life cycle diagram.png
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.png
Software retirement diagram.png

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.png
Software retirement diagram.png
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.

467 words

Software maintenance is the process of modifying computer programs after they have been delivered to users. While creating new software is a high-profile task, maintenance is the longest phase of the software life cycle. It can account for 80 to 90 percent of the total cost of a software product's life. The primary goal of maintenance is to preserve the usefulness of the software. This is often necessary because requirements change or errors are discovered.

Traditional software development life cycle diagram.png
Traditional software development life cycle diagram.png

Each maintenance task follows a specific process known as a change cycle. The cycle begins when a customer submits a change request. This request might ask for a bug fix or a new feature. A team then evaluates the request to see if it is feasible or too expensive. If they proceed, a programmer must study the existing code to understand its logic. This step is vital because changing code can cause unexpected ripple effects. After the modification, the team performs extensive testing. This includes regression testing to ensure that old functions still work correctly. Testing often consumes the largest portion of maintenance costs.

There are four distinct categories of maintenance defined by the ISO/IEC 14764 specification. Corrective maintenance involves fixing bugs or failures reported by users. Preventive maintenance is forward-looking and aims to stop problems before they occur. Adaptive maintenance modifies the software so it can function in a changing environment. Finally, perfective maintenance improves qualities like user experience or processing efficiency. Some estimates suggest that enhancement tasks, which include adaptive and perfective maintenance, make up 80 percent of all maintenance work.

Software maintenance has a long history in the computing industry. In the early 1970s, companies began forming dedicated engineering teams for support tasks. This allowed original development teams to focus on building new products. In 1972, R. G. Canning published a concept called the "Maintenance Iceberg." He argued that maintenance is an extension of development that includes the existing system as an input. Although technology has advanced, our fundamental understanding of these processes has changed little since the 1980s.

As software ages, it undergoes a predictable transition toward the end of its life. Initially, a product may receive many enhancements and new features based on user feedback. Over time, a company might decide that further improvements are no longer profitable. At this stage, support is restricted to essential bug fixes and emergency updates. The software may become difficult and expensive to change due to decaying architecture. This phenomenon is sometimes called software aging. Eventually, the product is withdrawn from the market and becomes known as a legacy system.

Software retirement diagram.png
Software retirement diagram.png

One major challenge in this field is the concept of maintainability. Maintainability is the ease with which software can be modified without breaking. Many organizations neglect this to meet tight deadlines, creating what is called technical debt. Technical debt occurs when programmers choose quick, messy solutions instead of building long-term stability. This can lead to code entropy, where the integrity of the system degrades over time. To combat this, engineers use a maintainability index to track the health of the code. This helps them decide if it is cheaper to rewrite the code than to keep changing it.

The workforce for software maintenance faces unique professional challenges. The job is often viewed as less rewarding than new development and typically pays less. Because maintenance teams are often different from the original developers, they may lack the incentive to write clean, easy-to-read code. Developers may also deliver incomplete software to avoid going over budget or time limits. Consequently, maintenance engineers often need extra resources to fix defects left over from the initial release. In 2008, approximately 900,000 of the 1.3 million software professionals in the United States were working in maintenance.

625 words
🖼️ Images & Media (2)
File:Traditional software development life cycle diagram.png
Traditional software development life...
File:Software retirement diagram.png
Software retirement diagram.png
Up Next
💻
Software development
Technology
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.