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