SACS: A Code Smell Dataset using Semi-automatic Generation Approach
Cet article présente SACS, un jeu de données open-source de haute qualité contenant plus de 10 000 échantillons étiquetés pour trois types de « code smells », généré grâce à une approche semi-automatique combinant des règles de génération automatique et une validation manuelle ciblée pour surmonter le manque de données fiables dans la détection de défauts de code.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
Imaginez que vous êtes un architecte chargé de rénover une immense ville de logiciels. Dans cette ville, certains bâtiments sont bien conçus, mais d'autres sont de véritables "maisons de l'horreur" : des couloirs interminables, des pièces qui servent à tout faire, ou des voisins qui empiètent constamment sur le terrain des autres. En informatique, on appelle ces défauts des "odeurs de code" (code smells). Si on ne les répare pas, la ville devient impossible à entretenir et à faire évoluer.
Le problème, c'est qu'entraîner des robots (des intelligences artificielles) à repérer et réparer ces défauts demande des millions d'exemples. Mais trouver ces exemples, c'est comme chercher des aiguilles dans une botte de foin, et les experts humains sont trop occupés pour les trouver un par un.
Voici comment l'équipe de l'Université Waseda (au Japon) a résolu ce casse-tête avec leur projet SACS.
1. Le Dilemme : Trop lent ou trop bête ?
Pour créer une base de données d'entraînement, les chercheurs avaient deux options, toutes deux imparfaites :
- L'option "Humaine pure" : Engager une armée d'experts pour lire chaque ligne de code. C'est très précis, mais c'est aussi lent et cher que de construire une cathédrale à la main.
- L'option "Robot pure" : Laisser un robot générer des exemples automatiquement. C'est rapide, mais le robot fait souvent des erreurs (comme créer un faux défaut là où il n'y en a pas).
2. La Solution Magique : L'Approche "Semi-Automatique"
Les chercheurs ont eu une idée brillante : le travail d'équipe entre un robot rapide et un expert vigilant. C'est comme un atelier de restauration de voitures de luxe.
Voici comment leur système fonctionne, étape par étape :
Étape 1 : Le Robot "Saboteur" (Génération Automatique)
Imaginez un robot qui prend des bâtiments normaux et bien construits, et qui les sabote intentionnellement pour créer des défauts.
- Il prend une petite pièce et la fusionne avec une autre pour créer un couloir géant (c'est l'odeur "Long Method" ou Méthode Longue).
- Il prend deux maisons voisines et les fusionne en une seule tour immense (c'est l'odeur "Large Class" ou Grande Classe).
- Il fait en sorte qu'un voisin utilise constamment les outils de l'autre sans permission (c'est l'odeur "Feature Envy" ou Envie de Fonctionnalité).
Le robot crée des milliers de ces "bâtiments abîmés" en quelques secondes.
Étape 2 : Le Tri par le "Mètre à Ruban" (Le Groupe A vs Le Groupe M)
Le robot ne peut pas tout faire. Il utilise ensuite des règles simples (comme un mètre à ruban) pour trier ses créations en deux piles :
- La Pile "A" (Automatique) : Le robot dit : "Regardez, ce bâtiment a 500 mètres de long ! C'est clairement trop grand. Je suis sûr à 100 % que c'est un défaut." → Ces exemples sont validés automatiquement et mis de côté.
- La Pile "M" (Manuelle) : Le robot dit : "Hum, ce bâtiment fait 25 mètres. C'est peut-être trop grand, peut-être pas. Je ne suis pas sûr." → Ces exemples sont "ambigus".
Étape 3 : L'Expert Humain (La Validation)
C'est ici que l'humain intervient, mais seulement sur la pile "M" (les cas douteux).
Au lieu de lire 100 000 bâtiments, l'expert ne regarde que les 10 000 cas où le robot hésitait. Il utilise un outil spécial (une sorte de plugin pour les développeurs) pour dire : "Oui, c'est bien un défaut, et voici comment le réparer."
3. Le Résultat : Le Trésor SACS
Grâce à cette méthode, ils ont créé SACS, une immense bibliothèque de données ouverte à tous.
- Elle contient plus de 10 000 exemples pour chaque type de défaut (Méthode Longue, Grande Classe, Envie de Fonctionnalité).
- C'est comme si on avait donné aux futurs robots de réparation une carte au trésor ultra-précise, validée par des experts humains sur les cas les plus difficiles.
En Résumé
Cette étude nous apprend que pour construire l'avenir de l'informatique (l'IA), on n'a pas besoin de choisir entre l'humain et la machine. La meilleure stratégie est de laisser la machine faire le gros œuvre (créer des milliers d'exemples) et de laisser l'humain se concentrer sur les cas difficiles où son jugement est indispensable.
C'est un peu comme si on utilisait un drone pour repérer les zones de la forêt où il y a peut-être un incendie, et qu'on n'envoyait les pompiers que sur les zones où le drone n'était pas sûr. Résultat : on sauve plus de forêts, plus vite, et avec moins de fatigue !
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.