Poisson Models for Subprogram Defect Analyses

For Ada systems, the hierarchy of subprograms compose a layered virtual machine within an object-based framework. Poisson analyses are proposed for the identification of the determinants of defects in these subprograms. Software complexity (measured during design or implementation) as well as characteristics of the software development environment influence the number of defects identified during the testing phase. The Poisson models are calibrated on the basis of measures extracted from the code of Ada projects and data from software change reports. One of the models is used to estimate defects at the subprogram and project levels for the calibration data, and these estimates are then compared to the actual defects. To demonstrate cross-language applicability, defect predictions are made at the subsystem level for a project coded in the C programming language and compared to the actual subsystem defects. Notable results from the analysis are that extensively modified reused subprograms (>25% changed) have substantially more defects than new code of otherwise comparable characteristics and that software development environment volatility (as measured by non-defect changes per thousand source lines of code) is a strong determinant of subprogram defects.

[1]  Taghi M. Khoshgoftaar,et al.  The Detection of Fault-Prone Programs , 1992, IEEE Trans. Software Eng..

[2]  David N. Card,et al.  Measuring software design complexity , 1988, J. Syst. Softw..

[3]  Vianney Côté,et al.  Software metrics: An overview of recent results , 1988, J. Syst. Softw..

[4]  William M. Evanco,et al.  A model-based framework for the integration of software metrics , 1994, J. Syst. Softw..

[5]  W. W. Agresti,et al.  Early experiences building a software quality prediction model , 1990 .

[6]  Amrit L. Goel,et al.  Time-Dependent Error-Detection Rate Model for Software Reliability and Other Performance Measures , 1979, IEEE Transactions on Reliability.

[7]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[8]  Ken Shumate,et al.  Designing large real-time systems with Ada , 1988, CACM.

[9]  William M. Evanco,et al.  Projecting Software Defects From Analyzing Ada Designs , 1992, IEEE Trans. Software Eng..

[10]  Victor R. Basili,et al.  The TAME Project: Towards Improvement-Oriented Software Environments , 1988, IEEE Trans. Software Eng..

[11]  John D. Musa,et al.  Operational profiles in software-reliability engineering , 1993, IEEE Software.

[12]  Adam A. Porter,et al.  Learning from Examples: Generation and Evaluation of Decision Trees for Software Resource Analysis , 1988, IEEE Trans. Software Eng..

[13]  Dennis G. Kafura,et al.  The Use of Software Complexity Metrics in Software Maintenance , 1987, IEEE Transactions on Software Engineering.

[14]  THOMAS J. WALSH,et al.  A software reliability study using a complexity measure , 1979, 1979 International Workshop on Managing Requirements Knowledge (MARK).

[15]  Sallie M. Henry,et al.  Software Structure Metrics Based on Information Flow , 1981, IEEE Transactions on Software Engineering.

[16]  Horst Zuse,et al.  Software complexity: Measures and methods , 1990 .