Mesure de la qualité du code source - Algorithmes et outils

Distance from the main sequence

Définition

La distance from the main sequence est définie par la formule suivante :

|Abstractness +
        Instability -1|

Avec :

Interprétation

Cet indicateur est toujours compris entre 0 et 1. Il représente en fait l'équilibre qui doit résider entre le niveau d'abstraction et l'indice d'instabilité.

Plus la valeur est proche de 0, plus le design du paquetage est considéré comme bon. En effet, cette valeur va tendre vers 0 lorsque :

Une valeur au delà de 0,5 indique qu'il faut songer à refactoriser le paquetage.

Exemple d'utilisation

Reprenons l'exemple des pages précédentes 

Exemple -
        distance from the main sequence

Comme nous l'avons déjà calculé dans les slides précédentes, on a :

En appliquant la formule, on obtient une distance from the main sequence de |0+0-1| = 1 pour le paquetage stable et de |1+0-1| = 0 pour le paquetage instable.

L'indicateur considère donc le paquetage instable comme bien architecturé alors que le paquetage stable est considéré comme mal architecturé. Ces résultats, qui peuvent paraître étranges au premier abord, sont en fait parfaitement compréhensibles.

En effet, la distance from the main sequence du paquetage instable est bonne parce que l'architecture du paquetage est cohérente avec le besoin que les classes extérieures ont de lui : il n'est pas très sollicité, il n'a donc pas besoin de beaucoup d'interfaces. Son indice aurait été mauvais s'il avait eu beaucoup d'interfaces alors que personne ne dépendait de lui.

En revanche, la distance from the main sequence du paquetage stable est mauvaise parce que ce paquetage ne possède pas d'interface alors que beaucoup de classes dépendent de lui. Il faut refactoriser ce paquetage en ajoutant des interfaces pour les classes utilisées.

<<< Niveau d'abstraction

Complexité cyclomatique >>>