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

Indice d'instabilité

Définition

L'indice d'instabilité d'un paquetage est défini par la formule suivante :

Ce/(Ca+Ce)

Avec :

Interprétation

Cet indice est toujours compris entre 0 et 1. Un score proche de 0 signifie que le paquetage peut être considéré comme "stable", alors qu'un score proche de 1 indique un paquetage potentiellement à risque.

Cet indice va faire ressortir les paquetages qui dépendent plus des autres que les autres ne dépendent d'eux. Ces paquetages peuvent être dangereux, puisqu'une modification dans un des paquetages dont ils dépendent impacte potentiellement leur fonctionnement.

Il n'y a pas de bonne valeur pour cette indice : dans une architecture logicielle, certains paquetages doivent être instables. Cependant, lorsqu'un paquetage instable est détecté, il faut alors considérer un autre indicateur : c'est la "distance from the main sequence".

Exemple d'utilisation

Soit le diagramme de classes suivant :

Exemple -
        indice d'instabilité

Dans cette configuration simpliste, chaque classe du paquetage instable dépend d'une autre classe du paquetage stable. Nous allons calculer l'indice d'instabilité du paquetage instable.

Pour le paquetage instable, on a :

Pour cet exemple, l'indice d'instabilité vaut 1/(1+0) = 1, ce qui représente la valeur maximale de l'indice d'instabilité.

Voyons maintenant l'indice d'instabilité du paquetage stable :

Cette fois, on obtient un indice d'instabilité de 0/(0+1) = 0.

Tout ceci est cohérent : en effet, on voit bien que changer le comportement du paquetage stable pourrait gêner le bon fonctionnement du paquetage instable. L'inverse n'est pas possible.

<<< Indice de spécialisation

Niveau d'abstraction >>>