In: Computer Science
Maintenance activities consume a large portion of the total life-cycle budget. The primary goal of software development should be production of maintainable software systems. What are the primary activities in software maintenance?
The maintenance activities of software are responsible for having a
large portion of the life cycle's budget. The goal of software
development is the production of the maintainable system and the
primary activities in software maintenance are:
Problem identification - In this phase, we identify the
problems/defects/bugs which are related to the software
developed
Analysis - Here the analysis of the problems and the software
occurs, and what is to be modified to rectify the problem
Design phase - focuses on the modification designs of the software
to rectify the problems
Implementation - Updating the software and implementing and fixing
the problems on the software
Testing - Testing the new software implementation
Delivery - Delivering the new version of the software. Also, newer
documentations are delivered in this phase.
Software maintenance is the most vital phase of Software
Development Life Cycle and most of the SDLC costs come up in this
phase.Any changes done in the software after it has been deployed
fall under the software maintenance only.There are a number of
reasons why these changes are required like:
-->Market Conditions
-->Client requirements
-->Host Modifications
-->Organisation Changes
Maintenance Activities:
The following figure best describes the software maintenance
activities. As per the IEEE framework, it is a sequential process
which can be used in an interative manner.
1. Identification and Tracing: This is basically identifying the cause of why the modification is required. It may be auto-generated report with logs or error messages, user-generated.
2. Analysis: The required changes are then have to be analysed for its impact on the system, safety, security, its working amd efficiency. Alternative solutions may also be looked up if the impact is severe.
3.Design: This is the design of the new modules, which are due to the changes in the system. Some modulesmay have to be replaced entirely while some are modofied.
4. Implementation: This is the coding phase, the new modules are developed with the help of structured design created in each step.
5. System Testing: Testing is done among the newly created modules. Integration testing is also carried out between the system and the new modules to make sure the system as a whole is working.
5. Acceptance Testing: In this phase, the modified system is checked for the acceptance by the user. Some new issues may also come up in this phase.
6. Delivery: The new and modified system after all the testing is finally delievered to the client. It may be as a small update or an entire fresh installation.
7. Maintenance management: This is essential part of the system maintenance and is aided through version control tools to control versions, semi-version or patch management