Skip to main content
Log in

Ordering Fault-Prone Software Modules

  • Published:
Software Quality Journal Aims and scope Submit manuscript

Abstract

Software developers apply various techniques early in development to improve software reliability, such as extra reviews, additional testing, and strategic assignment of personnel. Due to limited resources and time, it is often not practical to enhance the reliability of all modules. Our goal is to target reliability enhancement activities to those modules that would otherwise have problems later. Prior research has shown that a software quality model based on software product and process metrics can predict which modules are likely to have faults.

A module-order model is a quantitative software quality model that is used to predict the rank-order of modules according to a quality factor, such as the number of faults. The contribution of this paper is definition of module-order models and a method for their evaluation and use. Two empirical case studies of full-scale industrial software systems provide empirical evidence of the usefulness of module-order models for targeting reliability enhancement.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Briand, L.C., Basili, V.R., and Hetmanski, C.J. 1993. Developing interpretable models with optimized set reduction for identifying high-risk software components, IEEE Transactions on Software Engineering 19(11): 1028–1044.

    Google Scholar 

  • Briand, L.C., El Emam, K., and Morasca, S. 1996. On the application of measurement theory in software engineering, Empirical Software Engineering: An International Journal 1(1): 61–88. See Briand et al. (1997) and Zuse (1997).

    Google Scholar 

  • Briand, L.C., El Emam, K., and Morasca, S. 1997. Reply to Comments to the Paper: Briand, El Emam, Morasca: On the application of measurement theory in software engineering, Empirical Software Engineering: An International Journal 2(3): 317–322. See Briand et al. (1996) and Zuse (1997).

    Google Scholar 

  • Dillon, W.R. and Goldstein, M. 1984. Multivariate Analysis: Methods and Applications, John Wiley & Sons, New York.

    Google Scholar 

  • Ebert, C. 1996. Classification techniques for metric-based software development, Software Quality Journal 5(4): 255–272.

    Google Scholar 

  • Fenton, N.E. and Pfleeger, S.L. 1997. Software Metrics: A Rigorous and Practical Approach, 2nd edition, PWS Publishing, London.

    Google Scholar 

  • Gokhale, S.S. and Lyu, M.R. 1997. Regression tree modeling for the prediction of software quality, In H. Pham (ed.), Proceedings of the Third ISSAT International Conference on Reliability and Quality in Design, Anaheim, California, pp. 31–36.

  • Hudepohl, J.P., Aud, S.J., Khoshgoftaar, T.M., Allen, E.B., and Mayrand, J. 1996. EMERALD: Software metrics and models on the desktop, IEEE Software 13(5): 56–60.

    Google Scholar 

  • Khoshgoftaar, T.M. and Allen, E.B. 1997. The impact of costs of misclassification on software quality modeling, In Proceedings of the Fourth International Software Metrics Symposium, Albuquerque, New Mexico, pp. 54–62.

  • Khoshgoftaar, T.M. and Allen, E.B. 1998a. An information theoretic approach to predicting software faults, International Journal of Reliability, Quality and Safety Engineering 5(3): 227–248.

    Google Scholar 

  • Khoshgoftaar, T.M. and Allen, E.B. 1998b. Predicting the order of fault-prone modules in legacy software, In Proceedings of the Ninth International Symposium on Software Reliability Engineering, Paderborn, Germany, pp. 344–353.

  • Khoshgoftaar, T.M., Allen, E.B., Goel, N., Nandi, A., and McMullan, J. 1996a. Detection of software modules with high debug code churn in a very large legacy system, In Proceedings of the Seventh International Symposium on Software Reliability Engineering, White Plains, New York, pp. 364–371.

    Google Scholar 

  • Khoshgoftaar, T.M., Allen, E.B., Halstead, R., Trio, G.P., and Flass, R. 1998a. Process measures for predicting software quality, Computer 31(4): 66–72.

    Google Scholar 

  • Khoshgoftaar, T.M., Allen, E.B., Kalaichelvan, K.S., and Goel, N. 1996b. Early quality prediction: A case study in telecommunications, IEEE Software 13(1): 65–71.

    Google Scholar 

  • Khoshgoftaar, T.M., Bhattacharyya, B.B., and Richardson, G.D. 1992a. Predicting software errors during development using nonlinear regression models: A comparative study, IEEE Transactions on Reliability 41(3): 390–395.

    Google Scholar 

  • Khoshgoftaar, T.M., Evett, M.P., Allen, E.B., and Chien, P.-D. 1998b. An application of genetic programming to software quality prediction, In W. Pedrycz and J.F. Peters (eds.), Computational Intelligence in Software Engineering, Vol. 16 of Advances in Fuzzy Systems-Applications and Theory, World Scientific, Singapore, pp. 176–195.

    Google Scholar 

  • Khoshgoftaar, T.M. and Munson, J.C. 1990. Predicting software development errors using software complexity metrics, IEEE Journal on Selected Areas in Communications 8(2): 253–261.

    Google Scholar 

  • Khoshgoftaar, T.M., Munson, J.C., Bhattacharya, B.B., and Richardson, G.D. 1992b. Predictive modeling techniques of software quality from software measures, IEEE Transactions on Software Engineering 18(11): 979–987.

    Google Scholar 

  • Khoshgoftaar, T.M., Munson, J.C., and Lanning, D.L. 1994. Alternative approaches for the use of metrics to order programs by complexity, Journal of Systems and Software 24(3): 211–221.

    Google Scholar 

  • Khoshgoftaar, T.M., Pandya, A.S., and More, H.B., 1992c. A neural network approach for predicting software development faults, In Proceedings of the Third International Symposium on Software Reliability Engineering, Research Triangle Park, North Carolina, pp. 83–89.

  • Lanning, D.L. and Khoshgoftaar, T.M. 1995. The impact of software enhancement on software reliability, IEEE Transactions on Reliability 44(4): 677–682.

    Google Scholar 

  • Leake, D.B. 1996. CBR in context: The present and future, In D.B. Leake (ed.), Case-Based Reasoning: Experiences, Lessons, and Future Directions, MIT Press, Cambridge, MA, Chapt. 1, pp. 3–30.

    Google Scholar 

  • Lyu, M.R. 1996. Introduction, In M.R. Lyu (ed.), Handbook of Software Reliability Engineering, McGraw-Hill, New York, Chapt. 1, pp. 3–25.

    Google Scholar 

  • Lyu, M.R., Yu, J.S., Keramidas, E., and Dalal, S.R. 1995. ARMOR: Analyzer for reducing module operational risk, In Proceedings of the Twenty-Fifth International Symposium on Fault-Tolerant Computing, Pasadena, CA, pp. 137–142.

  • McCabe, T.J. and Butler, C.W. 1989. Design complexity measurement and testing, Communications of the ACM 32(12): 1415–1425.

    Google Scholar 

  • Munson, J.C. and Khoshgoftaar, T.M. 1992. The detection of fault-prone programs, IEEE Transactions on Software Engineering 18(5): 423–433.

    Google Scholar 

  • Myers, R.H. 1990. Classical and Modern Regression with Applications, Duxbury Series, PWS-Kent Publishing, Boston.

    Google Scholar 

  • Nikora, A.P., Schneidewind, N.F., Munson, J.C., and Hall, G.A. 1997. IV&V issues in achieving high reliability and safety in critical control system software, In H. Pham (ed.), Proceedings of the Third ISSAT International Conference on Reliability and Quality in Design, Anaheim, CA, pp. 25–30.

  • Ohlsson, N. and Alberg, H. 1996. Predicting fault-prone software modules in telephone switches, IEEE Transactions on Software Engineering 22(12): 886–894.

    Google Scholar 

  • Ohlsson, N., Helander, M., and Wohlin, C. 1996. Quality improvement by identification of fault-prone modules using software design metrics, In Proceedings of the Sixth International Conference on Software Quality, Ottawa, Ontario, Canada, pp. 2–13. Sponsored by ASQC.

  • Pfleeger, S.L. 1995. Experimental design and analysis in software engineering, Annals of Software Engineering 1: 219–253.

    Google Scholar 

  • Pfleeger, S.L. 1997. Assessing measurement, IEEE Software 14(2): 25–26. Editor's introduction to special issue.

    Google Scholar 

  • Schneidewind, N.F. 1992. Methodology for validating software metrics, IEEE Transactions on Software Engineering 18(5): 410–422.

    Google Scholar 

  • Schneidewind, N.F. 1995. Software metrics validation: Space shuttle flight software example, Annals of Software Engineering 1: 287–309.

    Google Scholar 

  • Seber, G.A.F. 1984. Multivariate Observations, John Wiley & Sons, New York.

    Google Scholar 

  • Votta, L.G. and Porter, A.A. 1995. Experimental software engineering: A report on the state of the art, In Proceedings of the Seventeenth International Conference on Software Engineering, Seattle, WA, pp. 277–279.

  • Vouk, M.A. and Tai, K.C. 1993. Some issues in multi-phase software reliability modeling, In Proceedings of the CASCON, Toronto, Ontario, Canada, pp. 513–523.

  • Zuse, H. 1997. Comments to the Paper: Briand, Emam, Morasca: On the application of measurement theory in software engineering, Empirical Software Engineering: An International Journal 2(3): 313–316. See Briand et al. (1996) and Briand et al. (1997).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Khoshgoftaar, T.M., Allen, E.B. Ordering Fault-Prone Software Modules. Software Quality Journal 11, 19–37 (2003). https://doi.org/10.1023/A:1023632027907

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1023632027907

Navigation