Skip to main content

Object-Oriented Metrics: A Review of Theory and Practice

  • Chapter
Advances in Software Engineering

Abstract

In today’s business environment, competitive pressures demand the production of reliable software with shorter and shorter release intervals. This is especially so in commercial high-reliability domains such as telecommunications and the aerospace industry. One recipe for success is to increase process capability. There is recent compelling evidence that process capability is positively associated with productivity and quality. (Clark, 1997; El-Emam and Birk, 2000a, 2000b; Flowe and Thordahl, 1994; Goldenson and Herbsleb, 1995; Jones, 1999; Krishnan and Kellner, 1999). Quantitative management of software quality is a hallmark of high-process capability (EI-Emam et al., 1998; Software Engineering Institute, 1995).

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 59.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 79.95
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  • Abreu, F.B. e., and Carapuca, R. (1994). Object-oriented software engineering: measuring and controlling the development process. In Proceedings of the 4th International Conference on Software Quality.

    Google Scholar 

  • Abreu, F. B. e., and Melo, W. (1996). Evaluating the impact of object-oriented design on software quality. In Proceedings of the 3rd International Software Metrics Symposium, pp. 90–99.

    Google Scholar 

  • Almeida, M., Lounis, H., and Melo, W. (1998). An investigation on the use of machine learned models for estimating correction costs. In Proceedings of the 20th International Conference on Software Engineering, pp. 473–476.

    Google Scholar 

  • Basili, V., Briand, L., and Melo, W. (1996). A validation of object-oriented design metrics as quality indicators. IEEE Transactions on Software Engineering, 22 (10), 751–761.

    Article  Google Scholar 

  • Basili, V., Condon, S., El-Emam, K., Hendrick, R., and Melo, W. (1997). Characterizing and modeling the cost of rework in a library of reusable software components. In Proceedings of the 19th International Conference on Software Engineering, pp. 282–291.44 El-Emam

    Google Scholar 

  • Benlarbi, S., El-Emam, K., Goel, N., and Rai, S. (2000). Thresholds for object-oriented measures. NRC/ERB 1073. ( National Research Council of Canada).

    Google Scholar 

  • Benlarbi, S., and Melo, W. (1999). Polymorphism measures for early risk prediction. In Proceedings of the 21st International Conference on Software Engineering, pp. 334–344.

    Google Scholar 

  • Binkley, A., and Schach, S. (1998). Validation of the coupling dependency metric as a predictor of run-time failures and maintenance measures. In Proceedings of the 20th International Conference on Software Engineering, pp. 452–455.

    Google Scholar 

  • Boehm-Davis, D., Holt, R., and Schultz, A. (1992). The role of program structure in software maintenance. International Journal of Man-Machine Studies, 36, 21–63.

    Article  Google Scholar 

  • Bowen, J. (1984). Module Size: A standard or heuristic? Journal of Systems and Software, 4, 327–332.

    Article  Google Scholar 

  • Briand, L., and Wuest, J. (1999). The impact of design properties on development cost in object-orientedsSystems. ISERN-99–16. (International Software Engineering Research Network).

    Google Scholar 

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

    Article  Google Scholar 

  • Briand, L., Daly, J., and Wuest, J. (1998). A unified framework for cohesion measurement in object-oriented systems. Empirical Software Engineering: An International Journal, 3, 65–117.

    Google Scholar 

  • Briand, L., Daly, J., and Wuest, J. (1999). A unified framework for coupling measurement in object-oriented systems IEEE Transactions on Software Engineering, 25 (1), 91–121.

    Google Scholar 

  • Briand, L., Devanbu, P., and Melo, W. (1997). An investigation into coupling measures for C++. In Proceedings of the 19th International Conference on Software Engineering.

    Google Scholar 

  • Briand, L., Thomas, W., and Hetmanski, C. (1993). Modeling and managing risk early in software development. In Proceedings of the International Conference on Software Engineering, pp. 55–65.

    Google Scholar 

  • Briand, L., Wuest, J., Daly, J., and Porter, V. (2000). Exploring the relationships Between design measures and software quality in object oriented systems. Journal of Systems and Software 51, 245–273.

    Article  Google Scholar 

  • Briand, L., Wuest, J., Ikonomovski, S., and Lounis, H. (1998). A comprehensive investigation of quality factors in object-oriented designs: An Industrial case study.ISERN-98–29. (International Software Engineering Research Network).

    Google Scholar 

  • Briand, L., Arisholm, E., Counsell, S., Houdek, F., and Thevenod-Fosse, P. (1999) Empirical studies of object-oriented artifacts, methods, and processes: State of the art and future direction. Empirical Software Engineering: An International Journal, 4 (4), 387–404.

    Article  Google Scholar 

  • Burkhardt, J.M., Detienne, F., and Wiedenbeck, S. (1997). Mental representations constructed by experts and novices in object-oriented program comprehension. In Human-Computer Interaction: INTERACT’97, pp. 339–346.

    Google Scholar 

  • Cant, S., Henderson-Sellers, B., and Jeffery, R. (1994). Application of cognitive complexity metrics to object-oriented programs. Journal of Object-Oriented Programming, 7 (4), 52–63.

    Google Scholar 

  • Cant, S., Jeffery, R., and Henderson-Sellers, B. (1995). A conceptual model of cognitive complexity of elements of the programming process. Information and Software Technology, 7, 351–362.

    Article  Google Scholar 

  • Card, D., and Glass, R. (1990). Measuring software design quality. (Prentice-Hall, Englewood Cliffs, NJ).

    Google Scholar 

  • Cartwright, M. (1998). An empirical view of inheritance. Information and Software Technology, 40, 795–799.

    Article  Google Scholar 

  • Cartwright, M., and Shepperd, M. (2000). An empirical investigation of an object-oriented software system. IEEE Transactions on Software Engineering, 26 (2), 786–796.

    Article  Google Scholar 

  • Chidamber, S., Darcy, D., and Kemerer, C. (1998). Managerial use of metrics for object-oriented software: An exploratory analysis. IEEE Transactions on Software Engineering, 24 (8), 629–639.

    Article  Google Scholar 

  • Chidamber, S., and Kemerer, C. (1991). Towards a metrics suite for object-oriented design. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA’91), pp. 197211.

    Google Scholar 

  • Chidamber, S., and Kemerer, C. (1994). A metrics suite for object-oriented design. IEEE Transactions on Software Engineering, 20 (6), 476–493.

    Article  Google Scholar 

  • Chidamber, S., and Kemerer, C. (1995). Authors’ reply. IEEE Transactions on Software Engineering, 21 (3), 265.

    Google Scholar 

  • Clark, B. (1997). The effects of software process maturity on software develop- ment effort. Unpublished PhD Thesis, University of Southern California.

    Google Scholar 

  • Coallier, F., Mayrand, J., and Lague, B. (1999). Risk management in software product procurement. In K. El-Emam and N. H. Madhavji (Eds.), Elements of Software Process Assessment and Improvement. (IEEE CS Press).

    Google Scholar 

  • CodeWork. (2000). JStyle. Available: http://www.codework.com. 20th April 2000.46 El-Emam

  • Daly, J., Brooks, A., Miller, J., Roper, M., and Wood, M. (1996). Evaluating inheritance depth on the maintainability of object-oriented software. Empirical Software Engineering: An International Journal, 1(2), 109–132.

    Article  Google Scholar 

  • Daly, J., Miller, J., Brooks, A., Roper, M., and Wood, M. (1995). Issues on the object-oriented paradigm: A questionnaire survey. EFoCS-8–95, Department of Computer Science - University of Strathclyde.

    Google Scholar 

  • Daly, J., Wood, M., Brooks, A., Miller, J., and Roper, M. (1995). Structured interviews on the object-oriented paradigm. EFoCS-7–95, Department of Computer Science - University of Strathclyde.

    Google Scholar 

  • Davis, J. (1984). Chunks: A basis for complexity measurement. Information Processing and Management, 20 (1), 119–127.

    Article  Google Scholar 

  • Deligiannis, I., and Shepperd, M. (1999). A review of experimental investigations into object-oriented technology. In Proceedings of the Fifth IEEE Workshop on Empirical Studies of Software Maintenance, pp. 6–10.

    Google Scholar 

  • Devanbu,P.(2000).Gen++.available: http://seclab.cs.ucdavis.edu/—devanbu/genp/, April 20th 2000.

  • Dijk, T. v., and Kintsch, W. (1983). Strategies of discourse comprehension. (Academic Press).

    Google Scholar 

  • Dunn, R., and Ullman, R. (1979). Modularity is not a matter of size. In Proceedings of the 1979 Annual Reliability and Maintainability Symposium, pp. 342–345.

    Google Scholar 

  • Dvorak, J. (1994). Conceptual entropy and its effect on class hierarchies. IEEE Computer, 59–63.

    Google Scholar 

  • Ebert, C., and Liedtke, T. (1995). An integrated approach for criticality prediction. In Proceedings of the 6th International Symposium on Software Reliability Engineering, pp. 14–23.

    Google Scholar 

  • El-Emam, K., Benlarbi, S., Goel, N., Melo, W., Louais, H., and Rai, S. (2000). The optimal class size for object-oriented software: A replicated study NRC/ERB 1074. (National Research Council of Canada).

    Google Scholar 

  • El-Emam, K., Benlarbi, S., Goel, N., and Rai, S. (1999). A validation of object-oriented metrics. NRC/ERB 1063. ( National Research Council of Canada).

    Google Scholar 

  • EI-Emam, K., Benlarbi, S., Goel, N., and Rai, S. (2001). The confounding effect of class size on the validity of object-oriented metrics. IEEE Transactions on Software Engineering (to appear).

    Google Scholar 

  • El-Emam, K., and Birk, A. (2000a). Validating the ISO/IEC 15504 measures of software development process capability. Journal of Systems and Software, 51 (2), 119–149.

    Article  Google Scholar 

  • El-Emam, K., and Birk, A. (2000b). Validating the ISO/IEC 15504 measures of software requirements analysis process capability. IEEE Transactions on Software Engineering, 26 (8), 541–566.

    Article  Google Scholar 

  • El-Emam, K., Drouin, J-N., and Melo, W. (1998). SPICE: The theory and practice of software process improvement and capability determination. (IEEE CS Press).

    Google Scholar 

  • El-Emam, K., Melo, W., and Machado, J. (2001). The prediction of faulty classes using object-oriented design metrics. Journal of Systems and Software, 56 (1), 63–75.

    Article  Google Scholar 

  • Evanco, W. (1997). Poisson analyses of defects for small software components. Journal of Systems and Software, 38, 27–35.

    Article  Google Scholar 

  • Fenton, N. (1991). Software Metrics: A rigorous approach. (Chapman and Hall).

    Google Scholar 

  • Fenton, N., and Ohlsson, N. (2000). Quantitative analysis of faults and failures in a complex software system. IEEE Transactions on Software Engineering, 26 (8), 797–814.

    Article  Google Scholar 

  • Flowe, R., and Thordahl, J. (1994). A correlational study of the SEI’s Capability Maturity Model and software development performance in DoD contracts. Unpublished MSc Thesis, The Air Force Institute of Technology.

    Google Scholar 

  • French, V. (1999). Establishing software metrics thresholds. In Proceedings of the 9th International Workshop on Software Measurement.

    Google Scholar 

  • Furuyama, T., Arai, Y., and Iio, K. (1994). Fault generation model and mental stress effect analysis. Journal of Systems and Software, 26, 31–42.

    Article  Google Scholar 

  • Furuyama, T., Arai, Y., and Iio, K. (1997). Analysis of fault generation caused by stress during software development. Journal of Systems and Software, 38, 13–25.

    Article  Google Scholar 

  • Glasberg, D., El-Emam, K., Melo, and Madhavji, N. (2000). Validating Object-Oriented Design Metrics on a Commercial Java Application,Technical Report, NRC/ERB-1080 (National Research Council of Canada).

    Google Scholar 

  • Goldenson, D. R., and Herbsleb, J. (1995). After the appraisal: A systematic survey of process improvement, its benefits, and factors that influence success. CMU/SEI-95-TR-009, Software Engineering Institute.

    Google Scholar 

  • Harrison, R., Counsell, S., and Nithi, R. (1998). Coupling metrics for object oriented design. In Proceedings of the 5th International Symposium on Software Metrics, pp. 150–157.

    Google Scholar 

  • Harrison, R., Samaraweera, L., Dobie, M., and Lewis, P. (1996). An evaluation of code metrics for object-oriented programs. Information and Software Technology, 38, 443–450.48 El-Emam

    Google Scholar 

  • Harrison, W. (1988). Using Software Metrics to Allocate Testing Resources. Journal of Management Information Systems, 4 (4), 93–105.

    Google Scholar 

  • Hatton, L. (1997). Re-examining the Fault Density–Component Size Connection. IEEE Software, 89–97.

    Google Scholar 

  • Hatton, L. (1998). Does 00 Sync with How We Think 9 IEEE Software, 46–54.

    Google Scholar 

  • Henderson-Sellers, B. (1996). Object-Oriented Metrics: Measures of Complexity. (Prentice-Hall).

    Google Scholar 

  • Hilgard, E., Atkinson, R., and Atkinson, R. (1971). Introduction to Psychology. (Harcourt Brace Jovanovich).

    Google Scholar 

  • Hosmer, D., and Lemeshow, S. (1989). Applied Logistic Regression. (John Wiley and Sons).

    Google Scholar 

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

    Article  Google Scholar 

  • Hudepohl, J., Aud, S., Khoshgoftaar, T., Allen, E., and Mayrand, J. (1996b). Integrating metrics and models for software risk assessment. In Proceedings of the 7th International Symposium on Software Reliability Engineering pp. 93–98.

    Google Scholar 

  • ISO/IEC. (1996). Information Technology - Software Product Evaluation; Part 1: Overview. ISO/IEC DIS 14598–1. (International Organization for Standardization and the International Electrotechnical Commission).

    Google Scholar 

  • Jones, C. (1999). The economics of software process improvements. In K. ElEmam and N. H. Madhavji. Elements of Software Process Assessment and ImprovementIEEE CS Press.

    Google Scholar 

  • Jorgensen, M. (1995). Experience with the accuracy of software maintenance task effort prediction models. IEEE Transactions on Software Engineering, 21(8), 674–681.

    Google Scholar 

  • Kaaniche, M., and Kanoun, K. (1996). Reliability of a commercial telecommunications system. In Proceedings of the International Symposium on Software Reliability Engineering pp. 207–212.

    Google Scholar 

  • Khoshgoftaar, T., Allen, E., Jones, W., and Hudepohl, J. (1999). Classification tree models of software quality over multiple releases. In Proceedings of the International Symposium on Software Reliability Engineering pp. 116–125.

    Google Scholar 

  • Khoshgoftaar, T., Allen, E., Kalaichelvan, K., and Goel, N. (1996). The impact of software evolution and reuse on software quality. Empirical Software Engineering: An International Journal, 1, 31–44.

    Google Scholar 

  • Kintsch, W. (1986). Learning from text. Cognition and Instruction, 3, 87–108.

    Article  Google Scholar 

  • Kitchenham, B., and Linkman, S. (1990). Design metrics in practice. Information and Software Technology, 32 (4), 304–310.

    Article  Google Scholar 

  • Krishnan, M. S., and Kellner, M. (1999). Measuring process consistency: Implications for reducing software defects. IEEE Transactions on Software Engineering, 25 (6), 800–815.

    Article  Google Scholar 

  • Lanubile, F., and Visaggio, G. (1997). Evaluating predictive quality models derived from software measures: Lessons learned. Journal of Systems and Software, 38, 225–234.

    Google Scholar 

  • Leijter, M., Meyers, S., and Reiss, S. (1992). Support for maintaining object-oriented programs. IEEE Transactions on Software Engineering, 18 (12), 1045–1052.

    Article  Google Scholar 

  • Lewis, J., and Henry, S. (1989). A methodology for integrating maintainability using software metrics. In Proceedings of the International Conference on Software Maintenance, pp. 32–39.

    Google Scholar 

  • Li, W., and Henry, S. (1993). Object-oriented metrics that predict maintainability. Journal of Systems and Software, 23, 111–122.

    Article  Google Scholar 

  • Lorenz, M., and Kidd, J. (1994). Object-Oriented Software Metrics. ( Prentice-Hall).

    Google Scholar 

  • Lyu, M., Yu, J., Keramides, E., and Dalal, S. (1995). ARMOR: Analyzer for reducing module operational risk. In Proceedings of the 25th International Symposium on Fault-Tolerant Computing, pp. 137–142.

    Google Scholar 

  • Metameta. (2000). Metameta Metrics. Available: http://www.metamata.com, 20th April.

  • Miller, G. (1957). The magical number 7 plus or minus two: Some limits on our capacity for processing information. Psychological Review, 63, 81–97.

    Google Scholar 

  • Misic, V., and Tesic, D. (1998). Estimation of effort and complexity: An object-oriented case study. Journal of Systems and Software, 41, 133–143.

    Google Scholar 

  • Moller, K.-H., and Paulish, D. (1993). An empirical investigation of software fault distribution. In Proceedings of the First International Software Metrics Symposium, pp. 82–90.

    Google Scholar 

  • Nesi, P., and Querci, T. (1998). Effort estimation and prediction of object-oriented systems. Journal of Systems and Software, 42, 89–102.

    Article  Google Scholar 

  • Newell, A., and Simon, H. (1972). Human Problem Solving. ( Prentice-Hall).

    Google Scholar 

  • Number-Six-Software. (2000). Metrics one. available: http://www.numbersix.com/metricsone/index.htm, April 20th 2000.

  • ObjectSoft. (2000). ObjectDetail. available: http://www.obsoft.com, 20th April 2000.

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

    Google Scholar 

  • O’Leary, D. (1996). The relationship between errors and size in knowledge-based systems. International Journal of Human-Computer Studies, 44, 17 1185.

    Google Scholar 

  • Pennington, N. (1987a).Comprehension strategies in programming. In Empirical Studies of Programmers, 2nd Workshop, pp. 100–113.

    Google Scholar 

  • Pennington, N. (1987b). Stimulus structures and mental representations in expert comprehension of computer programs. Cognitive Psychology, 19, 295–341.

    Article  Google Scholar 

  • Power-Software. (2000a). Krakatau for C/C++. Available online at: http://www.power-soft.co.uk/.

    Google Scholar 

  • Power-Software. (2000b). Krakatau Java. Available online at: http://www.power-soft.co.uk/.

    Google Scholar 

  • Rosenberg, L., Stapko, R., and Gallo, A. (1999). Object-oriented metrics for reliability. Presented at the IEEE International Symposium on Software Metrics.

    Google Scholar 

  • Software Engineering Institute. (1995). The capability maturity model: Guidelines for improving the software process. (Addison Wesley).

    Google Scholar 

  • Szentes, J., and Gras, J. (1986). Some practical views of software complexity metrics and a universal measurement tool. In Proceedings of the First Australian Software Engineering Conference, pp. 83–88.

    Google Scholar 

  • Tang, M.-H., Kao, M.-H., and Chen, M.-H. (1999). An empirical study on object oriented metrics. In Proceedings of the Sixth International Software Metrics Symposium, pp. 242–249.

    Google Scholar 

  • Tracz, W. (1979). Computer programming and the human thought process. Software–Practice and Experience, 9, 127–137.

    Article  MATH  Google Scholar 

  • Unger, B., and Prechelt, L. (1998). The impact of inheritance depth on maintenance tasks - detailed description and evaluation of two experiment replications 19/1998. (Fakultat fur Informatik - Universitaet Karlsruhe).

    Google Scholar 

  • Wiedenbeck, S., Ramalingam, V., Sarasamma, S., and Corritore, C. (1999). A comparison of the comprehension of object-oriented and procedural programs by novice programmers. Interacting with Computers, 11 (3), 255–282.

    Article  Google Scholar 

  • Wilde, N., Matthews, P., and Huitt, R. (1993). Maintaining object-oriented software. IEEE Software, 75–80.

    Google Scholar 

  • Woodfield, S., Shen, V., and Dunsmore, H. (1981). A study of several metrics for programming effort. Journal of Systems and Software, 2, 97–103.

    Article  Google Scholar 

Download references

Authors

Editor information

Hakan Erdogmus Oryal Tanir

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer Science+Business Media New York

About this chapter

Cite this chapter

El-Emam, K. (2002). Object-Oriented Metrics: A Review of Theory and Practice. In: Erdogmus, H., Tanir, O. (eds) Advances in Software Engineering. Springer, New York, NY. https://doi.org/10.1007/978-0-387-21599-0_2

Download citation

  • DOI: https://doi.org/10.1007/978-0-387-21599-0_2

  • Publisher Name: Springer, New York, NY

  • Print ISBN: 978-1-4419-2878-8

  • Online ISBN: 978-0-387-21599-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics