Optimal policies for the sizing and timing of software maintenance projects (original) (raw)

Optimal Allocation of Effort to Software Maintenance: A Queuing Theory Approach

Production and Operations Management, 2009

W e develop variations of the M|G|1 queue to model the process of software maintenance within organizations and use these models to compute the optimal allocation of resources to software maintenance. User requests are assumed to arrive following a Poisson process and a binomial distribution is used to model duplication of requests. We obtain expressions for expected queue lengths with an exponential server using an N-policy for an integer N ! 1. We also obtain the optimal batching size and mean service rate by minimizing the total cost consisting of the cost of the server, the cost of waiting, and the fixed cost of maintenance, if applicable.

A controlled experiment in assessing and estimating software maintenance tasks

Information and Software Technology, 2011

Context: Software maintenance is an important software engineering activity that has been reported to account for the majority of the software total cost. Thus, understanding the factors that influence the cost of software maintenance tasks helps maintainers to make informed decisions about their work. Objective: This paper describes a controlled experiment of student programmers performing maintenance tasks on a C++ program. The objective of the study is to assess the maintenance size, effort, and effort distributions of three different maintenance types and to describe estimation models to predict the programmer's effort spent on maintenance tasks. Method: Twenty three graduate students and a senior majoring in computer science participated in the experiment. Each student was asked to perform maintenance tasks required for one of the three task groups. The impact of different LOC metrics on maintenance effort was also evaluated by fitting the data collected into four estimation models. Results: The results indicate that corrective maintenance is much less productive than enhancive and reductive maintenance and program comprehension activities require as much as 50% of the total effort in corrective maintenance. Moreover, the best software effort model can estimate the time of 79% of the programmers with the error of or less than 30%. Conclusions: Our study suggests that the LOC added, modified, and deleted metrics are good predictors for estimating the cost of software maintenance. Effort estimation models for maintenance work may use the LOC added, modified, deleted metrics as the independent parameters instead of the simple sum of the three. Another implication is that reducing business rules of the software requires a sizable proportion of the software maintenance effort. Finally, the differences in effort distribution among the maintenance types suggest that assigning maintenance tasks properly is important to effectively and efficiently utilize human resources.

On the Benefits of Planning and Grouping Software Maintenance Requests

2011 15th European Conference on Software Maintenance and Reengineering, 2011

Despite its unquestionable importance, software maintenance usually has a negative image among software developers and even project managers. As a result, it is common to consider maintenance requests as short-term tasks that should be implemented as quick as possible to have a minimal impact for end-users. In order to promote software maintenance to a first-class software development activity, we first define in this paper a lightweighted process -called PASM (Process for Arranging Software Maintenance Requests) -for handling maintenance as software projects. Next, we describe an in-depth evaluation of the benefits achieved by the PASM process at a real software development organization. For this purpose, we rely on a set of clustering analysis techniques in order to better understand and compare the requests handled before and after the adoption of the proposed process. Our results indicate that the number of projects created to handle maintenance requests has increased almost three times after this organization has adopted the PASM process. Furthermore, we also concluded that projects based on the PASM present a better balance between the various software engineering activities. For example, after adopting PASM the developers have dedicated more time to analysis and validation and less time to implementation and codification tasks.

A Method for Estimating Maintenance Cost in a Software Project: A Case Study

Journal of Software Maintenance: Research and Practice, 1997

Various research works indicate that the maintenance stage consumes most of the resources needed for a software project. Thus, this stage must be especially considered in productivity studies. Maintainability is the quality factor including all those software characteristics designed to make the product easier to maintain towards the end of achieving greater productivity in the maintenance stage. This paper proposes an empirical model for estimating maintenance cost based on this quality factor, as well as the method of using it. Finally, a practical case will be considered which reinforces the validity of this model.

A metrics-based software maintenance effort model

Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings.

We derive a model for estimating adaptive software maintenance effort in person hours, the Adaptive Maintenance Effort Mo

Selecting Optimal Maintenance Plans based on Cost/Reliability Tradeoffs for Software Subject to Structural and Behavioral Changes

2010

Software maintenance is assuming ever more a crucial role in the lifecycle due to the high variability of software requirements and environment. New development paradigms are being defined to support the numerous decisions that have to be taken after the software deployment. On the basis of the increasing request of software quality, nonfunctional attributes should enter in the decisional process to avoid changes that compromise the software quality. In this paper we define an optimization model that drives the choice of a maintenance plan (i.e. a set of maintenance actions to be taken) in correspondence of a certain change scenario. A change scenario is a set of new requirements that induce changes in the structural and behavioral architecture of the software system. The solution of such model, as shown in this paper on a mobile application, provides the set of actions that minimize the maintenance cost while guaranteeing a certain level of software reliability. We also show how this instrument can be used to perform a sensitivity analysis of maintenance plans vs cost/reliability tradeoff.

Understanding and predicting the process of software maintenance releases

Proceedings of IEEE 18th International Conference on Software Engineering

One of the major concerns of any maintenance organization is to understand and estimate the cost of maintenance releases of software systems. Planning the next release so as to maximize the increase in functionality and the improvement in quality are vital to successful maintenance management. The objective of this paper is to present the results of a case study in which an incremental approach was used to better understand the effort distribution of releases and build a predictive effort model for software maintenance releases. This study was conducted in the Flight Dynamics Division (FDD) of NASA Goddard Space Flight Center (GSFC). This organization is representative of many other software maintenance organizations. Over one hundred software systems totaling about 4.5 million lines of code, are maintained by this organization. Many of these systems are maintained for many years and regularly produce new releases. This paper presents three main results: 1) a predictive effort model developed for the FDD's software maintenance release process, 2) measurement-based lessons learned about the maintenance process in the FDD, 3) a set of lessons learned about the establishment of a measurement-based software maintenance improvement program. In addition, this study provides insights and guidelines to obtain similar results in other maintenance organizations.

Understanding and predicting the process of software maintenance release

1996

One of the major concerns of any maintenance organization is to understand and estimate the cost of maintenance releases of software systems. Planning the next release so as to maximize the increase in functionality and the improvement in quality are vital to successful maintenance management. The objective of this paper is to present the results of a case study in which an incremental approach was used to better understand the effort distribution of releases and build a predictive effort model for software maintenance releases. This study was conducted in the Flight

An Analysis of Technical Debt Management Through Resources Allocation Policies in Software Maintenance Process

2016

This paper presents an analysis of technical debt management through resources allocation policies in software maintenance process during its operation to demonstrate how different strategies leads to the emergence of different behaviors along the evolution path. To achieve this objective, this work used the System Dynamic approach for building a computational simulation model based on extensive literature review and secondary data. Most of the works that applied the System Dynamics on software projects research, focused on initial phases of its life cycle, leaving a gap to be explored regarding the long-term behaviors of the operation and maintenance phases. The results demonstrated that the excessive focus on the perfective maintenance activities could be more costly than performing regular preventive maintenance to reduce the technical debt incurred, ending up with fewer functionalities deployed, higher backlog, lower productivity, lower maintainability and higher technical principal.