IFT3913
Qualité du logiciel et métriques
Chapitre 8
Collecte et analyse des métriques
2
Plan du cours
Introduction
Modèles de processus du développement du logiciel
Théorie de la mesure
Qualité du logiciel
Mesure de la qualité du logiciel
Études empiriques
Mesure du produit logiciel
Collecte et analyse des métriques
3
Introduction
L’analyse des métriques est l’étape cruciale d’une étude empirique
La capacité de généralisation dépend – De l’échantillon
– Des techniques d’analyse
Il existe plusieurs techniques d’analyse
Nous nous intéressons, dans ce chapitre, à celles qui concernent l’exploration de
relations
Techniques d’analyse d’une variable (métrique)
Diagramme de boîte (Box plot) – Boîte à moustaches
– Il permet de visualiser graphiquement des
données statistiques (médiane, quartiles, limites), ainsi que les valeurs extrêmes
Limite inférieure
Limite supérieure Quartile
inférieur
Quartile supérieur Médiane
X Point extrême
5
Techniques d’analyse d’une variable (métrique)
Diagramme de boîte – Soit la médiane m,
• Le quartile supérieur uest la médiane des valeurs plus grandes que m
• Le quartile inférieur l est la médiane des valeurs plus petites que m
• La longueur de la boîte dest d = u – l
• Les limites déterminent l’intervalle théorique à l’intérieur duquel doivent se trouver tous les points
• La limite supérieure sest s =u + 1.5d
• La limite inférieure iest i =l - 1.5d (sii est inférieur à la valeur minimale possible pour la variable (min), alorsi = min)
• Les valeurs supérieures àset inférieures ài sont appelées points extrêmes
6
Techniques d’analyse d’une variable (métrique)
Diagramme de boîte – Exemple
systemes KLOC MOD FD
A 10 15 36
B 23 43 22
C 26 61 15
D 31 10 33
E 31 43 15
F 40 57 13
G 47 58 22
H 52 65 16
I 54 50 15
J 67 60 18
K 70 50 10
L 75 96 34
M 83 51 16
N 83 61 18
P 100 32 12
Q 110 78 20
R 200 48 21
l = 31
m = 54
u = 83
d = u - l = 52 s = u +1,5d = 161 i = l -1,5d = 0 (-47)
0 50 100 150 200
R X
31 54 83 161
KLOC
KLOC
7
Techniques d’analyse d’une variable (métrique)
Diagramme de nuage de points
– Permet de visualiser les données pour identifier des régularités ou des tendances possibles
– L’axe des abscisses représente les numéros des objets étudiés et l’axe des ordonnées la valeurs de la variable étudiée
– Exemple densité de fautes (FD)
FD
0 5 10 15 20 25 30 35 40
0 5 10 15 20
FD 22
A D L
Techniques d’analyse d’une relation entre 2 variables
Diagramme de nuage de points
– Contrairement au diagramme de boîte, il permet également de visualiser la relation entre deux variables
– La variable indépendante est représentée
par l’axe des abscisses et la variable
dépendante par l’axe des ordonnées
– Il suggère l’existence d’une relation
9
Techniques d’analyse d’une relation entre 2 variables
Diagramme de nuage de points
– Exemple
Taille module Fautes module
29 0
29 2
32 1
33 1
37 1
41 4
55 2
64 0
69 1
101 5
120 6
164 11
205 11
232 11
236 12
270 17
549 16
0 2 4 6 8 10 12 14 16 18
0 100 200 300 400 500 600
Taille m odule (LOC)
Fautes par module
10
Techniques d’analyse d’une relation entre 2 variables
Mesure d’association
– Coefficient de corrélation de Pearson (r)
• Le diagramme de nuage de point peut suggérer
l’existence d’une relation entre 2 variables mais ne peut fournir la preuve d’une telle existence
• Pour les variables normalement distribuées (ou presque), rest une bonne mesure d’association
• r est toujours compris entre –1 et 1
• Si r= 1, alors les 2 variables ont une parfaite corrélation linéaire positive
• Si r= -1, alors les 2 variables ont une parfaite corrélation linéaire négative
• Si r= 0, alors les 2 variables n’ont pas de relation
11
Techniques d’analyse d’une relation entre 2 variables
Mesure d’association
– Coefficient de corrélation de Pearson (r)
• Corrélation linéaire entre 1 000 pairs de nombres
• Corrélation maximale sur la diagonale
Techniques d’analyse d’une relation entre 2 variables
Mesure d’association
– Coefficient de corrélation de Pearson (r)
• Soient xet ydeux variables. Pour un objet logiciel i, nous avons la paire de valeurs (xi, yi)
• Soient mxet myles moyennes respectives des xiset yis
• Le coefficient de corrélation de Pearson est calculé comme suit
∑
∑
∑
=
=
=
−
−
−
−
=
ni
y i n
i
x i n
i
y i x i
m y m
x
m y m x r
1
2 1
2 1
) (
) (
) )(
(
13
Techniques d’analyse d’une relation entre 2 variables
Mesure d’association
– Coefficient de corrélation de Pearson (r)
• Exemple
Taille module Fautes module
29 0
29 2
32 1
33 1
37 1
41 4
55 2
64 0
69 1
101 5
120 6
164 11
205 11
232 11
236 12
270 17
549 16
88 . 23.26 0 542.24
11082.29 23.26 )
(
542.24 )
(
11082.29 )
)(
( 94 . 5 133.29
17
1
2 17
1
2 17
1
× ≈
=
=
−
=
−
=
−
−
=
=
∑
∑
∑
−
−
−
r
m y
m x
m y m x m m
i
y i i
x i i
y i x i y x
14
Techniques d’analyse d’une relation entre 2 variables
Corrélation robuste
– Coefficient de corrélation de rang de Spearman (ρ)
• En général, les valeurs de métriques sont rarement normalement distribuées
• Dans ce cas, le coefficient de corrélation de rang de Spearman (ρ) est une bonne mesure
• Il est calculé de la même façon que le coefficient r mais en remplaçons les valeurs des variables par leurs rangs
• L’Intervalle des valeurs ainsi que leur interprétation sont les même que pour r
15
Techniques d’analyse d’une relation entre 2 variables
Corrélation robuste
– Coefficient de corrélation de rang de Spearman (ρ)
• Soient rxiet ryiles rangs des valeurs xiet yiet mrxet mryles moyennes respectives des rxis et ryis
• ρest calculé comme suit
• Après des simplifications, ρpeut être calculer simplement comme suit
∑
∑
∑
=
=
=
−
−
−
−
= n
i
ry i n
i
rx i n
i
ry i rx i
m ry m
rx
m ry m rx
1
2 1
2 1
) (
) (
) )(
( ρ
( )
i i i
n
i i
ry rx d
n n
d
−
=
− −
=
∑
=
avec
1 6 1 21
2
ρ
Techniques d’analyse d’une relation entre 2 variables
Corrélation robuste
– Coefficient de corrélation de rang de Spearman (ρ) – Exemple
TM FM Rang(TM) Rang(FM)
29 0 1.5 1.5
29 2 1.5 7.5
32 1 3 4.5
33 1 4 4.5
37 1 5 4.5
41 4 5 9
55 2 7 7.5
64 0 8 1.5
69 1 9 4.5
101 5 10 10
120 6 11 11
164 11 12 13
205 11 13 13
232 11 14 13
236 12 15 15
270 17 16 17
85 .
= 0
ρ
17
Techniques d’analyse d’une relation entre 2 variables
Régression linéaire
– Jusqu’à présent, nous avons réussi à
• Identifier une relation en utilisant le diagramme de nuage de points
• Mesurer sa force en utilisant les coefficients de corrélation
– Ce qui reste à faire et de déterminer la nature exacte de cette relation
– La régression permet d’exprimer une relation sous forme d’une fonction linéaire
bx a y = +
18
Techniques d’analyse d’une relation entre 2 variables
Régression linéaire
– L’idée est de tracer une droit passant le plus prêt par tous les points (digramme de nuage de points) – Le choix de la droite dépend des résidus
– Un résidu est la distance qui sépare verticalement un point de la droite
0 2 4 6 8 10 12 14 16 18
0 100 200 300 400 500 600
Taille m odule (LOC)
Fautes par module
Module (164,11)
Résidu du module (164,11)
19
Techniques d’analyse d’une relation entre 2 variables
Régression linéaire
– Pour un point i, le résidu est exprimé comme suit – La droite de régression est obtenu par la
minimisations des erreurs (carrés des résidus) – Les coefficient a et b sont donc
i i
i y – a – bx r =
x y
n
i
x i n
i
y i x i
am m b
m x
m y m x a
−
=
−
−
−
=
∑
∑
=
=
1
2 1
) (
) )(
(
Techniques d’analyse d’une relation entre 2 variables
Régression linéaire
– Exemple (y = fautes par module, x = taille de module)
• b = 0.037 (facteur d’influence de la taille)
• a = 0.917 (facteur constant)
0 2 4 6 8 10 12 14 16 18
0 100 200 300 400 500 600
Série1 y=0.917 + 0.037x
21
Techniques d’analyse d’une relation entre 2 variables
Régression linéaire
– Les points extrêmes peuvent influencer significativement l’estimation de a et b
– Par exemple, si on ne considère pas le module (549, 16), nous obtenons une droite significativement différente
0 2 4 6 8 10 12 14 16 18
0 100 200 300 400 500 600
Série1
22
Techniques avancées
En général, les modèles sont construits automatiquement à partir de données empiriques (données historiques)
– TDIDT et fuzzy TDIDT – Neuro
– Neuro-fuzzy
– Classificateurs bayesiens
Parfois, ils résultent de la connaissance des experts
Ils peuvent aussi être hybrides
– Systèmes à base de règles étendus
– Réseaux bayésiens
23
Arbres de décision
« Top-Down induction of decision tree » (TDIDT) crée des arbres de décision binaires qui associent les valeurs de plusieurs attributs avec des classes d’intérêt
NOP <= 0.5
NOM <= 100.5
NOM <= 21
0
PMI <= 52%
0
NOM <= 17 1
0 1
NOD <= 6
PMI <= 49.5%
PMO <= 6%
1 0
NOP <= 0.5
NOM <= 100.5
NOM <= 21
0
PMI <= 52%
0
NOM <= 17 1
0 1
NOD <= 6
PMI <= 49.5%
PMO <= 6%
1 0
0 1
Arbres de décision
TDIDT
Algorithme :
1. Créer un nœud racine et considérer tous les exemples dans l’ensemble d’apprentissage
2. Identifier l’attribut le plus discriminant pour séparer les classes
3. Créer deux sous nœuds et y répartir les exemples selon l’attribut trouvé
4. S’il ne reste plus d’attribut, stop ;
sinon, aller à l’étape 2 pour chaque sous nœud
25
Arbres de décision
TDIDT
Le critère de discrimination :
C4.5 : L’attribut le plus informatif est celui avec la plus grande entropie. Pour deux ou plusieurs classes qui se partagent un ensemble d’attributs {A
k}:
H(A
k) = - ∑ p (i) log(p(i))
où p(i) est la probabilité que l’attribut A
kpossède la valeur i dans l’ensemble d’apprentissage.
Avantage : Dérivation d’arbres compacts avec une grande capacité de classification lorsque les données se prêtent au groupement.
26
Axone Synapse
Dendrite s
Synapse Axone
Dendrite s Noyau
Corps de la cellule
Composants d'un neurone
Net = + u X1
X2
Xn ...
W 1 W 2
W n Poids Synaptiques
Activatio n
Fonction d’
Activation
Sorti e
∑= n
i i iX W 1
Fct (Net)
Entrées O
W0 = u X0
Couche d'entrée
Couche cachée
Couche de sortie Types de connexion
connexion supra couches
connexion inter couches connexion
intra couches
auto connexion
Réseaux de neurones
Principe
27 Ajustement des poids en fonction de l’erreur
E= (Désiré-Obtenu)
Entrées
Sorties Sorties Obtenues Désirées
Réseaux de neurones
Exemple d’architecture
Le perceptron multicouches
Principe
– Soit un cas e
k={A
1=a
1k, …, A
m=a
mk}, la probabilité que ce cas soit de classe c
jest définie comme suit (théorème de Bayes)
– Le cas est associé avec la classe qui présente la plus grande probabilité
Classificateurs bayésiens
) (
) ( )
| ) (
| (
k j j k k
j
p e
c p c e e p
c
p =
29
Exemple
Dérivation de la classe
Les probabilités p(aik | cj) et p(cj) sont calculées à partir de l’échantillon
Classificateurs bayésiens
TS (1 . 3) (3 . 5) (5 . 10) (10 . 17.5) DRT 0 1 2 3 0 0.095 0.129 0.405 0.371 0 0.371 0.198 0.164 0.267 1 0.507 0.279 0.107 0.107 1 0.307 0.364 0.250 0.079
RD 0 1 2 3 4 5
0 0.351 0.316 0.075 0.109 0.075 0.075 1 0.290 0.262 0.348 0.033 0.033 0.033
∑ ∏ ∏
= =
=
c = 1 hm 1
k ik h h
m 1
k ik j j
k
j
p ( a / c ) p ( c )
) c ( p ) c / a ( ) p
e / c ( p
30
Réseaux bayésiens
Caractérisés par : – La structure
• Elle ne peut être obtenue automatiquement en général,
• Elle est produite par des experts
– Les paramètres du réseau (probabilités conditionnelles)
• Ils peuvent être obtenus à partir de données historiques en utilisant le théorème de Bayes
A
D C
B
P(D) P(C)
P(B|D)
P(A|B,C)
31
Réseaux bayésiens
Exemple
–Table des probabilités pour le nœud "faults in test/review"
Résonnement à base de cas (CBR)
Le cycle d’un CBR
(d’après Aamodt & Plaza, 1994)33
Résonnement à base de cas (CBR)
La représentation structurée des cas
– Les éléments logiciels à évaluer sont des objets – Les métriques sont les attributs de ces objets
L’évaluation de la qualité – Trouver un élément logiciel
ayant une représentation (signature numérique) similaire à l’élément évalué – Technique : k-Nearest
Neighbour utilisant une mesure de similarité
34
Résonnement à base de cas (CBR) Calcul de similarité
Exemple de calcul de similarité (distance de Manhattan)
– Niveau local (métrique):
• Pour chaque métrique Mi, le facteur de similarité entre deux cas x et y est défini par
– Niveau global (cas)
ßireprésente le poids d’une métriqueMi ) (
. 1 .
) . , . (
i i i i
i domM
M y M M x
y M x
sim −
−
=
p
M y M x y sim
x Sim
p i
i i i i
∑
=== 1 ( . , . ) )
,
( β