A Framework for Software Maintenance and
Support Phase
Zafar Nasir and Abu Zafar Abbasi
Department of Computer Science
National University of Computer & Emerging Sciences
Karachi, Pakistan
{zafar.nasir, abuzafar.abbasi}@nu.edu.pk
Abstract— Software maintenance is one of the major concerns
of software development and maintenance organizations. Over
the years, the cost of maintenance has become the critical
factor in decision making pertaining to long term viability of
business and information systems. Software maintenance has
strong bearing with overall software development life cycle.
Depending upon the abilities of project team in the overall
software development environment, a good software
maintenance process would reduce the cost involved in terms of
money, manpower, resources and time. In this paper we have
discussed a simple but comprehensive framework for software
maintenance and support phase. Based upon the guidelines of
the proposed framework for software maintenance could be
easily manageable and also become cost-effective.
Keywords- software maintenance, framework, procedures,
software support, process model
I. INTRODUCTION
Software organizations that rely on developing and
maintaining software are facing new, globally competitive
market. With the increase in competition among vendors all
over the world, the customer is expecting the services and
product of high quality, with little cost and complemented by
top support service. Maintaining software is not an easy task,
it requires the proper management system within the
organization. The organization software maintenance system
has to fulfill the needs like technical measure of the domain
as well as optimum quality service, with maximize strategic
impact and minimum cost of maintenance activities. To
achieve above, organization would require continuous
process improvement of processes for software maintenance.
However, the software maintenance is noteworthy activity as
the 75 percent of system’s lifespan cost occupy by
maintenance [2].
The term software maintenance bears a significantly
different meaning with its counterpart i.e. hardware or
machine maintenance. The software neither wears out nor
deteriorates with time nor needed repair as does the
hardware. Software maintenance implies the changes or
upgradations required from clients after delivery of product
due to observed bugs or requirement of some new
functionality. Although the software maintenance phase
starts after the delivery of product to the client, it covers a
major portion of the cost, effort and time involved in the
project. Broadly speaking software maintenance covers all
the work made on a software system after it is delivered or
becomes operational spreading to corrective changes,
adapting to new requirements, improving existing functions,
and enhancing application with new functions [3]. Formally
we may define software maintenance as,
“Software maintenance is the process of modifying a
software system or component after delivery to correct faults,
improve performances or other attributes, or adapt to a
changed environment.”[6]
However, it may be noted that software maintenance is
not just bug fixing but rather involves planning of post
delivery operations, supportability, and logistics even in the
development and testing phase.
There is a strong relationship between software
maintenance and project cost and effort estimation. A good
software maintenance process could significantly reduce the
maintenance cost to the organization as well make it more
easily manageable.
In overall software organization context, the development
process and maintenance process share common tasks. High
level relation between them is shown in figure 1 [5]. The
information from development process is always required in
maintenance process as in the case of software configuration
where the continuous switching between this two processes
take place. After the issue is reported and before the action is
taken, the team evaluates and classifies it as Change request,
Bug fix, Assistance, or Installation. After classification of
logs, the development team is notified about the logged
request. Evaluation is done by development team to identify
the impact on the code and architecture of system. After
approval of request, code and other artifacts are modified and
update is provided to client.
Figure 1. Relationship between Software Maintenace &
Stakeholders
Contracts
Solutions Evaluation
Management
Services
Services
Agreement
CUSTOMER
USERS
DEVELOPMENT TEAM
SUPPLIERS
SOFTWARE
MAINTENANCE
Problem
Resolution/Communication
978-1-4244-8003-6/10/$26.00 ©2010 IEEE