2. What Is Maintenance?
It refer to the removal
of existing faults and
the modification in
response to changes
in specification or
environment.
2
3. Software Maintenance
Software maintenance in
software engineering is the
modification of a software
product after delivery to
correct faults, to improve
performance .
3
4. Need Of Software Maintenance
4
• Software requires changing regularly. Industry
changes, technology changes, legal requirements
change, and many of these things impact on
software. You have to update the software every so
often or make changes in how it works, so it can deal
with these changes.
• Software can be improved. New ideas of how to do
things can be introduced into existing software.
Having seen it working, people may have ideas of
other things they want it to do, so they will want
improvements made.
As Software Never Wear Out
But:
5. Programs usually contain errors. It may be a long
time before they are all found and the software may
run perfectly until it does, but it will need to be
maintained.
5
7. Corrective Maintenance
This type of maintenance is initiated by defects in
software
Defects can result from:-
Design Error- Occurs when changes made to software is
incorrect ,incomplete ,change made is misunderstood
Logic Error- Results from invalid test ,incomplete
implementation of design ,faulty logic flow
Coding Error-caused by incorrect implementation of
detailed logic design ,incorrect use of the source code
logic
Data processing error
System performance error
7
8. Adaptive Maintenance
It includes modifying the software to match changes
in ever changing environment .The term environment
refers to the totality of all condition and influences
which act from outside upon the software .
Environment in this context includes:-
Business Rules
Government Policies
Work Patterns
Hardware Operating System
8
9. Preventive Maintenance
It means improving efficiency ,restructuring the
software to improve changeability .
Perfective maintenance refers to enhancements by
making the product better ,faster ,better documented
,cleaner structured ,with more functions.
9
10. Perfective Maintenance
No software program contains zero flaws or areas
for improvement. Perfective software
maintenance involves computer programmers
working to improve the way a software program
functions or how quickly it processes requests.
Programmers may also engage in perfective
software maintenance to improve the software's
menu layouts and command interfaces.
10
12. Software Maintenance Processes
The implementation process contains software preparation
and transition activities, such as the conception and creation
of the maintenance plan; the preparation for handling
problems identified during development; and the follow-up
on product configuration management.
The problem and modification analysis process, which is
executed once the application has become the responsibility
of the maintenance group.
The maintenance programmer must analyze each request,
confirm it (by reproducing the situation) and check its
validity, investigate it and propose a solution, document the
request and the solution proposal, and finally, obtain all the
required authorizations to apply the modifications.
12
13. The process considering the implementation of the
modification itself. The process acceptance of the
modification, by confirming the modified work with
the individual who submitted the request in order to
make sure the modification provided a solution.
13
14. Main Problems in Maintenance
Often the program is written by another person or
group of persons.
Often the program is changed by person who did
not understand it clearly.
High staff turnover.
Information gap.
Systems are not designed for change.
14
15. Reverse Engineering
It is the process followed in order to find difficult
,unknown and hidden information about a
software system.
Reverse engineering can be used to "crack"
software and media to remove their copy
protection,[or to create a (possibly improved) copy;
this is usually the goal of a competitor.
15
16. Documentation in Software
Maintenance
It is the written records of facts about a software
system recorded with intent to convey purpose
,content and clarity .
Categories of software documentation:-
User Documentation- These Documents
contains description of the functions of a
system without reference to implemented
functions.
System Documentation-It contains all facts of
system ,including analysis specification
,design ,security ,error diagnosis and
recovery.
16