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).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
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.
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.
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.
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.
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
Benlarbi, S., El-Emam, K., Goel, N., and Rai, S. (2000). Thresholds for object-oriented measures. NRC/ERB 1073. ( National Research Council of Canada).
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.
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.
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.
Bowen, J. (1984). Module Size: A standard or heuristic? Journal of Systems and Software, 4, 327–332.
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).
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
Card, D., and Glass, R. (1990). Measuring software design quality. (Prentice-Hall, Englewood Cliffs, NJ).
Cartwright, M. (1998). An empirical view of inheritance. Information and Software Technology, 40, 795–799.
Cartwright, M., and Shepperd, M. (2000). An empirical investigation of an object-oriented software system. IEEE Transactions on Software Engineering, 26 (2), 786–796.
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.
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.
Chidamber, S., and Kemerer, C. (1994). A metrics suite for object-oriented design. IEEE Transactions on Software Engineering, 20 (6), 476–493.
Chidamber, S., and Kemerer, C. (1995). Authors’ reply. IEEE Transactions on Software Engineering, 21 (3), 265.
Clark, B. (1997). The effects of software process maturity on software develop- ment effort. Unpublished PhD Thesis, University of Southern California.
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).
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.
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.
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.
Davis, J. (1984). Chunks: A basis for complexity measurement. Information Processing and Management, 20 (1), 119–127.
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.
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).
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.
Dvorak, J. (1994). Conceptual entropy and its effect on class hierarchies. IEEE Computer, 59–63.
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.
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).
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).
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).
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.
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.
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).
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.
Evanco, W. (1997). Poisson analyses of defects for small software components. Journal of Systems and Software, 38, 27–35.
Fenton, N. (1991). Software Metrics: A rigorous approach. (Chapman and Hall).
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.
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.
French, V. (1999). Establishing software metrics thresholds. In Proceedings of the 9th International Workshop on Software Measurement.
Furuyama, T., Arai, Y., and Iio, K. (1994). Fault generation model and mental stress effect analysis. Journal of Systems and Software, 26, 31–42.
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.
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).
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.
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.
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
Harrison, W. (1988). Using Software Metrics to Allocate Testing Resources. Journal of Management Information Systems, 4 (4), 93–105.
Hatton, L. (1997). Re-examining the Fault Density–Component Size Connection. IEEE Software, 89–97.
Hatton, L. (1998). Does 00 Sync with How We Think 9 IEEE Software, 46–54.
Henderson-Sellers, B. (1996). Object-Oriented Metrics: Measures of Complexity. (Prentice-Hall).
Hilgard, E., Atkinson, R., and Atkinson, R. (1971). Introduction to Psychology. (Harcourt Brace Jovanovich).
Hosmer, D., and Lemeshow, S. (1989). Applied Logistic Regression. (John Wiley and Sons).
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.
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.
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).
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.
Jorgensen, M. (1995). Experience with the accuracy of software maintenance task effort prediction models. IEEE Transactions on Software Engineering, 21(8), 674–681.
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.
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.
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.
Kintsch, W. (1986). Learning from text. Cognition and Instruction, 3, 87–108.
Kitchenham, B., and Linkman, S. (1990). Design metrics in practice. Information and Software Technology, 32 (4), 304–310.
Krishnan, M. S., and Kellner, M. (1999). Measuring process consistency: Implications for reducing software defects. IEEE Transactions on Software Engineering, 25 (6), 800–815.
Lanubile, F., and Visaggio, G. (1997). Evaluating predictive quality models derived from software measures: Lessons learned. Journal of Systems and Software, 38, 225–234.
Leijter, M., Meyers, S., and Reiss, S. (1992). Support for maintaining object-oriented programs. IEEE Transactions on Software Engineering, 18 (12), 1045–1052.
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.
Li, W., and Henry, S. (1993). Object-oriented metrics that predict maintainability. Journal of Systems and Software, 23, 111–122.
Lorenz, M., and Kidd, J. (1994). Object-Oriented Software Metrics. ( Prentice-Hall).
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.
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.
Misic, V., and Tesic, D. (1998). Estimation of effort and complexity: An object-oriented case study. Journal of Systems and Software, 41, 133–143.
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.
Nesi, P., and Querci, T. (1998). Effort estimation and prediction of object-oriented systems. Journal of Systems and Software, 42, 89–102.
Newell, A., and Simon, H. (1972). Human Problem Solving. ( Prentice-Hall).
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
O’Leary, D. (1996). The relationship between errors and size in knowledge-based systems. International Journal of Human-Computer Studies, 44, 17 1185.
Pennington, N. (1987a).Comprehension strategies in programming. In Empirical Studies of Programmers, 2nd Workshop, pp. 100–113.
Pennington, N. (1987b). Stimulus structures and mental representations in expert comprehension of computer programs. Cognitive Psychology, 19, 295–341.
Power-Software. (2000a). Krakatau for C/C++. Available online at: http://www.power-soft.co.uk/.
Power-Software. (2000b). Krakatau Java. Available online at: http://www.power-soft.co.uk/.
Rosenberg, L., Stapko, R., and Gallo, A. (1999). Object-oriented metrics for reliability. Presented at the IEEE International Symposium on Software Metrics.
Software Engineering Institute. (1995). The capability maturity model: Guidelines for improving the software process. (Addison Wesley).
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.
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.
Tracz, W. (1979). Computer programming and the human thought process. Software–Practice and Experience, 9, 127–137.
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).
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.
Wilde, N., Matthews, P., and Huitt, R. (1993). Maintaining object-oriented software. IEEE Software, 75–80.
Woodfield, S., Shen, V., and Dunsmore, H. (1981). A study of several metrics for programming effort. Journal of Systems and Software, 2, 97–103.
Editor information
Rights 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