WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Prédiction de défauts logiciel utilisant des techniques d'apprentissage automatique


par Amina Oulaceb
Université Mohammed Cherif Messadia - Master informatique en génie logiciel 2021
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Abstract

Software systems have become bigger and more complex than ever. Such characteristics make it very difficult to prevent software defects. The discovery of software defects at an early stage plays an important role in improving the quality of the software; reduces the time and effort that should be spent on software development. Various approaches have been proposed to identify and correct such defects at minimal cost. However, the performance of these approaches requires significant improvement. Therefore, in this work, we propose a novel SFP-NN approach that takes advantage of deep learning techniques to predict faults in software systems. First, we start with a preprocessing phase of the publicly available dataset. Second, we perform data modeling to prepare the input data for the deep learning model. Third, we feed the modeled data to a convolutional neural network-based model to predict the probability of defects. To validate our approach, the experiments are carried out on fourteen (14) data sets from NASA and SOFTLAB. Experimental results showed that, in the majority of databases, SFP-NN performed better compared to other machine learning techniques.

Keywords: Software Fault Prediction, Machine Learning, Deep Learning, Convolutional Neural Network, Classification.

VII

Table de matières

Table des matières

Remerciment II

Dédicace III

Résumé IV

ÕÎáã V

ABSTRACT VI

Table de matières VII

Liste des figures X

Liste des tables XI

Liste des abréviations XII

Introduction générale 1

Chapitre 1 :Prédiction des défauts logiciels 5

1. Introduction 6

2. Étude sur la prédiction des défauts logiciels 6

2.1. Définition 6

2.2. Processus de prédiction des défauts logicie 7

2.2.1. Base de données des défauts logiciels 8

2.2.2. Phase de prétraitement 8

2.2.3. Phase d'apprentissage des données 8

2.2.4. Phase de prédiction des défauts 9

3. État de l'art 9

3.1. Questions de recherche 9

4. Conclusion 19

Chapitre 2 : Apprentissage automatique 20

1. Introduction 21

2. Apprentissage supervisé 21

2.1. Définition 21

2.2. Les techniques d'apprentissage supervisé 22

2.2.1. Machine à vecteur support 22

2.2.2. Réseau de neurone artificiels 24

2.2.3. Les forêts d'arbre décisionnels 24

3. Apprentissage non supervisé 25

3.1.Définition 25

3.2. Les techniques d'apprentissage non supervisé 26

VIII

Table de matières

3.2.1. L'algorithme k-moyennes 26

3.2.2. Classification hiérarchique 27

3.2.3. Algorithme d'espérance maximisation 27

4. Apprentissage profond 28

4.1. Définition 28

4.2. Les réseaux de neurones convolutifs 28

4.2.1. Présentation 29

4.2.2. Blocs de construction 30

4.2.2.1. Couche de convolution 30

4.2.2.2. Couche de pooling 32

4.2.2.3. Couche de correction 33

4.2.2.4. Le flattening 34

4.2.2.5. Couche entièrement connecté 35

4.2.2.6. Couche de perte 35

4.2.3. Choix des hyperparamètres 36

4.2.3.1.Nombre de filtres 36

4.2.3.2. Forme de filtres 36

4.2.3.3. Forme du maxpooling 36

5. Conclusion 37

Chapitre 3 : SFP-NN Apprentissage profond pour la prédiction des défauts logiciels 38

1. Introduction 39

2. Approche proposée 39

2.1. La base de données NASA et SOFTLAB 40

2.1.1. Présentation des bases de données 43

2.1.2. Les métriques de la NASA MDP et SOFTLAB 42

2.2. Normalisation 46

2.3. Prédiction utilisant CNN 47

2.4. Choix des hyperparamètres 48

3. Conclusion 50

chapitre 4 : Implémentation 51

1. Introduction 52

2. Implémentation du SF-NN proposé 52

2.1. Environnement de développement 52

2.1.1. Langage de développement python 52

2.1.1.1.Caractéristiques du langage de développement python 52

2.1.1.2.Bibliothèques utilisées de python 53

2.1.2. Environnement google colab 54

2.2. Présentation de déroulement de l'application 55

2.2.1. Importation des bibliothèques 55

