Software metrics have been a key strategy for software engineers to assure software quality and measure software complexity for many years. However, the complexity metrics of object inheritance hierarchies have not yet been carefully studied. This paper proposes an inheritance level-based metric for measuring the object-oriented software complexity of an inheritance hierarchy. We introduce an algorithm which is proved to be complete and sound to decompose an inheritance hierarchy into a number of measured elements, namely, unit repeated inheritances (URIs). We use the Z specification to model the inheritance hierarchy and describe an inheritance level technique (ILT) based on URIs as a guide to measure the inheritance hierarchy. The proposed metric shows that inheritance has a close relation to object-oriented software complexity. The metric also reveals that overuse of repeated (multiple) inheritance will increase software complexity and thus is prone to implicit software errors. The measurement of inheritance metrics is formed based on the proposed mechanism.
Journal of Information and Software Technology 39(8):515-529