Vous êtes sur la page 1sur 5

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE

LA RECHERCHE SCIENTIFIQUE
UNIVERSITE ABDELHAMID IBN BADIS - MOSTAGANEM

Faculté des Sciences Exactes et de l’Informatique


Département de Mathématiques et d’Informatique

RAPPORT
Master 1 : Réseaux et systèmes
Matière : Gestion de projet

THEME :
Métriques Logicielles

Etudiant : « Larbi Abdelillah Islam »

Année Universitaire 2020/2021


Les métriques de conception orientées objet :

- Les métriques de conception permettent d’évaluer la structure, les relations


et les fonctionnalités des composants d’un système logiciel, La majorité des
métriques proposées sont destinées au paradigme procédural, elles ne
s’appliquent pas au paradigme objet, Des métriques spécifique orientée objets
ont été proposées ces dernières années, Les plus connues sont celles de
Chidamber et Kemere : Weighted methods per class (WMC), Depth of the
inheritance tree (DIT), Number of children (NOC), Coupling between object
classes (CBO), Response for a class (RFC), Lack of cohesion in methods (LCOM).

Depth of Inheritance Tree (DIT):

- Definition:

- C’est le chemin le plus long de la classe à la racine de l’arbre d’héritage, En


cas d’héritage multiple, DIT vaudra la profondeur maximale depuis la classe
racine jusqu’à la classe mesurée. Plus une classe est profonde, plus la prédiction
de son comportement est compliquée ; plus-elle susceptible de contenir des
erreurs dû à l’interaction entre les caractéristiques hérités et les nouvelles
caractéristiques et plus il est probable qu’elle réutilise des méthodes héritées et
moins elle est générique.
Le DIT est utilisé dans le calcule de L'indice de spécialisation d'une classe
est défini par la formule suivante :

Avec :

NORM : Number of Overriden Methods, le nombre de méthodes redéfinies.

DIT : Depth in Inheritance Tree, la profondeur dans l'arbre d'héritage.

NOM : Number Of Methods, le nombre de méthodes de la classe 3.

Cet indice augmente quand :

- Le nombre de méthodes redéfinies augmente.

- La profondeur d'héritage augmente.

Il diminue quand :

- Le nombre de méthodes spécifiques à la classe augmente.

- Le nombre de méthodes redéfinies diminue.

Cet indice peut être considéré comme trop élevé lorsqu'il est supérieur à 1.5. Il
faut alors penser à refactoriser en utilisant des interfaces. En effet, cela signifie
souvent qu'un objet hérite d'un autre en redéfinissant beaucoup de ses
méthodes : il utilise donc l'héritage alors qu'il s'agit d'un objet très spécialisé.
L'utilisation des interfaces et de la délégation est plus appropriée, pour clarifier
le code et éviter les problèmes de maintenance.
Exemple d’utilisation :

- Considérons le diagramme de classes suivant :

La classe 1 hérite de la classe Object. Sur ce diagramme, la


classe 2 hérite de la classe 1 mais ne redéfinit aucune
méthode. La classe 3 hérite de la classe 2 et redéfinit les
méthodes 1, 2 et 3.

Calcul de l'indice

Pour la classe 3 de cet exemple, on a donc :

NORM = 3, puisqu'on redéfinit trois méthodes.

DIT = 3, il s'agit de la profondeur de la classe 3 dans l'arbre


d'héritage.

NOM = 3, puisqu’au total, la classe 3 possède trois méthodes (les trois


méthodes redéfinies).

Dans cet exemple, l'indice de spécialisation vaut donc (3*3/3) = 3.

Il s'agit d'un indice de spécialisation élevé et cette classe gagnerait à être


refactorisée.

Les métriques de complexité


Plusieurs métriques de complexité ont été proposées. Elles dépendent
généralement de la taille et de la structure de contrôle du programme. En effet,
elles sont sensibles à la décomposition structurelle du programme. Ces
métriques se basent sur le flot de contrôle, d’informations ou sur le calcul de
certains attributs physiques du programme source. Les métriques de McCabe et
Halstead sont les plus connues après les métriques de lignes de code et sont
très largement utilisées pour mesurer la complexité.

Il y a deux type de métriques de complexité :


- La complexité cyclomatique basée sur la théorie des graphes
- La complexité de la compréhension basée sur le nombre d’opérateurs et d’opérandes
Références

- R. S. Pressman & B. R. Maxim: “Software Engineering: a Practionner’s Approach”.


McGraww Hill 2014.

- Thèse pour l’obtention du titre de docteur d’état en informatique « Analyse et prédiction


de l’impact de changement dans un système à objets »présenté par M. Abdi Mustapha
Kamel

- Salma Hamza. Une approche pragmatique pour mesurer la qualité des applications à
base de composants logiciels. Langage de programmation [cs.PL]. Université de Bretagne
Sud, 2014. Français. NNT : 2014LORIS356. Tel-01256822

Vous aimerez peut-être aussi