Abstract
In this paper, we analyze a dataset freely provided through the PROMISE repository containing data on object-oriented (OO) class features and associated faults. We used a set of metrics provided with the dataset, based loosely on the Chidamber & Kemerer (C&K) metrics for our analysis; in particular, we compared and contrasted the characteristics of classes containing faults with those containing zero faults as a mechanism for establishing their causes and a hypothesis-based approach was adopted to this end. Several key results emerged from our analysis. Firstly, coupling seems to be a key factor influencing fault-proneness; the likelihood of at least one fault is greater when there is relatively high coupling. Secondly, class size ‘does matter’ - the more methods in a class, the more faults the class tends to contain. Finally, cross-correlation of the five metrics revealed an interesting trait related to inheritance and a previous study into C++ friends.
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
D. Advani, Y. Hassoun and S. Counsell. Extracting Refactoring Trends from Open-source Software and a Possible Solution to the ‘Related Refactoring’ Conundrum. Proc. of ACM Symp. on Applied Computing, Dijon, France, April 2006.
V. Basili, L. Briand and W. Melo. A validation of object-oriented design metrics as quality indicators. IEEE Trans. on Software Eng., 22(10), pages 751-761. 1996.
V. Basili and B. Perricone, Software errors and complexity: an empirical investigation, Communications of the ACM, 27(1): 42-52, 1984
L. Briand, J. Daly and J. Wust. A unified framework for coupling measurement in object-oriented systems. IEEE Trans. on Software Eng.. Volume 25(1): 91-121, 1999.
L. Briand, P. Devanbu and W. Melo. An investigation into coupling measures for C++. In Proceedings of the 19th International Conference on Software Engineering (ICSE 97), Boston, USA. Pages 412-421, 1997.
L. Briand, J. Wust, J. Daly and V. Porter, Exploring the relationships between design measures and software quality in object-oriented systems. The Journal of Systems and Software 2000, volume 51, pages 245-273.
S. R. Chidamber and C.F. Kemerer. A metrics suite for object-oriented design. IEEE Transactions on Software Engineering, 20(6): 467-493, 1994.
S. Counsell, E. Mendes and S. Swift, Comprehension of Object-oriented Software Cohesion: the empirical quagmire, Proceedings of the 10th International Workshop on Program Comprehension (IWPC 2002). Paris, France, pages 33-42, 2002.
S. Counsell, J. Crampton and S. Swift. The Interpretation and Utility of Three Object-Oriented Cohesion Metrics. ACM Transactions on Software Engineering and Methodology, 2006.
S. Counsell, P. Newson: Use of friends in C++ software: an empirical investigation. Journal of Systems and Software 53(1): 15-21 (2000).
J. Daly, A. Brooks, J. Miller, M. Roper, M Wood, Evaluating Inheritance Depth on the Maintainability of Object-Oriented Software, Empirical Software Engineering, 1(2), pp109-132, 1996.
K. El Emam, S. Benlarbi, N. Goel, W. Melo, H. Lounis and S Rai, The Optimal Class Size for Object-Oriented Software, IEEE Transactions on Software Engineering, 28(5), pp 494-509, 2002.
K. El Emam, S. Benlarbi, N. Goel and S. Rai, The Confounding Effect of Class Size on the Validity of Object-Oriented Metrics, IEEE Transactions on Software Engineering, 27(7), 630-650, 2001.
N. Fenton and S. Pfleeger, Software Metrics: A Rigorous and Practical Approach, 2nd ed. Boston, Mass.: PWS, 1997.
R. Harrison, S. Counsell and R. Nithi. Experimental assessment of the effect of inheritance on the maintainability of object-oriented systems, Journal of Systems and Software, 52, pages 173—179, 2000.
A. G. Koru and H. Liu, An Investigation of the Effect of Module Size on Defect Prediction Using Static Measures, PROMISE - Predictive Models in Software Engineering Workshop, ICSE 2005, Saint Louis, US.
K-H. Moller and D. Paulish. An Empirical Investigation of Software Fault Distribution. Proc. IEEEFirst International Software Metrics Symposium, Baltimore, Md., May 21–22, 1993, pp.82–90.
The KC1 dataset; The PROMISE Repository of Software Engineering Databases. School of Information Technology and Engineering, University of Ottawa, Canada: http://promise.site.uottawa.ca/SERepository
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer Science+Business Media B.V.
About this paper
Cite this paper
Counsell, S. (2008). An Analysis of Faulty and Fault-Free C++ Classes Using an Object-Oriented Metrics Suite. In: Iskander, M. (eds) Innovative Techniques in Instruction Technology, E-learning, E-assessment, and Education. Springer, Dordrecht. https://doi.org/10.1007/978-1-4020-8739-4_92
Download citation
DOI: https://doi.org/10.1007/978-1-4020-8739-4_92
Publisher Name: Springer, Dordrecht
Print ISBN: 978-1-4020-8738-7
Online ISBN: 978-1-4020-8739-4
eBook Packages: Computer ScienceComputer Science (R0)