Collections de documents électroniques
RECHERCHER

Vers une nouvelle approche basée sur l'apprentissage profond pour la classification des changements du code source par activités de maintenance

Téléchargements

Téléchargements par mois depuis la dernière année

Benjillali, Marouane (2023). Vers une nouvelle approche basée sur l'apprentissage profond pour la classification des changements du code source par activités de maintenance. Mémoire. Rimouski, Université du Québec à Rimouski, Département de mathématiques, informatique et génie, 166 p.

[thumbnail of Marouane_Benjillali_juillet2023.pdf]
Prévisualisation
PDF
Télécharger (6MB) | Prévisualisation

Résumé

« Le domaine du développement logiciel possède une vraie mine d'information qui est sous forme d'historique de changements appliqués aux logiciels pendant leur cycle de vie. En effet, cet historique dont une partie importante est publiquement accessible à partir des systèmes de contrôle de versions fait l'objet d'exploration et d'analyse scientifique à travers le domaine du forage des référentiels de logiciels (MSR pour Mining Software Repositories en anglais) dont le but est d'améliorer plusieurs aspects rencontrés par les parties prenantes pendant le développement d'un logiciel. Dans ce travail, nous nous sommes intéressés à la détermination des types d'activité de maintenance qui sont présents dans une modification du code source. Plusieurs études se sont intéressées à ce sujet, et l'ont traité en exploitant les informations fournies par un programmeur comme le message décrivant les changements effectués ainsi que le code modifié qui est sous forme d'ajout et suppression de lignes de code. Cependant, la majorité d'entre elles considèrent qu'un changement comprend un seul type d'activité de maintenance, ce qui n'est pas toujours vrai en pratique. Ensuite, dans leurs exploitations des données textuelles, ces études se limitent au message alors que ce dernier comprend souvent seulement une description du code modifié et non la raison du changement. Et puis, dans leurs approches, elles se limitent à étudier des projets utilisant le même langage de programmation. À travers cette étude, nous répondons à ces enjeux en proposant un modèle de classification par activités de maintenance basé sur des modèles en apprentissage profond, qui seront également responsables de l'extraction de caractéristiques, que ce soit à partir d'une information textuelle (le message et la proposition de changement) ou du code modifié, indépendamment de son langage de programmation. Nous proposons également un nouveau jeu de données pour cette tâche afin de répondre à un autre enjeu qui est la rareté des jeux de données disponibles. Ce jeu de données tient compte du fait qu'un changement peut appartenir à plusieurs classes de changements. L'architecture de notre modèle est composée d'un modèle préentrainé permettant la génération des représentations distribuées des données textuelles, en plus d'un classificateur sous forme d'un réseau de neurones qui prendra en entrée la sortie du modèle préentrainé en plus des caractéristiques qui concernent le code modifié. Notre approche, dont l'entraînement est basé sur un apprentissage par transfert, a donné des résultats encourageants non seulement sur notre jeu de données, mais aussi en ce qui concerne le support des jeux de données des travaux reliés.-- Mots-clés : Activités de maintenance, systèmes de contrôle de version, forage des référentiels de logiciels, apprentissage. »--
« Software development has a wealth of information in the form of a history of changes applied to software during its life cycle. Indeed, a part of this history, publicly accessible from version control systems, is the subject of exploration and scientific analysis through mining software repositories (MSR). MSR aims to facilitate and improve several aspects stakeholders encounter during software development. In this work, we are interested in determining the types of maintenance activity present in modifying the source code. Several studies have been interested in this subject and have dealt with it by exploiting the information provided by a programmer, like a message describing the changes made and the modified code in the form of added and removed lines of code. However, most consider that a change includes only one type of maintenance activity, which is not always accurate in practice. Also, in using textual data, these studies limit themselves to the message, which often includes only a description of the modified code and not the reason for the change. Additionally, their approaches limit themselves to studying projects that use the same programming language. Through this study, we respond to these challenges by proposing a classification model by maintenance activities based on deep learning models. It will also be responsible for feature extraction, whether from textual information (message and issue description) or modified code, regardless of its programming language. We also provide a new dataset for this task to address another issue: the scarcity of available datasets. This dataset takes into account the fact that a change can belong to several classes of changes. The architecture of our model is composed of a pre-trained model allowing the generation of distributed representations of textual data, in addition to a classifier in the form of a neural network. This network inputs are the output of the pre-trained model and the characteristics related to the modified code. Our approach, whose training is based on transfer learning, has given encouraging results not only on our dataset but also on the support of related work datasets.-- Keywords : Maintenance activities, version control systems, software repository mining, deep learning, transfer learning, distributed representation, classification. »--

Type de document : Thèse ou mémoire de l'UQAR (Mémoire)
Directeur(trice) de mémoire/thèse : Khriss, Ismaïl
Information complémentaire : Mémoire présenté dans le cadre du programme de maîtrise en informatique en vue de l'obtention du grade de maître ès science (M. Sc.)
Mots-clés : Classification ; Code source (Informatique) ; Maintenance de fichiers (Informatique) ; Apprentissage profond ; Activités de maintenance ; Systèmes de contrôle de version ; Référentiels de logiciels.
Départements et unités départementales : Département de mathématiques, informatique et génie > Informatique
Déposé par : DIUQAR UQAR
Date de dépôt : 30 janv. 2024 14:13
Dernière modification : 30 janv. 2024 14:13
URI : https://semaphore.uqar.ca/id/eprint/2807

Actions (administrateurs uniquement)

Éditer la notice Éditer la notice