2.2.2. Description de la base de données utilisée 56

2.2.3. Prétraitement des données 57

2.2.4. Apprentissage et création du modèle CNN 58

3. Résultats obtenus 59

IX

Table de matières

3.1.La précision et la perte du SFP-NN proposé 59

3.2. Matrice de confusion 64

3.3. Calcul de l'AUC 67

4. Comparaison de l'approche proposée 70

4.1. Les paramètres expérimentaux 70

4.2. Résultats obtenus 70

4.3. Discussions 73

5. Conclusion 74

Conclusion générale 75

Bibliographie 77

X

Liste des Figures

Liste des Figures

Figure 1.1 : Processus de prédiction de défauts logiciel. 7

Figure 1.2 : Métriques OO utiles pour la prédiction des défauts logiciels. 12

Figure 1.3 : Ensembles de données pour la prédiction des défauts logiciels. 13

Figure 2.1 : Processus d'apprentissage supervisé 22

Figure 2.2 : Séparateur à vaste marge. 23

Figure 2.3 : Réseaux de neurones artificiels. 24

Figure 2.4 : Les Forêts d'Arbres Décisionnels. 25

Figure 2.5 : Apprentissage non supervisé. 26

Figure 2.6 : Architecture de réseau de neurones convolutifs. 30

Figure 2.7 : Couche de convolution. 31

Figure 2.8 : L'opération de convolution. 31

Figure 2.9 : Type de pooling. 33

Figure 2.10 : La fonction d'activation ReLU 34

Figure 2.11 : Mise à plat des images finales. 35

Figure 3.1 : Schéma du SFP-NN proposé. 40

Figure 3.2 : La carte thermique de quelques bases de données de la NASA. 46

Figure 3.3 : Architecture de réseau CNN. 47

Figure 4.1 : Google Collab. 55

Figure 4.2 : Importation des bibliothèques. 56

Figure 4.3 : Base de données PC1. 56

Figure 4.4 : Base de données AR1. 56

Figure 4.5 : Lecture de l'ensemble de données. 57

Figure 4.6 : Préparation des données . 57

Figure 4.7 : Partitionnement d'ensemble de données. 58

Figure 4.8 : Le code du CNN. 59

Figure 4.9 : La précision et le taux de perte de notre modèle CNN. 64

Figure 4.10 : Matrices de confusions obtenues. 66

Figure 4.11 : Présentation des courbes ROC des différentes bases de données. 70

XI

Liste des Tables

Liste des Tables

Table 1.1 : Question de recherches 10

Table 1.2 :Matrice de confusion 14

Table 1.3 :Prédiction des défauts logiciels : état de l'art 17

Table 3.1 : Présentation de l'ensemble de données utilises 42

Table 3.2 : Description de l'ensemble de données utilises 42

Table 3.3 : Les paramétres du classifieur CNN utilisé 50

Table 4.1 : Performance des prédicteurs utilisant CNN sur les données de la NASA et SOFTLAB

59

Table 4.2 : Le réseau de neurones convolutifs résultats obtenus 67

Table 4.3 :Résultats obtenus du classifieur svm 71

Table 4.4 : Résultats obtenus du classifieur Foret aléatoire 71

Table 4.5 : ésultats obtenus du classifieur Régression logistique 72

Table 4.6 : Comparaison de l'approche proposé avec les techniques traditionelles d'apprentissage

automatique 73

XII

Liste des abréviations

La liste des abréviations

IA Intelligence Artificial

ML Machine Learning

SFP Software fault prediction

SFP-NN Software fault prediction-neural network

CNN Les réseaux de neurones convolutif.

DL Deep Learning

MDP Metrics data program

ANN Artificiel neural network

SVM Support Vector Machines.

RF Random Forest

LR Logestique regression

NB Naïve bayes

EM Des algorithmes de maximisation de l'espérance.

RNN Le reseau neuronal récurrent.

TN True Négative

FP False Positive

TVP Taux de vrais positifs

DNN Deep neural network

ReLu Unité Linéaire Rectifiée

AUC Area Under curv

LOC Ligne of code

MLP Multi Layers Perceptron

NN Neural network

OO Orienté objet

Introduction Générale 1

précédent sommaire suivant






La Quadrature du Net