Classification-Tree Models of Software-Quality Over Multiple Releases

Abstract—This paper presents an empirical study that evaluates
software-quality models over several releases, to address the question,
“How long will a model yield useful predictions?” The Classification
And Regression Trees (CART) algorithm is introduced.
CART can achieve a preferred balance between the two types of
misclassification rates. This is desirable because misclassification
of fault-prone modules often has much more severe consequences
than misclassification of those that are not fault-prone.
The case-study developed 2 classification-tree models based on
4 consecutive releases of a very large legacy telecommunication
system. Forty-two software product, process, and execution metrics
were candidate predictors. Model # 1 used measurements of
the first release as the training data set; this model had 11 important
predictors. Model #2 used measurements of the second release
as the training data set; this model had 15 important predictors.
Measurements of subsequent releases were evaluation data
sets. Analysis of the models’ predictors yielded insights into various
software development practices.
Both models had accuracy that would be useful to developers.
One might suppose that software-quality models lose their value
very quickly over successive releases due to evolution of the product
and the underlying development processes. We found the models
remained useful over all the releases studied.

Index Terms—CART, classification trees, fault-prone modules,
software metrics, software reliability.