Session 6 - Software Maintenance
Session 6 - Software Maintenance
Software Maintenance
1
Recap for session 5
2
Agenda for session 6
1.Software Maintenance
2.Types of Software Maintenance
3.Cost of Software Maintenance
4.Maintenance Activities
3
Software Maintenance
Software maintenance is widely accepted part of SDLC now
a days. It stands for all the modifications and updations done
after the delivery of software product.
4
Software Maintenance Cont..
Client Requirements - Over the time, customer may ask for new
features or functions in the software.
5
Types of Software Maintenance
Types of maintenance
In a software lifetime, type of maintenance may vary based on its nature.
It may be just a routine maintenance tasks as some bug discovered by
some user or it may be a large event in itself based
on maintenance size or nature.
Following are some types of maintenance based on their
characteristics:
1. Corrective Maintenance –
This includes modifications and updations done in order to correct or fix
problems, which are either discovered by user or concluded by user error
reports.
2. Adaptive Maintenance –
This includes modifications and updations applied to keep the software
product up-to date and tuned to the ever changing world of technology
and business environment.
6
Types of Software Maintenance Cont..
3. Perfective Maintenance –
This includes modifications and updates done in order to keep the
software usable over long period of time. It includes new features,
new user requirements for refining the software and improve its
reliability and performance.
4. Preventive Maintenance –
This includes modifications and updations to prevent future
problems of the software. It aims to attend problems, which are not
significant at this moment but may cause serious issues in future.
7
Cost of Software Maintenance
Cost of Maintenance
Reports suggest that the cost of maintenance is high. A study on
estimating software maintenance found that the cost of
maintenance is as high as 67% of the cost of entire software
process cycle.
9
Software Maintenance Cost…
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill
10
2009). Slides copyright 2009 by Roger Pressman.
Maintenance Activities in
Software
IEEE provides aEngineering
framework for sequential maintenance
process activities. It can be used in iterative manner and can
be extended so that customized items and processes can be
included.
11
Maintenance Activities in
Software Engineering
These activities go hand-in-hand with each of the following
phase:
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill
12
2009). Slides copyright 2009 by Roger Pressman.
Maintenance Activities in
Software Engineering
2. Analysis –
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill
13
2009). Slides copyright 2009 by Roger Pressman.
Maintenance Activities in
Software Engineering
3. Design –
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill
14
2009). Slides copyright 2009 by Roger Pressman.
Maintenance Activities in
Software Engineering
4. Implementation –
The new modules are coded with the help of structured design
created in the design step.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill
15
2009). Slides copyright 2009 by Roger Pressman.
Maintenance Activities in
Software Engineering
5. System Testing –
Integration testing is done among newly created modules.
Integration testing is also carried out between new modules
and the system.
Finally the system is tested as a whole, following regressive
testing procedures.
6. Acceptance Testing –
After testing the system internally, it is tested for acceptance
with the help of users. If at this state, user complaints some
issues they are addressed or noted to address in next iteration
16
Maintenance Activities in
Software Engineering
7. Delivery - After acceptance test, the system is deployed
all over the organization either by small update package or
fresh installation of the system. The final testing takes place
at client end after the software is delivered.
Training facility is provided if required, in addition to the hard
copy of user manual.
8. Maintenance management –
Configuration management is an essential part of system
maintenance. It is aided with version control tools to control
versions, semi-version or patch management
17
Questions:
1. Software Maintenance includes
a) Error corrections
b) Enhancements of capabilities
c) Deletion of obsolete capabilities
d) All of the mentioned
2. Why do you need software maintenance?
Software maintenance is part of the software
development life cycle. The purpose of the service is
to modify and continuously update software
applications to eliminate all possible errors,
malfunctions, to improve work efficiency and
better system performance
18
Maintenance is classified into how many
categories ?
a) two
b) three
c) four
d) five
The modification of the software to match changes in the
ever changing environment, falls under which category
of software maintenance?
a) Corrective
b) Adaptive
c) Perfective
d) Preventive
19
What type of software testing is
generally used in Software
Maintenance?
a) Regression Testing
b) System Testing
c) Integration Testing
d) Unit Testing
20