2. Introduction:
• Software maintenance is the last stage of s/w life cycle .
• Software maintenance is the general process of changing a system after it has
been delivered.
• Software maintenance is the modification of a software product after delivery to
correct faults, to improve performance or other attributes.
• After the product has been released, the maintenance phase keeps the s/w up
to date with environment changes & changing user requirements.
• After the software has been installed, now maintenance phase starts.
3. What is the software maintenance?
Definitions
Software Maintenance is a very broad activity that includes error corrections,
enhancements of capabilities, deletion of obsolete capabilities, and optimization.
• As per IEEE:
It is a modification of s/w product after delivery to correct faults,
to improve performance or other attributes or to adapt the product to a modified
environment.
• As per ISO:
Those activities performed when s/w undergoes modifications to
code & associated documentation due to a problem or the need for improvement
or adaptation are called software maintenance.
4. Importance off software maintenance
• Adapt to a Changing Environment:
Technology and the business environment are the
two of the fastest changing aspects of our world. Regular updates and maintenance will
allow you to keep up with market trends and ensure your business is as efficient and
effective as it can be.
• Bug Fixes:
After the implementation of software any error or bug is occur then developer
team trace it and remove it.
• Improved Performance with Regular Upgrades:
Most maintenance programs
will include an upgrade component. Under a maintenance program, you will be entitled to
free upgrades – usually once per year. These upgrades often address issues reported by
other software users and can greatly improve functionality and performance.
5. Need for maintenance
Software maintenance is needed for :-
• Correct error.
• Changing hardware/software environment.
• To modify the components.
• To enhance the s/w by changing its functions.
• Change in user requirement with time.
• To eliminate any unwanted side effects.
• To improve system efficiency.
• To optimize the code to run faster.
6. Types of maintenance
There are four types of software maintenance:
• Adaptive :
Modifying the system to cope with changes in the software environment.
• Perfective :
Implementing new or changed user requirements which concern functional
enhancements to the software.
• Corrective :
Diagnosing and fixing errors, possibly ones found by users.
• Preventive :
Increasing software maintainability or reliability to prevent problems in the
future.
9. Why modify the software
Now a days maintenance is the part of SDLC. There are many reasons to modify
the software system. Some major are discuss below..
• Market Condition.
• Client Requirement.
• Host Modification.
• Organizational Change.
10. Maintenance Activities
• Identification and Tracing :
It involves activities pertaining to identification of requirement of
modification or maintenance. It is generated by user or system may itself report via logs or
error messages.
• Analysis :
In this phase team analysis the requirements and check the effect or impact on
the whole system.
• Design :
New modules, which need to be replaced or modified, are designed against
requirement specifications set in the previous stage.
• Implementation :
New modules are coded with the help of design.
11. Maintenance Activities
• System Testing :
Unit testing is done in implementation phase. In this phase
tester test the whole system and functionality of system.
• Acceptance Testing :
In this phase system is tested with the help of user and
different stakeholders .
• Delivery :
After acceptance test, the system is deployed all over the organization
either by small update package or fresh installation of the system. The final testing
takes place at client end after the software is delivered.
13. Software Maintenance Problems
• Someone else's program.
• Maintenance activity not highly regarded.
• Very costly or expensive.
• Developer not available.
• Proper documentation doesn't exist.
• Not designed for change.
• Maintenance activity not highly regarded.
14. Software Maintenance Problems
• Most computer programs are difficult and expensive to maintain.
• Software changes are poorly designed and implemented.
• The repair and enhancement of software often injects new bugs that must later
be repaired.
• Changes often cause new faults in the system.
16. Quick Fix Model
This maintenance model provides a quick advantageous solution, that’s why it
named as ‘Quick-Fix’ model which is used to recursively find and fix the issues
effectively. It provides a quick approach to detect and modify software code within
a short period of time.
Advantages :
• It is short and fast proses.
• Without going through whole documentation, changes can be done.
• Deliver solution in less time.
• Fix bugs for long period of time.
• Work at lo cast.
18. Iterated Enhancement Model
This maintenance model has repetitive process. It does not start with complete requirements.
The development initialize by keep analysing and implementing the changes that needed. It
produces a new version in every cycle. This can be classified in three stages which are as
follows:
Analysis.
Classification of Modifications.
Implementation.
• Analysis :
In this stage, the analysis can be done in order to find out the appropriate
solution for maintaining software.
19. Iterated Enhancement Model
• Classification and Modification :
The number of modifications done within
software may be classified w.r.t. design and code.
• Implementation :
After modification stage, all the required modifications can be
implemented perfectly to produce improvised results
23. Boehm’s Model
• Boehm proposed a model for the maintenance process based upon the
economic models and principles.
• Boehm represent the maintenance process as a closed loop cycle.
• Changes are proposed first.
• Then changes are made.