The costs of software system maintenance take 40 - 80% of corporate information system expenditures. Refactoring is a well-known way of improving code clarity, reducing the complexity of the subject system, and decreasing the code duplication overhead. These effects can help in the reduction of maintenance costs. However, since refactoring consumes resources, which can be regarded as costs, managers will have to calculate the return on investment (ROI) on refactoring before committing to it.
This study defines a process to get the long-term value of the initial investment of the software refactoring on an existing code. The process uses a life cycle economics model that produces quantitative data necessary for the managers to make strategic decisions on the investment: the initial investment on the software refactoring and the long-term savings in software maintenance efforts. The life cycle economics model used in the process is based on USC-CSE``s Constructive Cost Model (COCOMO) II. Since COCOMO II has multiple sub models to cover the entire software life cycle with well calibrated multiple parameters, we propose new configurations of its reuse sub model to estimate the initial refactoring efforts and the maintenance sub model to estimate the annualized maintenance effort savings. The new configurations provide customized parameters of the sub models with refactoring-specific constant values and additional parameters to represent the cost saving goals.
Among the model parameters, we choose four parameters to analyze the sensitivity to the refactoring values. The parameters are maintenance change factor (MCF), MCF reduction, source line of code (SLOC) reduction, and maintenance adjustment factor (MAF) reduction. The first one represents the status of subject application, and the others represent the influences of refactoring on the application.
The analysis explains that the saving effects are more sensitive to the portion of the annual maintenanc...