Construction and Validation of Prediction Models for Changes to Requirements

The quality of software systems depends on early activities in the software development process, of which the management of requirements is one. When requirements are not managed well, a project can fail or become more costly than intended, and the quality of the software developed can decrease. Among the requirements management practices, it is particularly important to quantify and predict requirements volatility, i.e., how much the requirements are likely to change over time. Software measures can help in quantifying and predicting requirements attributes like volatility. However, few measures have yet been defined, due to the fact that the early phases are hard to formalise. Furthermore, very few requirements measures have been validated, which would be needed in order to demonstrate that they are useful. The approach to requirements management in this thesis is quantitative, i.e. to monitor the requirements management activities and requirements volatility through software measurement. In this thesis, a set of 45 requirements management measures is presented. The measures were defined using the goal question metrics framework for the two predefined goals of the requirements management key process area of the capability maturity model for software. A subset of these measures was validated theoretically and empirically in four case studies. Furthermore, an analysis of validated measures in the literature was performed, showing that there is a lack of validated process, project, and requirements measures in software engineering. The studies presented in this thesis show that size measures are good estimators of requirements volatility. The important result is that size is relevant: increasing the size of a requirements document implies that the number of changes to requirements increases as well. Furthermore, subjective estimations of volatility were found to be inaccurate assessors of requirements volatility. These results suggest that practitioners should complement the subjective estimations for assessing volatility with the objective ones. Requirements engineers and project managers will benefit from the research presented in this thesis because the measures defined, proved to be predictors of volatility, can help in understanding how much requirements will change. By deploying the measures, the practitioners would be prepared for possible changes in the schedule and cost of a project, giving them the possibility of creating alternative plans, new cost estimates, and new software development schedules.