Building Software Quality Classification Trees: Approach, Experimentation, Evaluation

  • Authors:
  • Ryouei Takahashi;Yoichi Muraoka;Yukihiro Nakamura

  • Affiliations:
  • -;-;-

  • Venue:
  • ISSRE '97 Proceedings of the Eighth International Symposium on Software Reliability Engineering
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

A methodology for constructing an optimum software quality classification tree using software complexity metrics to discriminate between high-quality modules and low-quality modules is proposed. The process of tree generation is an application of the AIC (Akaike Information Criterion) procedures to the binomial distribution. AIC procedures are based on maximum likelihood estimation and the least number of complexity metrics. It is an improvement of the software quality classification tree generation method proposed by Porter and Selby from the viewpoint the complexity metrics are minimized. The problems of their method are that the software quality prediction model is unstable because it reflects observational errors in real data too much and there is no objective criterion for determining whether the discrimination is appropriate or not at a deep nesting level of the classification tree when the number of sample modules gets smaller. To solve these problems a new metric is introduced and its validity is theoretically and experimentally verified. In our examples, complexity metrics written in C language such as lines of source code, Halstead's software science, McCabe's cyclomatic number, Henry and Kafura's fan-in/out, Howatt and Baker's s cope number and reuse-ratio, are investigated. Our experiments with a medium-sized piece of software (85 thousand lines of source code: 562 samples) show that the software quality classification tree generated by our new metric identifies the target class of the observed modules more efficiently using the minimum number of complexity metrics without any decrease of the correct classification ratio (76%-72%) than the conventional classification tree.