This Article 
 Bibliographic References 
 Add to: 
An Empirical Investigation of an Object-Oriented Software System
August 2000 (vol. 26 no. 8)
pp. 786-796

Abstract—This paper describes an empirical investigation into an industrial object-oriented (OO) system comprised of 133,000 lines of C++. The system was a subsystem of a telecommunications product and was developed using the Shlaer-Mellor method. From this study, we found that there was little use of OO constructs such as inheritance and, therefore, polymorphism. It was also found that there was a significant difference in the defect densities between those classes that participated in inheritance structures and those that did not, with the former being approximately three times more defect-prone. We were able to construct useful prediction systems for size and number of defects based upon simple counts such as the number of states and events per class. Although these prediction systems are only likely to have local significance, there is a more general principle that software developers can consider building their own local prediction systems. Moreover, we believe this is possible, even in the absence of the suites of metrics that have been advocated by researchers into OO technology. As a consequence, measurement technology may be accessible to a wider group of potential users.

[1] A.F. Brito and R. Carapuca, “Candidate Metrics for Object-Oriented Software within a Taxonomy Framework,” J. Systems Software, vol. 26, pp. 87-96, 1994.
[2] B.F. Abreu and W.L. Melo, “Evaluating the Impact of Object-Oriented Design on Software Quality,” Proc. Third Int'l Software Metrics Symp., Mar. 1996.
[3] V.R. Basili, L. Briand, and W.L. Melo, “A Validation of Object-Oriented Design Metrics,” Technical Report No. CS-TR-3443, University of Maryland, 1995.
[4] G. Booch, Object-Oriented Analysis and Design with Applications, Addison-Wesley, Reading, Mass., 1994.
[5] S. Chidamber, D. Darcy, and C. Kemerer, “Managerial use of Metrics for Object-Oriented Software: An Exploratory Analysis,” IEEE Trans. Software Eng., vol. 24, no. 8, pp. 629-639, Aug. 1998.
[6] S.R. Chidamber and C.F. Kemerer, "A Metrics Suite for Object Oriented Design," IEEE Trans. Software Eng., vol. 20, no. 6, pp. 476-493, 1994.
[7] N. Fenton and L. Pfleeger, Software Metrics–A Rigorous and Practical Approach, second ed. Boston, PWS-Publishing, 1997.
[8] G.K. Gill and C.F. Kemerer, “Cyclomatic Complexity Density and Software Maintenance Productivity,” IEEE Trans. Software Eng., vol. 17, no. 12, Dec. 1991.
[9] R. Harrison, S.J. Counsell, and R.V. Nithi, “An Evaluation of the Mood Set of Object-Oriented Software Metrics,” IEEE Trans. Software Eng., vol. 24, pp. 491-496, June 1998.
[10] L. Hatton, "Software Failures—Follies and Fallacies," IEE Rev., Vol. 43, No. 2, 1997, pp. 49-54.
[11] L. Hatton, "Does OO Sync with How We Think?" IEEE Software, May/June 1998, pp. 46-54.
[12] B. Henderson-Sellers, Object-Oriented Metrics: Measures of Complexity. Prentice-Hall, 1996.
[13] R.A. Mata-Toledo and D.A. Gustafson, “A Factor-Analysis of Software Complexity Measures,” J. Systems Software, vol. 17, no. 3, pp. 267-273, 1992.
[14] C.L. Chang, R.A. Stachowitz, and J.B. Combs, “Validation of Nonmonotonic Knowledge-Based Systems,” Proc. IEEE Int'l Conf. Tools for Artificial Intelligence, Nov. 1990.
[15] S. Shlaer and S. Mellor, Object-Oriented Systems: Modeling the World in Data, Yourdon Press, Englewood Cliffs, N.J., 1988.
[16] S. Shlaer and S.J. Mellor, Object Lifecycles: Modeling the World in States, Prentice Hall, Englewood Cliffs, N.J., 1992.
[17] N. Wilde, P. Matthews, and R. Huitt, “Maintaining Object-Oriented Software,” IEEE Software, vol. 10, no. 1, pp. 75–80, Jan. 1993.
[18] B. Liskov, “Data Abstraction and Hierarchy,” SIGPLAN Notices, vol. 23, no. 5, pp. 17-34, 1988.
[19] A.J. Riel, Object-Oriented Design Heuristics. Addison-Wesley, 1996.

Index Terms:
Metrics, object orientation, empirical analysis.
Michelle Cartwright, Martin Shepperd, "An Empirical Investigation of an Object-Oriented Software System," IEEE Transactions on Software Engineering, vol. 26, no. 8, pp. 786-796, Aug. 2000, doi:10.1109/32.879814
Usage of this product signifies your acceptance of the Terms of Use.