A maintenance release is a software release that corrects a security flaw or minor bug without altering any core components or adding new features. They’re usually numbered in tenths or hundredths to differentiate them from major releases, which are numbered simply version 1.0, version 2.0, and so forth. A maintenance release is a part of the systems operation and support stage of the software release life cycle.
Every software application goes through the software release life cycle. It begins with systems analysis and requirements discovery, a stage in which the data and processes are modeled. Then it goes on to the design stage, the construction stage, the implementation stage, and eventually the operating and support stage. It’s within this last stage that ongoing technical support for users is applied via the introduction of maintenance releases that either fix errors or upgrade the whole system by remodeling the basic requirements.
A maintenance release is usually required to fix basic programming errors. These typically appear due to mistakes that were made in one of the prior stages of the software life cycle. If during the requirements analysis stage, for instance, the requirements are incorrectly communicated or validated, it can lead to major flaws that don't show up until much later. This is actually a common occurrence, which is why nearly every piece of software ever released has had to undergo a maintenance release at one time or another.
The are several fundamental objectives of a maintenance release. First, the release should make changes to existing programs to correct mistakes made in the requirements, design, or implementation stages. It also should ensure newly made fixes don’t interfere with other aspects of the modified segment and that newly made changes don't interfere with the activities of other segments. Lastly, the release shouldn't cause system performance to suffer. In general, software engineers try to complete this process as quickly as possible, without sacrificing either quality or reliability.
Before a maintenance release can be issued, it must be thoroughly tested via three methods: unit testing, system testing, and regression testing. Unit testing makes certain that the specific segment of the program that was fixed now functions correctly. System testing, on the other hand, ensures that the newly fixed segment of the program doesn’t interfere with other program segments. Regression testing uses statistical data to check whether the overall throughput or response time was positively or negatively affected by the changes.
The last and perhaps most important aspect of system maintenance is version control. In this part of the process, a trained software-based librarian meticulously records and tracks all of the changes that were made. This makes it possible for software engineers to backtrack in case the maintenance release encounters unexpected errors.