Détail du sujet

30/11/2018 Sujet 32 :  Similarités de projets sur GIT
Auteur : Jean-Claude Tarby  Ecrire 
(Responsable Informatique : Jean-Claude Tarby  Ecrire )
Sujet recherche

Contexte
Dans le cadre du plugin VisUML (http://these.mickaelduruisseau.fr/VisUML/doc/index.html), nous avons ajouté la création automatique de tags dans le diagramme de classe créé à partir du code source et des commentaires inclus dans ce code. Ainsi, un développeur verra que sa classe C (qui est par exemple une classe gérant des transformations de données) affiche des tags tels que 'transformation', 'data', 'pattern Factory', 'XML', CSV',... Cela permet une lecture plus complète du diagramme de classe (en plus du nom des méthodes et des attributs affichés habituellement), mais surtout ces tags peuvent être utilisés de multiples façons.

Problématique
Nous voulons voir si de tels tags permettent de trouver du code similaire dans l'entreprise où travaille le développeur, mais aussi sur le net. Ainsi, ces tags peuvent être rapprochés des tags générés par d'autres développeurs dans l'entreprise ou sur le net (projets Github par exemple). Il est donc possible de calculer le degré de similarité entre le code en cours d'écriture et du code existant. Par exemple, si la classe C a 97% de similarité avec une classe C1 d'un projet Github et que le package de C a 90% de similarité avec le package de C1, alors on peut penser que les classes C et C1 sont très similaires et donc aller voir ce que contient C1 et le projet associé.

Travail à effectuer
Le travail débutera par la recherche d'algorithmes de comparaison sur de tels tags (en s'inspirant sur les algos de similarité de documents). Des tests de ces algos viendront ensuite pour voir lequel ou lesquels sont les plus intéressants. Ensuite des tests à grande échelle seront à effectuer sur des projets existants (en local et sur github).

Bibliographie
https://hal.inria.fr/lirmm-00995948/

Autres informations
Le taggage de documents est un domaine de recherche dans lequel il faudra se plonger pour y chercher d'éventuelles solutions.

Liens associés :
Sujet non-attribué