Predicting Fault-Prone Software Modules in Embedded Systems with Classification Trees

  • Authors:
  • Taghi M. Khoshgoftaar;Edward B. Allen

  • Affiliations:
  • -;-

  • Venue:
  • HASE '99 The 4th IEEE International Symposium on High-Assurance Systems Engineering
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

Embedded-computer systems have become essential elements of the modern world. For example, telecommunications systems are the backbone of society's information infrastructure. Embedded systems must have highly reliable software. The consequences of failures may be severe; down-time may not be tolerable; and repairs in remote locations are often expensive. Moreover, today's fast-moving technology marketplace mandates that embedded systems evolve, resulting in multiple software releases embedded in multiple products.Software quality models can be valuable tools for software engineering of embedded systems, because some software-enhancement techniques are so expensive or time-consuming that it is not practical to apply them to all modules. Targeting such enhancement techniques is an effective way to reduce the likelihood of faults discovered in the field. Research has shown software metrics to be useful predictors of software faults. A software quality model is developed using measurements and fault data from a past release. The calibrated model is then applied to modules currently under development. Such models yield predictions on a module-by-module basis.This paper examines the Classification And Regression Trees ( cart ) algorithm for predicting which software modules have high risk of faults to be discovered during operations. Cart is attractive because it emphasizes pruning to achieve robust models. This paper presents details on the cart algorithm in the context of software engineering of embedded systems. We illustrate this approach with a case study of four consecutive releases of software embedded in a large telecommunications system. The level of accuracy achieved in the case study would be useful to developers of an embedded system. The case study indicated that this model would continue to be useful over several releases as the system evolves.