An Empirical Investigation of an Object-Oriented Software System

Author(s): Michelle Cartwright and Martin Shepperd
Venue: Software Engineering, IEEE Transactions on, vol. 26
Date: 2000


Study Type: Experience Report


This paper described an experience report of a real time C++ program using the Shlaer-Mellor method. The size of this project was 133,000 lines of code. This paper pulled several points of data from the code including things such as attributes, depth of inheritance tree, number of classes, lines of code, and defects. The paper generally focused however on how inheritance, lines of code per class, and the events per class effected the defects in their project. The number of defects did slightly increase with the increase in lines of code, but the most drastic change was once the lines of code became extremely large ( > 15000 loc). The events per class showed an almost linear increase as the number of events in a class increased so did the number of defects. The biggest point this paper showed was that classes that used inheritance were more likely to have defects than those that didn't (almost 3 times). The authors aren't claiming that this is the fault of inheritance itself or do the advocate not using inheritance, but they believe that it isn't being used properly. With the inheritance it was found that most of the defects were found at the lowest level of the inheritance tree, showing that Chidamber and Kemerer's DIT and NOC metrics would be good to use to pinpoint these classes.