IFT3913
Qualité du logiciel et métriques
Chapitre 4
Théorie de la mesure
Plan du cours
Introduction
Modèles de processus du développement du logiciel
Qualité du logiciel
Théorie de la mesure
Mesure de la qualité du logiciel
Études empiriques
Mesure du produit logiciel
Collection et analyse des métriques
3
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é).
C’est quoi la mesure ?
Bleu 259 1998 23 203 6.000.000
22 6
5
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 ?
En résumé …
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, …
Ce qui n'est pas mesurable rendez le
mesurable
(Galilée 1564-1642)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 regarder 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ématiques, pas cohérente et incomplète
vous ne pouvez pas contrôler ce que vous ne pouvez pas mesurer (DeMarco, 1982)
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
Relations empiriques Barrière de l’intelligence
Nombres et symboles
Nombres dérivés
Statistiques Mesure
Interprétation
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))Condition de représentation
Exemple
– Soient Eun ensemble de personnes et YidaetYanisdeux personnes
– Soit Rla relation est_plus_grand_que.On sait que Yidaest plus grand queYanis
– Soit Mla mesure de la taille en cm – Soit Ola 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 queest_plus_grand_que (Yanis, Yida) etM(Yanis) >
M(Yida) sont tous les deux fauts
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 utiliser 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
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é à 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 dot 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 par litre de la voiture)
Le coût est une prédiction et non une mesure
É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ésentions
– Une échelle A est dite plus riche qu’une échelle B si les caractéristiques de B sont incluses dans celles de A
Types d’échelles
Il existe 5 types d’échelles
1. Nominale 2. Ordinale 3. Intervalle 4. Ratio 5. 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
É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
É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
É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
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
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
Nombre de…
f(x) = x (identité) Absolue
Degré Kelvin f(x) = a x, a > 0
Ratio
Degré Celcius f(x) = a x + b, a > 0
Intervalle
Échelle de Likert Fonctions monotones
croissantes Ordinale
Sexe, religion Fonctions un à un
Nominale
Exemples Transformations
Types d’échelle
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 être significatives
31
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 la moyenne est significative comme mesure globale de la satisfaction du groupe ?
• Si non, quelles seraient les alternatives ?
Transformations, significations et statistiques
3 + 5 + 3 + 4 + 3
5 = 3,6
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%
Transformations, significations et statistiques
Signification
Tout Tout
Absolue
Déviation géométrique Moyenne géométrique
Ratio
Écart type Moyenne arithmétique
Intervalle
Percentile Médiane
Ordinale
Fréquence Mode
Nominale
Écart Moyenne
Type d’échelle
35
Transformations, significations et statistiques
Autres exemple de signification
– Michel est deux fois plus grand que Vlad – Significatif ?
Transformations, significations et statistiques
Autres exemple 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 exemple 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 ?
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
Transformations, significations et statistiques
Signification des mesure 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 indirect 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 ?
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
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