ift3913 qualité du logiciel et métriques chapitre...
TRANSCRIPT
1
IFT3913Qualité du logiciel et métriques
Chapitre 6Études empiriques
2
Plan du cours
IntroductionModèles de processus du développement du logicielQualité du logicielThéorie de la mesureMesure de la qualité du logicielÉtudes empiriquesMesure du produit logicielCollection et analyse des métriques
2
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 organisationsAbsence 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’étude2. Conception3. Techniques de collecte de données4. Considérations pratiques5. Techniques d’analyse de données6. Application des résultats
3
5
Objectif de l’étude
Choisir le type d’étudeDéfinir et énoncer les hypothèsesDéfinir et étudier les variablesInterpréter et généraliser les résultats
6
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
4
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é ?
5
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 »
10
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 »
6
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 ?
7
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
14
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
8
15
Choisir le type d’étude
Étude d’ensemble/sondage/enquête
0,5IND
4,517,510,530,236,323/01
6,011,317,728,137,021/016,011,018,027,037,021/015,610,617,430,136,422/016,011,019,027,037,022/014,012,019,027,038,022/01
VERTBQNPDLIBCONDates
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…
9
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 »
18
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 »
10
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
11
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
22
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’étudeLes résultats de l’étude sont représentés par les valeurs des variables dépendantes
12
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 à
manipulerEx. : « ambiance dans la compagnie, état d’esprit des développeurs »Pour « éliminer » les variables parasites, essayer de maintenir leurs effets constantsEx. : « mesurer le travail des développeurs sur plusieurs jours représentatifs »
13
25
Définir et étudier les variables
Dans le cas d’une étude d’ensemble, on ne peut pas définir de variablesDans le cas d’une étude de cas,les variables indépendantes prennent les valeurs typiques du casDans le cas d’une expérience, un échantillonnage est effectué en fonctions des variables indépendantesUne expérience permet une meilleure généralisation des résultats qu’une étude de cas
26
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
14
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
15
29
Étapes d’une étude empirique
1. Objectif de l’étude2. Conception3. Techniques de collecte de données4. Considérations pratiques5. Techniques d’analyse de données6. Application des résultats
30
ExpérienceObjectif : tester une hypothèseDé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 les résultats de l'expérience
16
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érienceAnalyse– 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
17
33
Étapes d’une étude empirique
1. Objectif de l’étude2. Conception3. Techniques de collecte de données4. Considérations pratiques5. Techniques d’analyse de données6. Application des résultats
34
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
18
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
19
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
38
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%
20
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 p diminue (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…)
21
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
42
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,RolesE1,12,3,3,45,1E2,23,1,0,89,0E3,8,2,5,36,1…
22
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}
@DATA12,3,3,45,123,1,0,89,08,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
23
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
46
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></ObjectProperties>
</Object>...
24
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 \ _ ¬
- _ - ; _ - * " - " \ _ ¬ _ - ; _ - @ _ - � � �, > _ - * # , # #
25
49
Étapes d’une étude empirique
1. Objectif de l’étude2. Conception3. Techniques de collecte de données4. Considérations pratiques5. Techniques d’analyse de données6. Application des résultats
50
Considérations pratiquesAnalyse– 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
26
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 pratiquesDes facteurs peuvent limiter les possibilités d’interpréter et de tirer des conclusions des résultasTrois 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
27
53
Étapes d’une étude empirique
1. Objectif de l’étude2. Conception3. Techniques de collecte de données4. Considérations pratiques5. Techniques d’analyse de données6. Application des résultats
54
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élationsRègles(Cf. chapitre 7)
28
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.