Abstract
In this paper, we investigate how to incorporate program complexity measures with a software quality model. We collect software complexity metrics and fault counts from each build during the testing phase of a large commercial software system. Though the data are limited in quantity, we are able to predict the number of faults in the next build. The technique we used is called times series analysis and forecasting. The methodology assumes that future predictions are based on the history of past observations. We will show that the combined complexity quality model is an improvement over the simpler quality only model. Finally, we explore how the testing process used in this development may be improved by using these predictions and suggest areas for future research.
Similar content being viewed by others
References
Boehm, B.W. (1981). Software Engineering Economics (Prentice-Hall, Englewood Cliffs, NJ).
Box, G.E.P. and Jenkins, G.M. (1970) Time Series Analysis: Forecasting and Control (Holden-Day, San Francisco).
Cherf, G.S. (1992). An investigation of the maintenance and support characteristics of commercial software. Software Quality Journal, 1, 147–158.
Fenton, N.E. (1992) Software Metrics: a rigorous approach (Chapman & Hall, London).
Halstead, M.H. (1977) Elements of Software Science (Elsevier North-Holland, New York).
Harrison, W. and Cook, C. (1990) Insights on improving the maintenance process through software measurement, in Proceedings of IEEE Conference on Software Maintenance, San Diego, CA, November, pp. 37–46.
Henry, S. and Wake, S. (1991) Predicting maintainability with software quality metrics. Journal of Software Maintenance: Research and Practice, 3, 129–143.
Humphrey, W.S. and Singpurwalla, N.D. (1991) Predicting (individual) software productivity. IEEE Transactions on Software Engineering, 17, 196–207.
Kafura, D. and Henry, S. (1981) Software quality based on interconnectivity. Journal of Systems and Software, 2, 121–131.
Khoshgoftaar, T.M. and Munson, J.C. (1990) Predicting software development errors using software complexity metrics. IEEE Journal of Selected Areas in Communications, 8, 253–261.
Khoshgoftaar, T.M. and Szabo, R.M. (1994) Improving code churn predictions during the system test and maintenance phases, in proceedings of IEEE International Conference on Software Maintenance, Victoria, British Columbia, Canada, pp. 58–67.
Khoshgoftaar, T.M., Szabo, R.M. and Woodcock, T.G. (1994) An empirical study of program quality during testing and maintenance. Software Quality Journal, 3(3), 137–151.
McCabe, T.J. (1976) A complexity metric. IEEE Transactions on Software Engineering, 2, 308–320.
Munson, J.C. and Khoshgoftaar, T.M. (1990) Applications of a relative complexity metric for software project management. Journal of Systems and Software, 12, 283–291.
Munson, J.C. and Khoshgoftaar, T.M. (1991) The use of software complexity metrics in software reliability modeling, in 1991 IEEE International Symposium on Software Reliability Engineering, Austin, TX, May, pp. 2–11.
Munson, J.C. and Khoshgoftaar, T.M. (1992) The defection of fault-prone programs. IEEE Transactions on Software Engineering, 18, 423–433.
Musa, J.D. (1993) Operational profiles in software-reliability engineering. IEEE Software, 10(2) 14–32.
Musa, J.D., Iannino, A. and Okumoto, K. (1987) Software Reliability Measurement, Prediction, Application (McGraw-Hill, New York).
Nakagawa, Y. and Hanata, S. (1989) An error complexity model for software reliability measurement, in Proceedings of the 11th International Conference on Software Engineering, Pittsburgh, PA, May, pp. 230–235.
SAS Institute Inc. (1992) SAS/ETS Software: Application Guide 1, first edition, January.
Schneidewind, N.F. (1992) Methodology for validating software metrics. IEEE Transactions on Software Engineering, 18, 410–421.
Schneidewind, N.F. (1993) Software reliability model with optimal selection of failure data. IEEE Transactions on Software Engineering, 19, 1095–1104.
Shen, V.Y., Yu, T., Thebaut, S.M. and Paulsen, L.R. (1985) Identifying error-prone software-an empirical study. IEEE Transactions on Software Engineering, SE 11, 317–324.
Singpurwalla, N.D. and Soyer, R. (1985) Assessing (software) reliability growth using a random coefficient autoregressive process and its ramifications. IEEE Transactions on Software Engineering, SE 11, 1456–1464.
Woodward, M.R., Hennell, M.A. and Hedley, D. (1979) A measure of control flow complexity in program text. IEEE Transactions on Software Engineering, SE 5, 45–50.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Khoshgoftaar, T.M., Szabo, R.M. Investigating ARIMA models of software system quality. Software Qual J 4, 33–48 (1995). https://doi.org/10.1007/BF00404648
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00404648