Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
76 views22 pages

Factors Affecting Software Maintenance

The document discusses factors that affect software maintenance costs, including the relationships between the software product, environment, users, and maintenance team. It describes how user requirements, organizational environment, maintenance processes, documentation, and staff turnover can negatively impact maintenance or increase costs. The software product's complexity, flexibility, quality of documentation can also affect maintenance.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
76 views22 pages

Factors Affecting Software Maintenance

The document discusses factors that affect software maintenance costs, including the relationships between the software product, environment, users, and maintenance team. It describes how user requirements, organizational environment, maintenance processes, documentation, and staff turnover can negatively impact maintenance or increase costs. The software product's complexity, flexibility, quality of documentation can also affect maintenance.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 22

Factors Affecting

Software
Maintenance
Software maintenance prediction

▪ Many factors directly or indirectly lead to high maintenance


costs. A software maintenance framework is created to
determine the affects of these factors on maintenance. This
framework comprises user requirements, organizational and
operational environment, maintenance process, maintenance
personnel, and the software product. These elements
interact with each other based on three kinds of
relationships

2
3
1.    Relationship of software product and
environment:
▪  In this relationship, the software
product changes according to the
organizational and operational
environment. However, it is
necessary to accept only those
changes which are useful for the
software product.

4
2.      Relationship of the software product and
user:
▪  In this relationship, the software
product is modified according to the
new requirements of users. Hence, it
is important to modify the software
that is useful and acceptable to users
after modification.

5
3.   Relationship of software product and software
maintenance team: 
▪ In this ‘relationship, the software maintenance team
members act as mediators to keep track of the
software product.
▪ In other words, the software maintenance team
analyzes the modifications in other elements of
software maintenance framework to determine their
effect on the software product. These elements
include user requirements, organizational and
operational environments, and the software
maintenance process. All these elements affect the
modifications in software and are responsible for
maintaining software quality.

6
▪ Generally, users have little knowledge of the
software maintenance process due to which they
can be unsupportive to the software
maintenance team. Also, users may have some
misconceptions such as software maintenance is
like hardware maintenance, changing software
is easy, and changes cost too much and are time
consuming.
7
▪ If user requirements need major changes in the
software, a lot of time may be consumed in
implementing them. Similarly, users may opt for
changes that are not according to the software
standards or policies of a company. This
situation creates a conflict between users and
the software maintenance team.
8
To implement user requirements in software, the
following characteristics should be considered.
▪ 1.         Feasible: User requirements are feasible if the requested
change is workable in the software system.
▪ 2.         Desirable: Before implementing new changes, it is important
to consider whether the user modification request is necessary.
▪ 3.     Prioritized: In some cases, the user requirements may be both
feasible and desirable. However, these requirements may not be of
high priority at that time. In such a situation, the user requirements
can be implemented later.

9
The facets of a maintenance process which affect the evolution of
software or contribute to high maintenance costs are listed below.

▪ 1.    Error detection and correction: It has been


observed that error-free software is virtually non-
existent. That is, a software product tends to contain
some kind of ‘residual’ errors. If these errors are
uncovered at a later stage of software development,
they become more expensive to fix. The cost of
fixing errors is even higher when errors are detected
during the maintenance phase.
11
The facets of a maintenance process which affect the evolution of
software or contribute to high maintenance costs are listed below.

▪ 2.     Difficulty in capturing change (and


changing) requirements: Requirements and
user problems become clear only when a system
is in use. Also users may not be able to express
their requirements in a form, which is
understandable to the analyst or programmer.

12
The facets of a maintenance process which affect the evolution of
software or contribute to high maintenance costs are listed below.

▪ 3.     Software engineering paradigm


shift: Older systems that were developed prior
to the advent of structured programming
techniques may be difficult to maintain.

13
Software Product
The software developed for users can be for general use or
specific use.
Generally, the aspects of a software product that contribute to
the maintenance cost/ challenge are

▪ 1.   Difficulty of the application domain: The


requirements of applications that have been
widely used and well understood are less likely
to undergo substantial modifications than those
that have been recently developed.

15
Generally, the aspects of a software product that contribute to
the maintenance cost/ challenge are

▪ 2.   Inflexibility in programs: While modifying


software, it should be checked for the flexibility
of change and reuse. This is because the
inflexible software products are more prone to
failures.

16
Generally, the aspects of a software product that contribute to
the maintenance cost/ challenge are

▪ 3.   Quality of the


documentation: Documentation is essential for
understanding the requirements, software
design, and how these requirements are
converted into the software code. The
unavailability of up-to-date systems
documentation affects maintenance productivity
adversely. 17
Software Maintenance
Team
The group of individuals responsible for the software maintenance
is referred to as the software maintenance team, which may or
may not comprise the development team that ‘built’ the software. 
▪ Often, a separate maintenance team (comprising analysts,
designers, and programmers) is formed to ensure that a system
performs its functions properly. This team is employed as it
has been observed that generally developers do not keep
documentation up-to-date, leading to the need of more
individuals or resources to tackle a problem. This results in a
long time-gap between the time when a problem occurs and
when it is fixed.

19
Various functions performed by the software
maintenance team are listed below.
▪ Locating information in system documentation
▪ Keeping system documentation up-to-date
▪ Improving system functionalities to adapt new environment
▪ Enhancing system to perform new functions according to the
user’s needs
▪ Detecting root cause of failures, if any
▪ Handling changes made to the system.

20
The aspects of a maintenance team that lead to high
maintenance costs are listed below.
▪ 1.     Staff turnover: Generally, it is observed that when the
staff turnover (the ratio of number of individuals that leave the
organization during a specified period of time) is high, the
software maintenance is not performed properly. This is
because employees who originally worked on software
products are replaced by new personnel who spend a
substantial proportion of the maintenance effort in
understanding the system.

21
The aspects of a maintenance team that lead to high
maintenance costs are listed below.

▪ 2.   Domain expertise: Sometimes, the


maintenance team may have little or no
knowledge about the system domain and the
application domain they are working in. This
problem is worsened if documentation is not
maintained or is not up-to-date. All this may
lead to delay in implementing the changes
requested by the user. 22

You might also like