Specialization Index (SIX)



Redefinition and overload are undesirable because of development complexity and increased maintenance, together with the fact that they are presented at a fairly deep level in the inheritance hierarchy.  To express this fact, the NMO overloading metric is multiplied by the DIT depth of inheritance.  This is all related back to the total number of operations, for comparison purposes.


The metric provides a percentage, where the class contains at least one operation.  For a root class, the specialization indicator is zero.




For a class, the specialization indicator is obtained through the following equation:




The ... variable

represents the …


depth of inheritance


the number of operations added to the inheritance


the number of inherited operations


the number of overloaded operations



Nominal range

Between 0 % and 120 %.




It is better to carry out operation redefinition as early as possible, before going more deeply into the class' inheritance graph.  The more deeply we go into the inheritance, the more difficult it becomes to understand the relationship which exists between the current class and the inheritance's origin classes.  Thus, redefined operations in lower levels are more difficult to develop and maintain.


The upper limit of 120 % corresponds to a number of operation re-definitions, as well as nominal operation additions to a nominal inheritance, which is NMO =3, NMA =4 and DIT =4.  As for the number of non-redefined inherited operations (NMI), this is parameterized in terms of the rate with regard to the total number of inherited operations.  In our case, the minimal limit for this rate is fixed at 50 %, which corresponds to a value equal to that of NMO (since NMI+NMO=100 % of inherited operations).


This is represented as follows: