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