A maintenance release is a software release that fixes a security flaw or minor bug without changing any major components or adding new features. These are usually numbered in tenths or hundredths to differentiate them from major versions, which are simply numbered version 1.0, version 2.0, and so on. A maintenance release is part of the systems operation and support stage of the software release lifecycle.
Woman doing handstand with a computer
Every software application goes through the software version life cycle. It begins with systems analysis and requirements discovery, a stage in which data and processes are modeled. It then moves on to the design stage, the construction stage, the implementation stage, and finally the operation and support stage. It is in this last stage that continuous technical support is applied to users through the introduction of maintenance versions that correct errors or update the entire system, remodeling the basic requirements.
A maintenance release is usually required to fix basic bugs. Usually this is due to mistakes made early in the software life cycle. If during the requirements analysis phase, for example, requirements are incorrectly communicated or validated, this can lead to major failures that only show up much later. This is actually a common occurrence, which is why almost every program that has been released has had to go through a maintenance release at one time or another.
There are several fundamental goals of a maintenance release. First, the release must make changes to existing programs to correct errors made in the requirements, design, or implementation stages. You must also ensure that recently made fixes do not interfere with other aspects of the modified segment and that recently made changes do not interfere with the activities of other segments. Lastly, the launch should not degrade system performance. In general, software engineers try to complete this process as quickly as possible without sacrificing quality or reliability.
Before a maintenance release can be issued, it must be thoroughly tested using three methods: unit testing, system testing, and regression testing. Unit tests ensure that the specific segment of the program that was fixed now works correctly. System testing, on the other hand, ensures that the newly patched program segment does not interfere with other program segments. Regression tests use statistical data to verify whether the overall performance or response time has been positively or negatively affected by the changes.
The last and perhaps the 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 changes that have been made. This makes it possible for software engineers to roll back in case the maintenance release encounters unexpected bugs.