The effect of interface complexity on program error density

The paper explains how to evaluate software maintainability by considering the effects of interfaced complexities between modified and unmodified parts. When software is maintained, designers develop software, considering not only functions of modified parts but also those of unmodified parts by reading specifications or source codes. So, not only does the volume and complexity of the unmodified and modified parts, but also the interfaced complexities between, them greatly affect the occurrence of software errors. The modified part consists of several subsystems, each of which is composed of several functionally related routines. The unmodified part also consists of several routines. A routine corresponds to a function of C-coding. We experimentally show by regression and discriminant analyses that the quality of each routine tends to decrease as the reuse-ratio increases. The optimal threshold of reuse-ratio is selected by applying AIC (Akaihe Information Criterion) procedures to discriminant analysis for software quality classification. We can reasonably separate routines into two parts, one modified in which most software errors occur and the other unmodified in which few errors occur. The interfaced complexities measured by the extended cyclomatic number between each sub system of the modified part and the unmodified part greatly affect the number of errors and error density. By applying regression analysis to medium size software, we have shown that 40% of variance of error density are represented by interfaced complexities among each subsystem of the modified part and the unmodified part.

[1]  Glenford J. Myers,et al.  Composite/structured design , 1978 .

[2]  E. Burton Swanson,et al.  The dimensions of maintenance , 1976, ICSE '76.

[3]  P. Oman,et al.  Metrics for assessing a software system's maintainability , 1992, Proceedings Conference on Software Maintenance 1992.

[4]  Taghi M. Khoshgoftaar,et al.  A comparative study of predictive models for program changes during system testing and maintenance , 1993, 1993 Conference on Software Maintenance.

[5]  Ryouei Takahashi,et al.  Software quality classification model based on McCabe's complexity measure , 1997, J. Syst. Softw..

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

[7]  Richard W. Selby,et al.  Software metric classification trees help guide the maintenance of large-scale systems , 1989, Proceedings. Conference on Software Maintenance - 1989.

[8]  Rigorous definition and analysis of program complexity measures: An example using nesting , 1989, J. Syst. Softw..

[9]  H. Dieter Rombach,et al.  A Controlled Expeniment on the Impact of Software Structure on Maintainability , 1987, IEEE Transactions on Software Engineering.

[10]  Paul W. Oman,et al.  Construction and testing of polynomials predicting software maintainability , 1994, J. Syst. Softw..

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

[12]  Charles W. Butler,et al.  Design complexity measurement and testing , 1989, CACM.

[13]  S. Henry,et al.  A model based on software quality factors which predicts maintainability , 1988, Proceedings. Conference on Software Maintenance, 1988..

[14]  Taghi M. Khoshgoftaar,et al.  Alternative approaches for the use of metrics to order programs by complexity , 1994, J. Syst. Softw..

[15]  Taghi M. Khoshgoftaar,et al.  Modeling the relationship between source code complexity and maintenance difficulty , 1994, Computer.

[16]  Paul Oman,et al.  Constructing and testing software maintainability assessment models , 1993, [1993] Proceedings First International Software Metrics Symposium.

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

[18]  Ryouei Takahashi,et al.  Discriminative efficiency methodology for validating software quality classification models , 1995, Systems and Computers in Japan.

[19]  Carma McClure,et al.  The three Rs of software automation: re-engineering, repository, reusability , 1992 .

[20]  H. Akaike Factor analysis and AIC , 1987 .

[21]  Taghi M. Khoshgoftaar,et al.  Dynamic system complexity , 1993, [1993] Proceedings First International Software Metrics Symposium.

[22]  Paul W. Oman,et al.  Using metrics to evaluate software system maintainability , 1994, Computer.

[23]  Norman F. Schneidewind,et al.  Validating metrics for ensuring Space Shuttle flight software quality , 1994, Computer.