Size, Inheritance, Change and Fault-proneness in C# software

By: Matt Gatrell, Steve Counsell


This paper documents a study of change in commercial, proprietary C# software and attempts to determine whether a relationship exists between class changes and faults and the design context of a class, namely its size and inheritance relationships. Results showed a strong positive correlation between the size of a class and change-proneness but not for all the class features studied. Classes within a specific range of a) inheritance depth and b) number of children were found to be relatively more prone to change. For the fault data and for the same class features, similar results were found. The most striking result to emerge however was the existence of an inheritance depth 'interval' between which change (and fault-proneness) were at their highest. Below and above that interval, both features were less prominent. The results thus add weight to the claims of other previous studies which suggest that there is an optimal level of inheritance, beyond which maintenance may become problematic from both a change and fault perspective.


C#, Class changes, Faults, Inheritance

Cite as:

Matt Gatrell, Steve Counsell, “Size, Inheritance, Change and Fault-proneness in C# software”, Journal of Object Technology, Volume 9, no. 5 (September 2010), pp. 29-54, doi:10.5381/jot.2010.9.5.a2.

PDF | DOI | BiBTeX | Tweet this | Post to CiteULike | Share on LinkedIn