software maintenance

19
Software Maintenance Unit II

Upload: amit-udhwani

Post on 07-Aug-2015

181 views

Category:

Engineering


6 download

TRANSCRIPT

Page 1: Software maintenance

Software Maintenance

Unit II

Page 2: Software maintenance

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

Categories of MaintenanceThere are three major categories

of software maintenance:◦Corrective Maintenance◦Adaptive Maintenance◦Perfective Maintenance

Page 4: Software maintenance

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.