High quality software helps developers create maintainable software.
Maintenance should be taken into consideration to help software become and stay operational, it involves things like code changes (to eliminate bugs and problems), configuration changes (to control and update software behavior) and environmental changes (operating environment).
There are many reasons why software maintenance is important like the market conditions, client requirements, host modifications and organization changes. For these reasons there are different types of maintenance:
-Corrective Maintenance: Fix problems discovered by end users.
-Adaptive Maintenance: Modify the SW to keep up to date.
-Perfective Maintenance: Keep the SW usable over a long period of time.
-Preventive Maintenance: Update to prevent future problems.
This part of the SDLC is quite costly and can sometimes cost as high as 67% of the whole software process lifecycle. This cost is so high because of many factors like: software life time, undocumented changes, changes that hurt the original software, structure of the program, programming language, external environment.
Maintenance Activities are Categorized into:
Identification & Tracing