This presentation summarizes software maintenance. It defines software maintenance as modifying software after delivery to fix bugs, improve performance, or adapt to changes. The main types of maintenance are corrective, adaptive, perfective, and preventive maintenance. Corrective maintenance fixes bugs, adaptive maintenance adapts software to new environments, perfective maintenance improves performance, and preventive maintenance finds latent bugs. Maintenance costs are typically much higher than development costs. Common maintenance problems include lack of documentation and software not designed for change. The presentation also discusses errors, faults, downtime, and the importance of documentation.
3. SOFTWARE MAINTENANCE DEFINITION
3
The process of modifying a software system
or component after delivery to correct faults,
improve performance or other attributes, or
adapt to a changed environment.
4. THE SIX PURPOSE OF MAINTENANCE
4
Failure Avoidance
Risk Reduction
Maximum Production
Defect Elimination
Least Operating Costs
Equipment reliability
The job of maintenance is to provide reliable
plan for least operating cost-we don’t just fix
equipment.
6. Characteristics:
- inefficient maintenance department
- unpredictable equipment operation
- all maintenance work unplanned
Results: steady degradation of
equipment performance
Corrective maintenance: Reactive
modification of a software product performed
after delivery to correct
discovered problems.
6
7. Adaptive maintenance: Modification of
a software product performed after delivery to
keep a software product usable in a changed or
changing environment.
Characteristics- close relationship
with equipment suppliers.
Results: continually improving
equipment
7
8. Preventive maintenance: Modification of a
software product after delivery to detect and correct
latent faults in the software product before they
become effective faults.
Characteristics:
- more predictable
- more efficient
Results: maintain level
of equipment
8
9. Perfective maintenance:
Modification of a software product after
delivery to improve performance or
maintainability.
Characteristics:
- predictable maintenance
requirements
-planned & scheduled equipment
repairs
Results: maintain equipment
performance
with minimal disruption to production
9
13. Program Restructuring
It is a process to re-structure and re-construct the existing
software.
Forward Engineering:
It is the process of building from a high-level model or
concept to build in complexities and lower-level details.
13
14. MAINTENANCE COSTS
Maintenance costs are usually greater than
development costs by a factor of 2 to 100.
The costs arise from both technical and nontechnical
factors.
Reasons:
Maintenance changes ,degrades the original system
structure.
Aging software results in high support costs.
14
17. MAINTENANCE PROBLEMS
Someone else's program.
Developer not available.
Proper documentation doesn't exist.
Not designed for change.
Maintenance activity not highly regarded.
17
18. DISTRIBUTION OF MAINTENANCE EFFORT
Functionality
addition or
modification
(65%)
Fault repair
(17%)
Softw are
adaptation
(18%)
18
19. WHAT IS ERROR??
Error : Refers to difference between Actual Output
and Expected output.
The mistakes made by programmer is known as an
“Error”.
Error is terminology of Developer.
19
20. REASONS OF ERROR
Error could happen because of the following reasons:
Because of some confusion in understanding the
functionality of the software
Because of some miscalculation of the values
Because of misinterpretation of any value, etc.
20
21. CATEGORIES OF SOFTWARE ERRORS:
User interface errors such as output errors or
incorrect user messages.
Function errors
Hardware defects
Incorrect program version
Requirements errors
Design errors
Documentation errors
Architecture errors
Module interface errors
Performance errors
Boundary-related errors
21
22. WHAT IS FAULT??
Fault : It is a condition that causes the software to
fail to perform its required function.
Fault is incorrect step, process or data definition in
a computer program which causes the program to
behave in an unintended or unanticipated manner.
It is the result of the error.
22
24. STATISTIC ON FAULTS
**60-65% of software faults originate from
– incomplete, missing, inadequate, inconsistent,
unclear requirements
**35-40% of software faults originate from
– coding mistakes
– proportional to
• size of code
• number of paths in
24
25. AN EXAMPLE OF SOFTWARE FAULT:
In 1991, a change f 3 lines of code in a program
containing millions lines of code caused a local
telephone system in California to stop.
Failure: The inability of a system or component to perform its required
functions within specified performance requirements
25
27. SOFTWARE DOWNTIME
The term downtime is used to refer to
periods when a system is unavailable. Downtime or
outage duration refers to a period of time that a
system fails to provide or perform its primary function
27
30. DEFINITION :
Software documentation is written text or
illustration that accompanies computer software. It
either explains how it operates or how to use it, and
may mean different things to people in different
roles.
30
32. TYPES OF DOCUMENTATION
Requirements
Architecture/Design
Technical
End User
Marketing
32
33. SOFTWARE SPECIFICATION
A software specification is a
description of a software system to be
developed. It lays out functional and
non- functional requirements, and may
include a set of use case that describe
user interactions that the software
must provide.
33