In: Computer Science
Discuss the concept of software maintenance in software engineering and the reasons for software modification. List at least 3 reasons:
Software Maintenance:
Software maintenance is the most crucial part of the SDLC (Software Development Life Cycle). It is the process of updating the software to improve the performance and optimization of the software after it has been delivered to the client.
Software Maintenance process:
Steps:
1. Determining the software maintenance objective and program understanding
2. Performing activities for identification of errors or any program modification
3. Analyzing the errors and implementing new features for software modifications
4. Testing the modified software application and ensuring the reliability of the software
5. Redeploying the software in the organization
Types:
Software maintenance is further divided into 4 categories. They are:
1. Corrective maintenance:
In corrective maintenance, a software application is modified and updated if it has some errors or bugs to enhance the performance of the software.
2. Adaptive maintenance:
In adaptive maintenance, a software application is modified and updated when the client wants to run the software application on new platforms or operating systems.
3. Perfective maintenance:
In perfective maintenance, a software application is modified and updated in order to support the new features, functionalities that the users want to change and to update with the new technology for its reliability.
4. Preventive maintenance:
In preventive maintenance, a software application is modified and updated to prevent future problems of software application.
Reasons for Software Maintenance:
Following are a few reasons for software maintenance
1. To improve the design, correct the errors or any kind of software issues
2. To implement new features and functionalities based on user requirements
3. If the software application wants to integrate with new hardware, software, or operating system
4. To modify and update the policies of the software based on market conditions