Prediction of software maintenance costs
This thesis is concerned with predicting the costs of maintaining a computer program prior to the software being developed. The ubiquitous nature of software means that software maintenance is an important activity, and evidence exists to support the contention that it is the largest and most costly area of endeavour within the software domain. Given the levels of expenditure associated with software maintenance, an ability to quantify future costs and address the determinants of these costs can assist in the planning and allocation of resources. Despite the importance of this field only a limited understanding of the factors that determine future maintenance costs exists, and maintenance estimation is more frequently applied to existing software. A hypothesis has been postulated that suggests the inherent maintainability of the software, the scale of the activity and the degree of change that pertains will determine future software maintenance costs. The variables that contribute to the maintainability of the software have been explored through a survey of past projects, which was undertaken using a questionnaire. This was designed with assistance from three separate teams of professional software engineers. The questionnaire requires 69 numerical or ordinal responses to a series of questions pertaining to characteristics including program structure, computer architecture, software development methodology, project management processes and maintenance outcomes. Factor analysis methods were applied and five of the most powerful predictors are identified. A linear model capable of predicting maintainability has been developed. Validation was undertaken through a series of follow-up interviews with several survey respondents, and by further statistical analysis utilising hold-out samples and structural equation modelling. The model was subsequently used to develop predictive tools intended to provide management support by both providing a categorical assessment of future maintainability, and a quantitative estimate of probable maintenance costs. The distinction between essential corrective maintenance, and other elective forms of maintenance is considered. Conclusions are drawn regarding the efficacy and limitations of tools that can be developedt o supportm anagemendt ecisionm aking. Subjectt o further work with a largers ampleo f projects,p referablyf rom within a singleo rganisationi,t is concluded i that useful tools could be developed to make both categorical ('acceptable' versus 'not acceptable') and static (initial) quantitative predictions. The latter is dependent on the availability of a software development estimate. Some useful predictive methods have also been applied to dynamic (continuing) quantitative prediction in circumstances where a trend develops in successive forecasts. Recommendationfosr furtherw ork arep rovided.T hesei nclude: U Factor analysis and linear regression has been applied to a sample of past software projects from a variety of application areas to identify important input variables for use in a maintainability prediction model. Maintainability is regarded as an important determinant of maintenance resource requirements. The performance of these variables within a single organisation should be confirmed by undertaking a further factor analysis and linear regression on projects from within the target organisation. u The robustness of model design within this target organisation should be considered by applying a sensitivity analysis to the input variables. u This single organisation maintainability predictor model design should be validated by confirmatory interviews with specialists and users from within the target organisation. u Aggregate scale has been identified as another predictor of overall maintenance resource requirements, and the relationship between development and maintenance effort explored for the general case. It is desirable that development and corrective maintenance scale relationships should be explored within a single organisation. Within this environment the association between standardised effort and maintainability should be confirmed, and the value of the logistic model as a descriptor of the relationship verified. u The approacht o quantifying non-correctivem aintenanceth at has been outlined requiresf iirther developmentT. he relationshipb etweena nnualc hanget raffic and maintenancec ostss houldb e modelled,a ssuminga prior knowledgeo f the scale and maintainability determinants. uA sensitivity analysis should be applied to the predictive system that has been developed, recognising the potential for error in the values of the input variables that may pertain. uA goal of this further research should be the development of a suite of soft tools, designed to enable the user to develop a software maintenance estimation system.