Specialization Index (SIX)

 

Overview

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.

 

 

Computation

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

 

 

 

The ... variable

represents the …

DIT

depth of inheritance

NMA

the number of operations added to the inheritance

NMI

the number of inherited operations

NMO

the number of overloaded operations

 

 

Nominal range

Between 0 % and 120 %.

 

 

Analysis

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: