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

Session 6 - Software Maintenance

Uploaded by

2100030432cseh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views

Session 6 - Software Maintenance

Uploaded by

2100030432cseh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 20

Session – 6

Software Maintenance

1
Recap for session 5

1. Personal and Team Process models​


2. Personal Software Process (PSP) defines 5 framework activities
3. Team Software Process (TSP)
4. Product and Process
5. Difference between Product and Process:-

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.

There are number of reasons, why modifications are


required, some of them are briefly mentioned below:

Market Conditions - Policies, which changes over the time,


such as taxation and newly introduced constraints like, how
to maintain bookkeeping, may trigger need for modification.

4
Software Maintenance Cont..
Client Requirements - Over the time, customer may ask for new
features or functions in the software.

Host Modifications - If any of the hardware and/or platform such


as operating system of the target host changes, software changes
are needed to keep adaptability.

Organization Changes - If there is any business level change at


client end, such as reduction of organization strength, acquiring
another company, organization venturing into new business,
need to modify in the original software may arise

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.

On an average, the cost of software maintenance is more than


50% of all SDLC phases.
8
Software Maintenance Cost…
There are various factors, which trigger maintenance cost go
high, such as:
Real-world factors affecting Maintenance Cost

1.The standard age of any software is considered up to 10 to 15 years.


2.Older softwares, which were meant to work on slow machines with less
memory and storage capacity cannot keep themselves challenging against
newly coming enhanced softwares on modern hardware.
3.As technology advances, it becomes costly to maintain old software.
4.Most maintenance engineers are newbie and use trial and error method to
rectify problem.
5.Often, changes made can easily hurt the original structure of the software,
making it hard for any subsequent changes.
6.Changes are often left undocumented which may cause more conflicts in
future.

9
Software Maintenance Cost…

Software-end factors affecting Maintenance Cost

1. Structure of Software Program


2. Programming Language
3. Dependence on external environment
4. Staff reliability and availability

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:

1. Identification & Tracing –

It involves activities pertaining to identification of requirement


of modification or maintenance.

It is generated by user or system may itself report via logs or


error messages.Here, the maintenance type is classified also.

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 –

The modification is analyzed for its impact on the system


including safety and security implications. If probable impact
is severe, alternative solution is looked for. A set of
required modifications is then materialized into requirement
specifications. The cost of modification/maintenance is
analyzed and estimation is concluded.

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 –

New modules, which need to be replaced or modified, are


designed against requirement specifications set in the
previous stage. Test cases are created for validation
and verification.

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.

Every programmer is expected to do unit testing in parallel.

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

You might also like