Software Maintenance is the process of modifying a software product after it has been delivered to the customer. The main purpose of software maintenance is to modify and update software application after delivery to correct faults and to improve performance.
Need for Maintenance –
Software Maintenance must be performed in order to:
- Correct faults.
- Improve the design.
- Implement enhancements.
- Interface with other systems.
- Accommodate programs so that different hardware, software, system features, and telecommunications facilities can be used.
- Migrate legacy software.
- Retire software.
Categories of Software Maintenance –
Maintenance can be divided into the following:
- Corrective maintenance:
Corrective maintenance of a software product may be essential either to rectify some bugs observed while the system is in use, or to enhance the performance of the system.
- Adaptive maintenance:
This includes modifications and updations when the customers need the product to run on new platforms, on new operating systems, or when they need the product to interface with new hardware and software.
- Perfective maintenance:
A software product needs maintenance to support the new features that the users want or to change different types of functionalities of the system according to the customer demands.
- Preventive maintenance:
This type of maintenance includes modifications and updations to prevent future problems of the software. It goals to attend problems, which are not significant at this moment but may cause serious issues in future.
Reverse Engineering –
Reverse Engineering is processes of extracting knowledge or design information from anything man-made and reproducing it based on extracted information. It is also called back Engineering.
Software Reverse Engineering –
Software Reverse Engineering is the process of recovering the design and the requirements specification of a product from an analysis of it’s code. Reverse Engineering is becoming important, since several existing software products, lack proper documentation, are highly unstructured, or their structure has degraded through a series of maintenance efforts.
Why Reverse Engineering?
- Providing proper system documentatiuon.
- Recovery of lost information.
- Assisting with maintenance.
- Facility of software reuse.
- Discovering unexpected flaws or faults.
Used of Software Reverse Engineering –
- Software Reverse Engineering is used in software design, reverse engineering enables the developer or programmer to add new features to the existing software with or without knowing the source code.
- Reverse engineering is also useful in software testing, it helps the testers to study the virus and other malware code .
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
- Software Maintenance and Various Software Maintenance Tables
- Reactive Maintenance in Software Engineering
- Software Engineering | Introduction to Software Engineering
- Software Engineering | Requirements Engineering Process
- Software Engineering | Re-engineering
- Software Engineering | Reverse Engineering
- Difference between Software Engineering process and Conventional Engineering Processs
- Cost and efforts of software maintenance
- Components of Software Maintenance Process
- Boehm’s Software Maintenance Model
- Taute Software Maintenance Model
- Difference between Forward Engineering and Reverse Engineering
- Different RCM Maintenance Strategies
- Applications of RTF Maintenance
- Run-to-Failure (RTF) Maintenance
- Types of Reactive Maintenance
- Corrective Maintenance (CM)
- Different ways to reduce Corrective Maintenance Load
- Types of Corrective Maintenance
- Advantages and Disadvantages of Corrective Maintenance (CM)
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.