Download - Software maintenance
![Page 1: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/1.jpg)
Software Maintenance
Unit II
![Page 2: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/2.jpg)
What is Software Maintenance?Software Maintenance is a broad
activity that includes:◦Error Corrections,◦Enhancements of Capabilities,◦Deletion of Obsolete Capabilities, and◦Optimization
Any work done to change the software after it is in operation is considered as maintenance work.
The purpose is to preserve the value of the software over time.
![Page 3: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/3.jpg)
Categories of MaintenanceThere are three major categories
of software maintenance:◦Corrective Maintenance◦Adaptive Maintenance◦Perfective Maintenance
![Page 4: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/4.jpg)
Categories of Maintenance
Corrective Maintenance:◦Refers to modifications initiated by
defects in the software.◦A defect can result from
Design errors, Logical errors, and Coding errors.
![Page 5: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/5.jpg)
Categories of Maintenance
Corrective Maintenance:◦Design Errors occur when the software
is Incorrect, Incomplete, The requirement specifications are
misunderstood.
◦Logical Errors result from Invalid tests and conclusions, Incorrect implementation of design
specifications, Faulty logic flow, Incomplete test data
![Page 6: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/6.jpg)
Categories of Maintenance
Corrective Maintenance:◦Coding Errors are caused by
Incorrect implementation of detailed logic design,
Incorrect use of source code logic.
◦Defects are also caused by data processing errors and system performance errors.
◦Any effort made to correct these errors comes under corrective maintenance.
◦Sometimes emergency fixes, also called as “patching”, are done to restore the operations of a software.
![Page 7: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/7.jpg)
Categories of Maintenance
Adaptive Maintenance:◦It includes modifying the software to
match changes in the environment.◦Environment refers to the totality of
all conditions and influences which act upon the software from outside.
◦For example, Business rules, Government policies, Work patterns, Software and hardware operating
platforms.
![Page 8: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/8.jpg)
Categories of Maintenance
Adaptive Maintenance:◦This type of maintenance includes
any work that has been started due to moving the software to a different hardware or software platform (a new operating system or a new processor).
![Page 9: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/9.jpg)
Categories of MaintenancePerfective Maintenance:
◦It means improving processing efficiency or performance of the software.
◦It also means restructuring the software to improve changeability.
◦When software becomes useful, the user may want to extend it beyond the scope for which it was initially developed.
![Page 10: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/10.jpg)
Categories of MaintenancePerfective Maintenance:
◦Expansion in requirements then results in enhancements to the existing system functionality or efficiency.
◦Thus, Perfective maintenance refers to enhancements to make the product better, faster, and cleanly structured with more functions and reports.
![Page 11: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/11.jpg)
Categories of MaintenancePreventive Maintenance:
◦Modification of a software product after its delivery to detect and correct latent faults in the software product before they become effective faults.
◦It is a predictable type of maintenance, where the software is checked periodically for adjustments, and repairs.
![Page 12: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/12.jpg)
Software Maintenance Process
Once the maintenance objective is identified, ◦The maintenance personnel must
understand what they are to modify.◦Then they must modify the program
to satisfy maintenance objectives.◦After modification they must ensure
that the modification does not effect other portions of the program.
◦Finally they must test the program,
![Page 13: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/13.jpg)
Determine Maintenance Objective
Program Understanding
Generate particular maintenance proposal
Account for Ripple Effect
Testing
Pass Testin
g?
Correct program errorAdd new capabilitiesDelete obsolete featuresOptimization Phase 1
ComplexityDocumentationSelf descriptiveness
Extensibility
Stability
Testability
Yes
No
![Page 14: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/14.jpg)
Software Maintenance Process
Program Understanding◦Analyze the program to understand
it.◦Complexity of the program,
documentation, self descriptiveness of the program help in understanding it.
◦Complexity of the program is usually based on its data or control flow.
![Page 15: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/15.jpg)
Software Maintenance Process
Generating Maintenance Proposal◦This is done to accomplish the
maintenance objective.◦It requires clear understanding of
both the maintenance objective and the program to be modified.
◦This process becomes easy if the program is extensible and supports extensions to its functions.
![Page 16: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/16.jpg)
Software Maintenance ProcessRipple Effect
◦In software, the effect of a modification may not be local to the changed module only.
◦It may also effect other portions of the program.
◦This effect is called as Ripple Effect.◦One aspect of the effect is logical or
functional.◦Another aspect concerns the performance
of the program.◦Thus it becomes necessary to understand
the potential of the ripple effect.
![Page 17: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/17.jpg)
Software Maintenance Process
Ripple Effect◦The primary attribute of the program
that gets effected by the ripple effect is the stability of the program.
◦Program Stability is defined as the resistance to amplification of changes in the program.
![Page 18: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/18.jpg)
Software Maintenance ProcessModified Program Testing
◦This phase consists of testing the modified program to ensure that the modified program has the same reliability level as before.
◦It is important that cost effective testing techniques be applied during maintenance.
◦The testing process becomes cost effective due to the testability of the program.
◦Program Testability is defined as the effort required to test the program according to some well defined criteria.
![Page 19: Software maintenance](https://reader035.vdocuments.site/reader035/viewer/2022080216/55c461f9bb61eb714e8b4787/html5/thumbnails/19.jpg)
Software Maintenance ProcessMaintainability
◦All of the factors of above four phases are combined to form maintainability of the program. How easy is it to maintain the program?
◦The answer to this question depends upon how difficult the program is to understand.
◦Program maintainability and program understandability are parallel concepts.
◦The more difficult a program is to understand, the more difficult it is to maintain.
◦And the more difficult it is to maintain, the higher is its maintainability risk.