IFT3913
Qualité du logiciel et métriques
Chapitre 6 Études empiriques
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
Introduction
Nécessité d’avoir des modèles de prédiction de la qualité
Hétérogénéité des systèmes, des processus et des organisations
Absence de modèles de prédiction généraux Nécessité de mener des études empiriques pour adapter, valider ou construire des modèles de prédiction
4
Éléments d’une étude empirique
1.
Objectif de l’étude
2.
Conception
3.
Techniques de collecte de données
4.
Considérations pratiques
5.
Techniques d’analyse de données
6.
Application des résultats
5
Objectif de l’étude
Choisir le type d’étude
Définir et énoncer les hypothèses Définir et étudier les variables
Interpréter et généraliser les résultats
Choisir le type d’étude
Étude d’ensemble (sondage)
– Étude rétrospective d'une situation
– Comparaison avec des situations semblables
Étude de cas
– Technique qui consiste à
• identifier les facteurs principaux qui peuvent affecter les sorties d'une activité
• documenter l'activité: entrées, contraintes, ressources et sorties
Expérience
– Étude rigoureuse et contrôlée qui consiste à
• identifier les facteurs principaux qui peuvent affecter les résultats d'une activité
• Manipuler ces facteurs pour étudier leur impact sur les sorties
7
Choisir le type d’étude
Méthode scientifique
– Étude et acquisition de nouvelles
connaissances basées sur des preuves physiques
– Utilisation d’observations, d’hypothèses, de la logique pour expliquer des
phénomènes naturels par des théories – Prédictions des théories reproduisibles
par des expériences, développement de nouvelles technologies
8
Choisir le type d’étude
Expériences
– Ensemble d’actions et d’observations objectives réalisées pour résoudre un problème, répondre à une questions ou confirmer/réfuter une hypothèse sur un phénomène
– Sciences « dures » et « molles »
– Peut-on expliquer l’échec scolaire par la pauvreté ?
9
Choisir le type d’étude
Expériences contrôlées
– Comparaison des résultats d’une
expérience avec un groupe de contrôle (quasi-)identique sauf pour l’aspect sur lequel l’expérience porte
Ex. : « Ce calcul est plus lent avec le nouvel algorithme »
Ex. : « placebo et médicament »
Choisir le type d’étude
Expériences « naturelles »
– Aucune variable n’est manipulée – Observation (pas manipulation) de
variables quand toutes les autres variables restent constantes
Ex. : « Les soleils sont des nuages
d’hydrogène qui se sont effondrés sur
eux-mêmes »
11
Choisir le type d’étude
Quasi-expériences
– Impossible de tester physiquement (concrètement) les hypothèses
– Impossible de former un « vrai » groupe de contrôle pour des raisons pratiques (ou éthiques)
– Pas d’équivalence entre groupe d’étude et groupe de contrôle
Ex. : « Un vaccin contre le cancer »
12
Choisir le type d’étude
Étude de cas
– Étude en détails d’une seule occurrence d’un phénomène
• Cas
– Compréhension de pourquoi l’occurrence s’est produite comme elle s’est produite – Génération d’hypothèses, faible
généralisation
… Un exemple bien connu ?
13
Choisir le type d’étude
Étude de cas
– Illustration – Exploration
– Occurrence « critique »
– Implantation d’un programme (en général
☺)
– Effets d’un programme – Cumulation
Choisir le type d’étude
Étude d’ensemble/sondage/enquête
– Généraliser les données recensées sur quelques centaines d’occurrences à toutes les occurrences possibles
15
Choisir le type d’étude
Étude d’ensemble/sondage/enquête
0,5 IND 4,5 17,5
10,5 30,2
36,3 23/01
6,0 11,3
17,7 28,1
37,0 21/01
6,0 11,0
18,0 27,0
37,0 21/01
5,6 10,6
17,4 30,1
36,4 22/01
6,0 11,0
19,0 27,0
37,0 22/01
4,0 12,0
19,0 27,0
38,0 22/01
VERT BQ
NPD LIB
CON Dates
Sources : www.nodice.ca et www.elections.ca
16
Définir et énoncer les hypothèses
Le but de l’étude doit être clairement énoncé
– Hypothèses
Une hypothèse est
– Une prédiction consistant à mettre en relation une variable et un comportement (qui forment un phénomène)
– Une affirmation provisoire qui décrit ou explique un phénomène
– Une explication anticipée…
17
Définir et énoncer les hypothèses
Une hypothèse vient de
– Théories – Observations
– Données recueillies précédemment
Ex. : « Les programmes écrits en Java sont de meilleure qualité que ceux écrits en C »
Définir et énoncer les hypothèses
Les notions quantitatives doivent être claires et non ambiguës
Exemple :
– au lieu de formuler l’hypothèse « les programmes écrits en Java sont de meilleure qualité que ceux écrits en C » – utiliser par exemple l’hypothèse « les
programmes écrits en Java nécessitent moins d’effort de maintenance que ceux écrits en C »
19
Définir et énoncer les hypothèses
Une hypothèse particulière, l’hypothèse nulle
– Soutient des hypothèses alternatives
– « Il n’y a pas de phénomène », i.e., pas de relation entre une variable et un
comportement
Ex. : « il n’y a pas de différence entre développer en C et en Java »
20
Définir et énoncer les hypothèses
Signification statistique
– Confiance que le résultat d’une étude n’est pas le fruit du hasard
– Test statistique sur un ensemble de données, pour obtenir une probabilité, valeur p
La valeur p indique le degré de
confiance à accorder aux résultats
21
Définir et énoncer les hypothèses
p ≤ 0,05 (α = 0,05)
– Différence significative avec des résultats obtenus de manière aléatoire
– Résultats dus au hasard moins de 5 fois sur 100
Définir et étudier les variables
Une fois l’hypothèse définie, il faut décider quelles variables peuvent affecter sa vérité Il faut évaluer le degré de contrôle sur chaque variable.
La variable d’état ou variable indépendante est une variable qui peut être manipulée et qui caractérisera l’objet de l’étude et
influencera les résultats de l’étude
Les résultats de l’étude sont représentés par les valeurs des variables dépendantes
23
Définir et étudier les variables
Pour vérifier (ou non) l’hypothèse, il faut montrer sans ambiguïté la relation entre variables indépendantes et variables dépendantes
– Manipuler les variables indépendantes – Maîtriser toutes les autres variables
possibles
24
Définir et étudier les variables
Les variables sources de bruit – Variables inconnues
– Variables impossibles à maîtriser et–ou à manipuler
Ex. : « ambiance dans la compagnie, état d’esprit des développeurs »
Pour « éliminer » les variables parasites, essayer de maintenir leurs effets constants Ex. : « mesurer le travail des développeurs sur plusieurs jours représentatifs »
25
Définir et étudier les variables
Dans le cas d’une étude d’ensemble, on ne peut pas définir de variables
Dans le cas d’une étude de cas,les variables indépendantes prennent les valeurs typiques du cas
Dans le cas d’une expérience, un
échantillonnage est effectué en fonctions des variables indépendantes
Une expérience permet une meilleure
généralisation des résultats qu’une étude de cas
Interpréter et généraliser les résultats
Pour la confirmation de théories ou de croyances
– L’étude d’ensemble et l’étude de cas permettent de confirmer une théorie ou une croyance pour une organisation ou un cas
– L’expérience permet de confirmer une affirmation dans un cadre plus général
27
Interpréter et généraliser les résultats
Exploration de relations
– Une relation peut être suggérée par une étude de cas ou une étude d’ensemble – Une expérience peut évaluer le degré
d’une relation
28
Interpréter et généraliser les résultats
Évaluation de l'exactitude de modèles
– Les expériences peuvent confirmer ou réfuter l'exactitude de modèles
– Il faut cependant que le modèle n’influence pas la conception de l’expérience et en particulier l’échantillonnage
29
Étapes d’une étude empirique
1.
Objectif de l’étude
2.
Conception
3.
Techniques de collecte de données
4.
Considérations pratiques
5.
Techniques d’analyse de données
6.
Application des résultats
Expérience
Objectif : tester une hypothèse Définitions
– Les manipulations s'appellent traitement – Un essai unique est un cas
– Une expérience est ensemble d‘essais
– Les objets ou les unités expérimentaux sont les objets auxquels le traitement est appliqué
– Les personnes appliquant le traitement sont les sujets de l'expérience
– Le (ou les objets) de contrôle est un objet non concerné par le traitement et utilisé pour la comparaison,
– La réponse ou les variables dépendantes sont les facteurs qui sont supposés changer en raison de l'application du traitement.
– Les variables indépendantes sont les facteurs qui peuvent influencer l'application du traitement et donc indirectement
31
Expérience
Préparation
– Préparer les sujets à l’application du traitement
• Formation
• Instruction écrite
Déroulement
– Application du traitement aux objets selon le plan de l’expérience
32
Expérience
Analyse – Deux étapes
• Valider les mesures prises lors de l’expérience
• Analyser en utilisant des outils statistiques les données récolter pour confirmer ou réfuter l’hypothèse
Diffusion et prise de décision
– Les conclusions doivent être suffisamment
commentées pour permettre à des tiers de répéter l’expérience
– Trois utilisations des résultats
• Mettre en œuvre les changements suggérés
• Application des changement à une échelle plus grande
• Conduire des expériences plus précise pour aboutir à des résultats plus précis
33
Étapes d’une étude empirique
1.
Objectif de l’étude
2.
Conception
3.
Techniques de collecte de données
4.
Considérations pratiques
5.
Techniques d’analyse de données
6.
Application des résultats
Techniques de collectes de données
Sélection des sujets/objets
– Échantillonnage aléatoire simple
• Éléments choisis aléatoirement dans une liste – Échantillonnage systématique
• Premier élément choisi aléatoirement
• Reste de l’échantillon constitué du n éléments suivants
35
Techniques de collectes de données
Sélection des sujets/objet
– Échantillonnage stratifié aléatoire
• La population est divisée en « strates »
• Les strates ont une distribution connue
• Échantillonnage aléatoire utilisé dans chaque strate
– Échantillonnage de commodité
• Les éléments disponibles sont utilisés
36
Techniques de collectes de données
Sélection des sujets
– Méthode des quotas
• Sujets choisis dans différentes catégories de la population
• Critères socio-démographiques, ex. : sexe, âge, catégorie socio-professionnelle, type de commune, région…
• Plus rapide (sujets interchangeables dans une même catégorie)
• Marge d’erreur impossible à calculer mais en pratique, proche des échantillons aléatoires
37
Techniques de collectes de données
Marge d’erreur
– Élections aux États-Unis d’Amérique en 2004, sondage du 2 october 2004 par Newsweek
• Kerry : 47%
• Bush : 45%
• Nader : 2%
auprès d’un échantillon aléatoire simple de 1 013 personnes
Techniques de collectes de données
– Écart-type pour Kerry, p = 0,47 et N = 1 013
Écart-type = = 0,16
– ± 1 écart-type ⇒ intervalle de confiance de 68%
– ± 2 écart-type ⇒ intervalle de confiance de 95%
– ± 2,58 écart-type ⇒intervalle de 99%
39
Techniques de collectes de données
– Marge d’erreur à 99% calculée pour p = 0,5 est
– Borne supérieure à l’intervalle de
confiance lorsque p = 0,5, cet intervalle diminue lorsque pdiminue (ou augmente) – La marge d’erreur change avec p!
40
Techniques de collectes de données
Format des données
– Préférer les formats textuelles simples au format binaires complexes…
– CSV (et ARFF) – XML
– Binaires (Excel et autres…)
41
Techniques de collectes de données
CSV
–Comma Separated Value
– Standard industriel de facto(Microsoft Excel)
– Format des données : ASCII (Unicode possible)
– Données enregistrées en ligne, séparée par des virgules, avec possiblement des guillemets
Techniques de collectes de données
CSV
– Sémantique des données codée à
l’extérieur du fichier CSV, dépendant des programmes
Element,CBO,DIT,NOC,WMC,Roles E1,12,3,3,45,1
E2,23,1,0,89,0 E3,8,2,5,36,1
…
43
Techniques de collectes de données
ARFF
–Attribute-Relation File Format – Similaire à CSV, en-têtes
@RELATION Metrics-Roles
@ATTRIBUTE CBO REAL
@ATTRIBUTE DIT REAL
@ATTRIBUTE NOC REAL
@ATTRIBUTE WMC REAL
@ATTRIBUTE Roles {0,1}
@DATA 12,3,3,45,1 23,1,0,89,0 8,2,5,36,1
44
Techniques de collectes de données
XML
–eXtensible Markup Language
– Très à la mode dans l’industrie et la recherche
– Format de données : Unicode
– Données enregistrées dans un arbre
45
Techniques de collectes de données
XML
– Représentation sous forme d’ arbre intuitive
– (Très) Verbeux
– Syntaxe autorisée définie dans une DTD (Document Type Definition)
– Sémantique codée sous la forme de noms
Techniques de collectes de données
XML
<?xml version="1.0" encoding="UTF-8"?>
<DssDocument>
<ObjectProperties>
<Prop>
<PropName>CBO</PropName>
<ProType>double</ProType>
</Prop>
<Prop>
<PropName>DIT</PropName>
<ProType>double</ProType>
</Prop>
<Prop>
<PropName>NOC</PropName>
<ProType>double</ProType>
</Prop>
<Prop>
<PropName>WMC</PropName>
<ProType>double</ProType>
</Prop>
</ObjectProperties>
<Objects>
<Object>
<Name>Jama.Matrix</Name>
<Type>Class</Type>
<ObjectProperties>
<Prop>
<PropName>CBO</PropName>
<ProValue>3.0</ProValue>
</Prop>
<Prop>
<PropName>DIT</PropName>
<ProValue>1.0</ProValue>
</Prop>
<Prop>
<PropName>NOC</PropName>
<ProValue>0.0</ProValue>
</Prop>
<Prop>
<PropName>WMC</PropName>
<ProValue>362.0</ProValue>
</Prop>
47
Techniques de collectes de données
Binaires
– Propriétaires la plupart du temps
– Impossibles à lire pour un être humain – Nécessitent une définition du format – Compacts
– « Sûres »
48
Techniques de collectes de données
Binaires
ÐÏࡱá > þÿ ? þÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ É€ á °Á â \ p Yann-Gaël Guéhéneuc À = œ ¯ ¼ = h < y ß 8 u @
" · Ú 1 È ÿ A r i a l 1 È ÿ A r i a l 1 È ÿ A r i a l 1 È ÿ A r i a l 1 È ÿ A r i a l 1 ð ÿ ¼ A r i a l 1 È A r i a l 1 È $ A r i a l 1 È ÿ¼ A r i a l 1 È A r i a l 3 # , # # 0 \
" ¬ " ; \ - # , # # 0 \ " ¬ " = # , # # 0 \ " ¬ " ; [ R e d ] \ - # , # # 0 \ " ¬ " ? # , # # 0 . 0 0 \ " ¬ " ; \ - # ,
# # 0 . 0 0 \ " ¬" I " # , # # 0 . 0 0 \ " ¬ " ; [ R e d ] \ -# , # # 0 . 0 0 \ " ¬ " q * 6 _ - * # , # # 0 \ " ¬ " _ - ; -\ - * # , # # 0 \ " ¬ " _ - ; _ - * " - " \ " ¬ " _ - ; _ - @ -_ - k ) 3 _ - * # , # # 0 \ _ ¬ _ - ; \ - * # , # # 0 \ _ ¬ - _ - ; _ - * " - " \ _ ¬ _ - ; _ - @ _ - , > _ - * # , # #
49
Étapes d’une étude empirique
1.
Objectif de l’étude
2.
Conception
3.
Techniques de collecte de données
4.
Considérations pratiques
5.
Techniques d’analyse de données
6.
Application des résultats
Considérations pratiques
Analyse
– Valider les mesures prises lors de l’expérience
– Analyser en utilisant des outils statistiques les données récolter pour confirmer ou réfuter l’hypothèse
Diffusion et prise de décision
– Les conclusions doivent être suffisamment commentées pour permettre à des tiers de répéter l’expérience – Trois utilisations des résultats
• Mettre en œuvre les changements suggérés
• Application des changement à une échelle plus grande
• Conduire des expériences plus précise pour des résultats plus précis
51
Considérations pratiques
Erreurs types
– Erreurs d'expérimentation – Erreurs d'observation – Erreurs de mesure
– Variation des ressources expérimentales – Effets combinés de variables non explicitement
pris en compte Remèdes
– Répéter l’expérience plutôt que la mesure – Utiliser une approche aléatoire pour éviter les
biais
52
Considérations pratiques
Des facteurs peuvent limiter les possibilités
d’interpréter et de tirer des conclusions des résultas Trois types de validité peuvent être affectés
– Validité de conclusion qui signifie que les conclusions tirées sont uniquement le résultat de l’impact des traitements sur les sorties
– Validité de construction qui signifie que les variables indépendantes et dépendantes modélisent adéquatement les hypothèses
– Validité interne qui signifie que les changements dans la variable dépendante peuvent être raisonnablement attribués aux changements dans les variables indépendantes
– Validité externe qui signifie que les résultats de l’études peuvent être généralisables à des cas qui ne sont pas inclus dans l’étude
53
Étapes d’une étude empirique
1.
Objectif de l’étude
2.
Conception
3.
Techniques de collecte de données
4.
Considérations pratiques
5.
Techniques d’analyse de données
6.
Application des résultats
Techniques d’analyse des données
Expérimentations ⇒ données
– Nombre de fautes par inspections…
– Valeurs de dizaine de métriques…
– Valeurs de métriques sur différentes versions…
Corrélations Règles
(Cf. chapitre 7)
55
Exemple
Voir étude empirique
C. Calero, H. Sahraoui, M. Piattini, An Empirical Study with Metrics for Object- Relational Databases, In the proc. of the 7th European Conference on Software Quality (ECSQ’02), 2002.