Software metrics have been a key strategy for software engineers to as
sure 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 le
vel-based metric for measuring the object-oriented software complexity
of an inheritance hierarchy. We introduce an algorithm which is prove
d to be complete and sound to decompose an inheritance hierarchy into
a number of measured elements, namely, unit repeated inheritances (URI
s). 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 complexit
y. The metric also reveals that overuse of repeated (multiple) inherit
ance will increase software complexity and thus is prone to implicit s
oftware errors. The measurement of inheritance metrics is formed based
on the proposed mechanism. (C) 1997 Elsevier Science B.V.