IFT3913 Qualité du logiciel et métriques Chapitre 3 Plan du cours

Transcription

IFT3913 Qualité du logiciel et métriques Chapitre 3 Plan du cours
IFT3913
Qualité du logiciel et métriques
Chapitre 3
Théorie de la mesure
Plan du cours
Introduction
Qualité du logiciel
Théorie de la mesure
Mesure du produit logiciel
Mesure de la qualité du logiciel
Études empiriques
Collection et analyse des métriques
Test du logiciel
2
1
C’est quoi la mesure ?
Définitions
– Mesure : processus qui consiste à affecter des
nombres et des symboles aux attributs des
objets du monde réel pour les décrire selon
des règles clairement définies
– Une entité : un objet (par exemple personne,
salle) ou un événement (par exemple, voyage,
phase de test) dans le monde réel
– Un attribut : une propriété d'une entité (par
exemple la couleur de la salle, le coût du
voyage, le temps de test écoulé).
3
C’est quoi la mesure ?
Bleu
259
1998
23
203
6.000.000
22
6
Mathématiques
Monde réel
4
2
Mais …
La définition de la mesure n'est pas précise
– Le bleu est-il une mesure de la couleur d'une
salle ?
– La taille est un attribut d'une personne qui peut
être mesuré, mais qu’en est-il de l'intelligence ?
– Qu'est-ce qui détermine l’exactitude de la
mesure ?
– Comment détecter les erreurs dans la mesure ?
– Quelle échelle utiliser, m ou cm ?
– Quels calculs sur des résultats des mesures
(par exemple moyennes) sont valides ?
5
Ce qu’il faut retenir
La mesure est une quantification
directe, le calcul est indirecte
Mesurer permet de mieux comprendre
et donc de mieux mesurer
– QI, points décathlon, scores des tests de
langues, …
6
3
En résumé
Ce qui n'est pas mesurable rendez le mesurable
Galilée 1564-1642
I often say that when you can measure what you are speaking
about, and express it in numbers, you know something about it; but
when you cannot measure it, when you cannot express it in
numbers, your knowledge is of a meagre and unsatisfactory kind; it
may be the beginning of knowledge, but you have scarcely in your
thoughts advanced to the state of Science, whatever the matter
may be.
Lord Kelvin, 1883
Vous ne pouvez pas contrôler ce que vous ne pouvez pas mesurer
DeMarco, 1982
7
La mesure pour le génie logiciel
Longtemps la mesure a été considérée comme un
luxe dans les projets de développement du logiciel
Quelques mythes
– On sait à peu près où on va
– On va utiliser certains composants pour le développement,
mais on n’a pas vraiment regardé pour le coût
– On n’a pas une idée précise sur la qualité du produit final
(fiabilité, portabilité), mais ça devrait être bon
– On va utiliser la technologie X car il paraît que la compagnie
Y l’utilise avec succès
Quand il y a mesure, c’est souvent non
systématique, pas cohérente et incomplète
8
4
Relations empiriques
Exemples
– Ce café est meilleur que celui d’hier
– La classe A est plus facilement
maintenable que la classe B
– L’algorithme de tri X est plus efficace que
l’algorithme Y
L’être humain n’est pas toujours
capable de formuler des relations
empiriques correctes (barrière de
l’intelligence, Kirz 1988)
9
Approche de mesure
Objets du
monde réel
Mesure
Barrière de l’intelligence
Relations
empiriques
Nombres et
symboles
Statistiques
Interprétation
Nombres
dérivés
10
5
Condition de représentation
Relation empirique
– La relation empirique doit, elle aussi, être
représentée par des nombres ou des symboles
Condition de représentation
– Le choix de la représentation par des nombres ou
des symboles doit préserver la relation empirique
du monde réel
– Exemple
• X est plus grand que Y
• Mesure de la taille par la valeur en kilogrammes de
l’individu
• Ne préserve pas la relation empirique
11
Condition de représentation
Définition formelle
– Soient E un ensemble d’entités, R une
relation empirique entre les entités de E, M
une méthode de mesure et O une relation
entre les mesures. Nous avons
(E, R) → (E, M, O)
– Soient x et y deux entités de E, la
condition de représentation est définie par
R(x, y) ⇔ O(M(x), M(y))
12
6
Condition de représentation
Exemple
– Soient E un ensemble de personnes et Yida et Yanis deux
personnes
– Soit R la relation est_plus_grand_que. On sait que Yida est
plus grand que Yanis
– Soit M la mesure de la taille en cm
– Soit O la relation “>”
– Par la mesure, on obtient M(Yanis) = 172 et M(Yida) = 181
– est_plus_grand_que (Yida, Yanis) est vrai (monde réel) et
M(Yida) > M(Yanis) est vrai (relation mathématique)
– Alors que est_plus_grand_que (Yanis, Yida) et M(Yanis) >
M(Yida) sont tous les deux faux
13
Condition de représentation
Conséquences
– La condition de représentation est valide pour notre
exemple
– Ceci veut dire que la relation formelle peut être utilisée pour
raisonner sur le monde réel
– En introduisant la mesure de la taille en cm, on peut définir
de nouvelles mesures qui n’ont pas d’équivalent dans le
monde réel (taille moyenne d’un ensemble de personnes)
– La relation “>” permet de définir plus précisément la relation
est_plus_grand_que et permet d’élargir la gamme de
raisonnement qu’on peut faire à partir de cette relation
14
7
Modèle
Un modèle est une abstraction de réalité qui permet
d'éliminer les détails et de voir une entité ou un
concept à partir d'une perspective particulière
Une mesure est toujours associée à un modèle. Par
exemple, la mesure doit se faire debout, avec appui
sur les talons, sans chaussures et sans chapeau
Le modèle détermine donc comment associer les
attributs du monde réel aux éléments du système
numérique
Le fait de donner un nom à une mesure ne veut pas
dire que la mesure mesure bien ce que l’on veut
mesurer (taille)
15
Modèle
La mesure directe d’un attribut ne doit pas impliquer d’autres
attributs ou entités, elle doit être une évaluation de quelque
chose qui existe
Par opposition, la mesure indirecte permet le calcul qui implique
d’autres attributs ou entités en utilisant le modèle mathématique
associé
La mesure permet également la prédiction. Un système de
prédiction permet, en utilisant un modèle mathématique avec
des procédures de prédiction, de déterminer des paramètres
inconnus et d’analyser les résultats
Exemple
le coût d’un voyage en voiture de Montréal à Toronto
Coût = s * c / d
s (distance), c (le prix d’un litre d’essence) et d (consommation
moyenne de la voiture)
Le coût est une prédiction et non une mesure
16
8
Échelles de mesure
Définition
– On appelle échelle de mesure l’ensemble constitué de la
méthode de mesure M et les systèmes des relations
empiriques et numériques
Questions
– Comment déterminer si un système de relations numériques
est meilleur qu’un autre ?
– Peut-on toujours trouver un système de relations
numériques ?
– Comment faire quand il existe différentes représentations
possibles dans le même système de relations empiriques ?
17
Échelles de mesure
Réponse pragmatique
– Utiliser des nombres réels quand c’est possible
Problème de représentation
– Pour certains problèmes (systèmes de relations
empiriques) une seule représentation est
possible, pour d’autres, différentes échelles de
mesure peuvent être appliquées
– Plus il y a de relations empiriques à préserver,
moins il y a de possibilités de représentations
– Une échelle A est dite plus riche qu’une échelle B
si les caractéristiques de B sont incluses dans
celles de A
18
9
Types d’échelles
Il existe 5 types d’échelles
1.
2.
3.
4.
5.
Nominale
Ordinale
Intervalle
Ratio
Absolue
Classification (1 à 4) proposée par
Stevens en 1946
Chaque type d’échelles autorise
certains types de transformations
19
Échelle nominale
La plus basse dans les niveaux de mesure
Elle consiste en une classification simple
Exemples
–
–
–
–
–
Sexes : mâle (1) femelle (2)
Couleurs : rouge, vert, …
Religions
Processus de développement
Langage de programmation
Aucun ordre entre les classes même si ce
sont des nombres
20
10
Échelle nominale
Propriétés
– Les classes doivent être conjointement
exhaustives
• Pour le langage de programmation, par
exemple, utiliser une classe « autre » pour être
exhaustif
– Les classes doivent être mutuellement
exclusives
• Une personne ne peut pas être en même
temps catholique et protestante
21
Échelle ordinale
Permet de rajouter la notion d’ordre à
l’échelle nominale
La notion d’ordre peut être établie aussi
bien entre les nombres que les
symboles
Exemples
– Classes sociales
– Tailles (petit, moyen, grand)
– Niveaux CMM
22
11
Échelle ordinale
Propriétés
– Transitivité
• Considérant la relation > qui définit un ordre
entre les entités, si P1 > P2 et P2 > P3 alors
P1 > P3
• Exemple CMM : une organisation au niveau
défini est plus mature qu’une organisation au
niveau initial
– Complétude
• Pour deux entités distincts P1 et P2, il faut
toujours avoir soit P1 > P2, soit P2 > P1
23
Échelle intervalle
Permet d’ajouter la notion de distance
relative entre deux classes de mesures
Pour deux valeurs successives
quelconques vi et vj, vj-vi = d
Exemple
– Température en Celsius ou en Fahrenheit
– Date de survenu d’un faute
24
12
Échelle ratio
Ajoute la notion de zéro absolu à
l’échelle intervalle
Zéro absolu = absence de l’attribut
mesuré
Exemples
– Température en Kelvin
– Temps entre 2 fautes
25
Échelle absolue
L’attribut ne peut être mesuré que d’une
seule façon
Consiste généralement à compter
Exemple
– Nombre de voitures dans le stationnement
– Nombre d’erreurs trouvées lors du test
d’intégration
26
13
Transformations, significations et
statistiques
Transformations
– Soit x une entité et M(x) une mesure sur x
– Chaque type d’échelle autorise un certain
type de transformations t sur M : t(M(x))
– Échelle nominale
• Uniquement les transformations un vers un
• Exemple
– Java → 1, C++ → 2, C# → 3
27
Transformations, significations et
statistiques
Transformations
– Échelle ordinale
• Toute transformation qui préserve l’ordre (toute
fonction monotone croissante)
• Exemple : transformation de labels dans une
échelle de Likert (1 → très satisfait, etc.)
– Échelle intervalle
• Toute transformation de la forme
t(M(x)) = a × M(x) + b, a>0
• Exemple : conversion Celsius Fahrenheit
F = 9/5 C + 32
28
14
Transformations, significations et
statistiques
Transformations
– Échelle ratio
• Toute transformation de la forme
t(M(x)) = a × M(x), a>0
• Exemple : Conversion de monnaie
CAD = 0.6 EUR
– Échelle absolue
• Uniquement la transformation « identité »
t(M(x)) = M(x)
29
Transformations, significations et
statistiques
Transformations
Types d’échelle
Transformations
Exemples
Nominale
Fonctions un à un
Sexe, religion
Ordinale
Fonctions monotones
croissantes
Échelle de Likert
Intervalle
f(x) = a x + b, a > 0
Degré Celcius
Ratio
f(x) = a x,
Absolue
f(x) = x
a>0
(identité)
Degré Kelvin
Nombre de…
30
15
Transformations, significations et
statistiques
Signification
– Le type d’échelle d’une mesure détermine quelles
sont les opérations possibles sur les données
– Par exemple, les analyses statistiques utilisent les
opérateurs arithmétiques (+, –, ÷, ×)
– Ces opérations ne sont pas permises sur des
données de type échelles nominale et ordinale,
les analyses statistiques qui les utilisent ne sont
donc pas significatives
31
Transformations, significations et
statistiques
Signification
– Exemple : la moyenne
• Lors des tests d’acceptabilité, à la question «
Êtes-vous satisfait de la qualité de l’interface?
», 5 utilisateurs ont répondu suivant une
échelle de Likert à 5 choix de réponses : 3 , 5,
3, 4, 3
• Est-ce que la moyenne est significative comme
mesure globale de la satisfaction du groupe ?
3+5+3+4+3
= 3,6
5
• Sinon, quelles seraient les alternatives ?
32
16
Transformations, significations et
statistiques
Signification
– Exemple : la moyenne (suite)
• La médiane (= 3) peut être utilisée dans ce cas
• La médiane ne peut pas être utilisée dans le
cas d’une échelle nominale, pourquoi ?
• Le mode (= 3) peut être utilisé dans le cas
d’une échelle nominale
33
Transformations, significations et
statistiques
Signification
– Exemple : la moyenne (suite)
• Le nombre de fautes a augmenté de 10% la
première année, de 15% la seconde et de 5% la
troisième
• Quelle est la moyenne de l’augmentation ?
– Moyenne arithmétique ? (10% + 15% + 5%) / 3 = 10%
– Moyenne géométrique ? (10%*15%*5%)1/3 = 9,08%
34
17
Transformations, significations et
statistiques
Signification
Type d’échelle
Nominale
Moyenne
Mode
Écart
Fréquence
Ordinale
Médiane
Percentile
Intervalle
Moyenne arithmétique
Écart type
Ratio
Moyenne géométrique
Déviation géométrique
Absolue
Tout
Tout
35
Transformations, significations et
statistiques
Autres exemples de signification
– Michel est deux fois plus grand que Vlad
– Significatif ?
36
18
Transformations, significations et
statistiques
Autres exemples de signification
– Il a fait deux fois plus chaud le 22 juin
dernier à 10h à Montréal qu’à Ottawa
– Significatif ?
37
Transformations, significations et
statistiques
Autres exemples de signification
– La différence de température entre Ottawa
et Montréal a été 2 fois plus élevée le 22
juin que le 23 juin
– Significatif ?
38
19
Transformations, significations et
statistiques
Choix d’échelles
– Quand il faut mesurer les attributs d’une entité, il
faut en priorité choisir des mesures objectives
– Exemple : pour mesurer le couplage d’une classe,
utiliser une mesurer quantitative du couplage
plutôt qu’une échelle de Likert (subjective)
– Les mesures subjectives sont acceptables s’il est
difficile de définir des mesures objectives et si
l’imprécision est bien comprise
39
Transformations, significations et
statistiques
Cas des attributs non mesurables
directement
– L’attribut est décomposé en sous-attributs
directement mesurables
– Cas de la qualité d’une conception : elle peut être
représentée par le couple (couplage, cohésion)
– Il est préférable d’avoir un faible couplage et une
forte cohésion
• Pour une classe A, j’ai deux conceptions possibles, l’une
donne le couple (10, 0.3), l’autre le couple (12, 0.4),
laquelle choisir ?
– Problème de prise de décision multicritères
40
20
Transformations, significations et
statistiques
Signification des mesures indirectes
– Exemple (densité)
• d = M/V (masse sur le volume)
M et V sont de type ratio
• Par transformation,
M'/V' = (a × M)/(b × V) = (a/b) × (M/V) = c × d = d'
• c > 0, alors d est aussi considéré comme de type ratio
– En général, une mesure indirecte ne peut pas être plus riche
que les mesures directes qui la composent
• Efficacité des tests T = D/E ou D est le nombre de fautes
trouvées (absolue) et E l’effort en personnes/mois (ratio)
• T est donc de type ratio
• Pour changer l’échelle de T, changer la mesure de l’effort E
41
Validation des mesures
La validation d’une mesure du logiciel consiste à
s’assurer que la mesure est une caractérisation
numérique correcte de l’attribut mesuré
Exemple
– Une mesure de taille d’un programme ne doit pas contredire
toute notion intuitive sur la taille
– Si un programme P1 est plus grand qu’un programme P2
alors M(P1) > M(P2)
– Si P1 ; P2 alors M(P1;P2) = M(P1) + M(P2)
• Si M(P1) = 9 et M(P2) = 7 alors M(P1;P2) = 16
– Nombre de classe ? Nombre de ligne de code ?
42
21
Validation des mesures
Une façon efficace de valider une
mesure est de montrer qu’elle fait partie
d’un système de prédiction valide
43
Validation d’un système de
prédiction
La validation d’un système de
prédiction, dans un environnement
donné, consiste à montrer que les
prédictions faites par le système en
utilisant des moyens empiriques sont
correctes
En d’autres termes, comparer les
prédictions avec les données connues
44
22
Validation d’un système de
prédiction
Méthodes
– Expérimentation
– Utilisation effective
Outils de base
– Statistiques
– Probabilités
Autres outils
–
–
–
–
Arbres de décision
Réseaux de neurones
Logique floue
Algorithmes génétiques
45
23