0% found this document useful (0 votes)
6 views

Software Maintenance

thanks

Uploaded by

ishu9129720392
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Software Maintenance

thanks

Uploaded by

ishu9129720392
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 20

Software Maintenance

Introduction – Definition of SM
• IEEE 91 definition :
The process of modifying the software system or
component after delivery to correct faults, improve
performance or other attributes, or adapt to a change in the
environment.

• ISO Definition :
Software maintenance is a set of activities performed when
software undergoes modifications to code and associate
documentation due to a problem or the need for
improvement or adaptation
The Importance of SM – Why Maintain
the Software?

• To provide continuity of service

• To support mandatory upgrades

• To support user requests for improvements

• To facilitate future maintenance work


The Importance of SM

• To provide continuity of service


• System needs to keep running.
• Example: system that controls the flight signaling system that
cannot be allowed to stop if there’s an error. An unexpected
failure of the system could be life threatening.
(..cont) The Importance of SM
• To support mandatory upgrades

• Due to changes in government regulations or policies on


certain matter that involves the systems operation.
• Example: tax payment systems; good prices, etc.
(..cont) The Importance of SM

• To support user requests for improvements

• The better a system is, the more it will be used and the more
the users will request enhancements in functionality.
• There may also be requirements for better performance and
customization to local working patterns.
(..cont) The Importance of SM
• To facilitate future maintenance work
• Shortcuts at the software development stage are very costly in
the long run.
• It is often financially and commercially justifiable to initiate
change solely to make future maintenance easier.
• This would involve such things as code and database
restructuring, and updating of documentation.
Types of Software Maintenance

Software maintenance is Classified in the following categories:

• Corrective Maintenance
• Adaptive Maintenance
• Preventive Maintenance
• Perfective Maintenance
Corrective Maintenance
• Reactive modification of a software product performed
after delivery to correct discovered problems.
• The identification and removal of faults in the software
after delivery of the software product to the client.
Adaptive Maintenance
• Modification of a software product performed after delivery to
keep a software product usable in a changed or changing
environment.
• changes needed as a consequence of operated system,
hardware, or DBMS changes
• Changes to be done in the system to react to changes in the
environment in which the system operates.
• Adaptive maintenance is generally not requested by the
client, rather it is imposed by the external environment
Preventive Maintenance

• Preventive maintenance involves the activities to


update the software in anticipation of any future
problems.
Perfective Maintenance

• Changes required as a result of user requests


• Perfective Maintenance is where most of the
maintenance time and money are spent.
• Perfective Maintenance improves the efficiency and/or
effectiveness of the system.
Use of Maintenance Time

Adaptive
25%
Perfective
50%

Preventive 4%
Corrective
21%
Causes of Software Maintenance Problems
• Lack of Traceability
• Lack of code comments
• Lack of Domain Knowledge
• Staff Problem
– Limited Understanding: 47% of software maintenance effect is devoted to
understanding the software to be modified.
– User’s Limited Understanding: provide incomplete and misleading data when
reporting a problem
– 11.9% of the problems during maintenance result from low morale and
productivity.
– During maintenance, 8% of the problems result from a programmer’s being
pulled in too many directions at one, and thus being unable to concentrate on
one problem long enough to solve it.

• Technical Problems
• The need to compromise
Maintenance Process
Correct Program Error
Determine Maintenance
Objective Add New Capability

Delete Some Feature


Program Understanding Optimization

Generate maintenance
Proposal

Account for Ripple


Effect

Testing

No
Pass
Testing

Yes
Maintenance Process Cont..
1. Program Understanding –
 This is the first phase. Analyze the program in order to
understand it.
 Attributes such as complexity of the program, the
documentation, and the self- descriptiveness of the
program contribute to the ease of understanding the
program.
 The complexity is a measure of the effort required to
understand the program and is usually based on the
control or data flow of the program.
Maintenance Process Cont..
2. Generating Maintenance Proposal
 This is the 2nd phase consists of generating a particular
maintenance proposal to accomplish the implementation
of the maintenance objective. The ease of generating
maintenance proposal for a program is primarily affected
by the attribute extensibility. The extensibility of the
program is a measure of the extent to which the program
can support extensions of critical functions.
Maintenance Process Cont..
3. Ripple Effect
The 3rd phase consists of accounting for all of the ripple effect
as a consequence of program modification. In software, the
effect of a modification may not be local to the modification, but
may also affect other portions of the program. There is a ripple
effect from the location of the modification to the other parts of
the program that are affected by the modification.
One aspect if this effect is
Logical or functional
Second is performance requirements
Maintenance Process Cont..

4. Modified Program Testing


The 4th phase consists of testing the modified
program to ensure that the modified program has
at least the reliability level as before.
THANKS

You might also like