X

Join Our WhatsApp Group to get latest updates

Join Now

Software Maintenance

 

Software Maintenance


  • 9.1 Need for software maintenance 
  • 9.2 Types of software maintenance 
  • 9.3 Software maintenance process model
  • 9.4 Software maintenance cost

Software Maintenance

 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 applications 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/Types – 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 updating 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 updating 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. 


Process of Software Maintenance:


Software Maintenance is an important phase of Software Development Life Cycle (SDLC), and it is implemented in the system through a proper software maintenance process, known as Software Maintenance Life Cycle (SMLC). This life cycle consists of seven different phases, each of which can be used in iterative manner and can be extended so that customized items and processes can be included. These seven phases of Software Maintenance process are: 

  • Identification Phase:  In this phase, the requests for modifications in the software are identified and analyzed. Each of the requested modification is then assessed to determine and classify the type of maintenance activity it requires. This is either generated by the system itself, via logs or error messages, or by the user. 
  • Analysis Phase:  The feasibility and scope of each validated modification request are determined and a plan is prepared to incorporate the changes in the software. The input attribute comprises validated modification request, initial estimate of resources, project documentation, and repository information. The cost of modification and maintenance is also estimated. 
  • Design Phase:  The new modules that need to be replaced or modified are designed as per the requirements specified in the earlier stages. Test cases are developed for the new design including the safety and security issues. These test cases are created for the validation and verification of the system.
  • Implementation Phase:  In the implementation phase, the actual modification in the software code are made, new features that support the specifications of the present software are added, and the modified software is installed. The new modules are coded with the assistance of structured design created in the design phase. 
  • System Testing Phase:  Regression testing is performed on the modified system to ensure that no defect, error or bug is left undetected. Furthermore, it validates that no new faults are introduced in the software as a result of maintenance activity. Integration testing is also carried out between new modules and the system.
  • Acceptance Testing Phase:  Acceptance testing is performed on the fully integrated system by the user or by the third party specified by the end user. The main objective of this testing is to verify that all the features of the software are according to the requirements stated in the modification request.
  • Delivery Phase:  Once the acceptance testing is successfully accomplished, the modified system is delivered to the users. In addition to this, the user is provided proper consisting of manuals and help files that describe the operation of the software along with its hardware specifications. The final testing of the system is done by the client after the system is delivered. 


Software Maintenance Models:  

To overcome internal as well as external problems of the software, Software maintenance models are proposed. These models use different approaches and techniques to simplify the process of maintenance as well as to make is cost effective. Software maintenance models that are of most importance are:

Quick-Fix Model:  

This is an ad hoc approach used for maintaining the software system. The objective of this model is to identify the problem and then fix it as quickly as possible. The advantage is that it performs its work quickly and at a low cost. This model is an approach to modify the software code with little consideration for its impact on the overall structure of the software system.

Iterative Enhancement Model:  

Iterative enhancement model considers the changes made to the system are iterative in nature. This model incorporates changes in the software based on the analysis of the existing system. It assumes complete documentation of the software is available in the beginning. Moreover, it attempts to control complexity and tries to maintain good design.

Iterative Enhancement Model is divided into three stages: 

  • Analysis of software system. 
  • Classification of requested modifications. 
  • Implementation of requested modifications. 

The Re-use Oriented Model: 

The parts of the old/existing system that are appropriate for reuse are identified and understood, in Reuse Oriented Model. These parts are then go through modification and enhancement, which are done on the basis of the specified new requirements. The final step of this model is the integration of modified parts into the new system. 


Boehm's Model: 

Boehm’s Model performs maintenance process based on the economic models and principles. It represents the maintenance process in a closed loop cycle, wherein changes are suggested and approved first and then are executed.

..comming  Soon

Post a Comment

Previous Post Next Post