← Derniers articles
💻 computer science

An Event-Driven Tool for Context-Aware Code Smell Detection Using SmellDSL

Cet article présente SmellHunter, un outil événementiel et conscient du contexte qui intègre des métriques de code statiques avec les métadonnées du projet et de l'équipe via un langage spécifique au domaine (SmellDSL) pour détecter les odeurs de code et fournir des informations exploitables et localisées afin d'éclairer les décisions de refactorisation dans l'environnement Eclipse.

Auteurs originaux : Matheus dos Santos Viegas, Adrian Gabriel Keller dos Santos, Kleinner Farias, Robson Keemps da Silva

Publié 2026-05-21
📖 5 min de lecture🧠 Analyse approfondie

Auteurs originaux : Matheus dos Santos Viegas, Adrian Gabriel Keller dos Santos, Kleinner Farias, Robson Keemps da Silva

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 gérez une bibliothèque massive, en croissance constante. Avec le temps, les livres deviennent désordonnés : certains ont des pages arrachées, d'autres sont écrits dans une écriture confuse, et certains sont bourrés de trop d'histoires sans rapport. Dans le monde du logiciel, ces désordres sont appelés des « odeurs de code ». Ils ne sont pas nécessairement du code cassé, mais ce sont des signes avant-coureurs que la conception devient négligente, ce qui rend le logiciel plus difficile à réparer et à mettre à jour plus tard.

Pendant longtemps, les outils utilisés pour détecter ces désordres ont été comme des bibliothécaires stricts avec un seul et unique règlement immuable. Ils parcouraient les livres et criaient : « Ce livre a trop de pages ! » ou « Ce chapitre est trop long ! », peu importe qui a écrit le livre, où se trouve la bibliothèque, ou ce que l'équipe du bibliothécaire juge réellement important. Cela conduisait souvent à de fausses alertes ou ignorait de vrais problèmes auxquels une équipe spécifique tenait.

SmellHunter est un nouvel outil plus intelligent conçu pour résoudre ce problème. Voici comment il fonctionne, en utilisant des analogies simples :

1. Le Règlement Personnalisé (SmellDSL)

Au lieu d'un règlement rigide et universel, SmellHunter permet aux équipes d'écrire leurs propres règlements personnalisés en utilisant un langage spécial appelé SmellDSL.

  • L'Analogie : Imaginez une équipe d'architectes qui décide que, pour leur projet de construction spécifique, une pièce avec 50 fenêtres est acceptable, mais qu'une porte ouvrant sur un mur est un désastre. SmellHunter leur permet de consigner ces règles spécifiques. Il ne cherche pas simplement une « désorganisation » générique ; il recherche la désorganisation spécifique qui intéresse cette équipe particulière.

2. Le Système de Livraison « Piloté par les Événements »

Les outils traditionnels fonctionnent souvent comme un trieur de courrier par lots : ils attendent la fin de la journée pour trier tout le courrier d'un coup, ce qui peut être lent et perturbateur. SmellHunter fonctionne comme un réseau de coursiers automatisé à grande vitesse.

  • L'Analogie : Dès qu'un développeur envoie une demande pour vérifier son code, c'est comme déposer un colis sur un convoyeur intelligent (appelé le Smell Bus).
    • Station 1 (Validation) : Un robot vérifie si le colis est bien scellé et si l'adresse est réelle.
    • Station 2 (Interprétation) : Un autre robot lit le règlement personnalisé et vérifie le code par rapport à celui-ci.
    • Station 3 (Stockage) : Un troisième robot classe les résultats dans une base de données cloud.
  • Parce que ces stations fonctionnent de manière indépendante et asynchrone, le développeur n'a pas besoin d'attendre. Il peut continuer à travailler pendant que les « coursiers » effectuent le gros du travail en arrière-plan.

3. Ajouter du Contexte : Le « Où » et le « Qui »

C'est la partie la plus unique. Les anciens outils disent simplement : « Il y a une odeur ici. » SmellHunter dit : « Il y a une odeur ici, dans cette ville spécifique, sur ce projet spécifique, géré par cette équipe spécifique. »

  • L'Analogie : Imaginez une carte de la bibliothèque. Au lieu de simplement marquer « Livre désordonné », SmellHunter marque « Livre désordonné dans la succursale de New York, écrit par l'Équipe Alpha, pendant le Pic d'Hiver ».
  • Cela aide les équipes à réaliser : « Oh, les livres désordonnés ne se produisent que dans la succursale de New York pendant l'hiver. » Ils peuvent alors envoyer un spécialiste (un « Chasseur d'Odeurs ») à cet endroit précis pour corriger la cause racine, plutôt que d'essayer de réparer chaque livre dans le monde entier.

4. Le Tableau de Bord et l'Application Mobile

L'outil se connecte aux ordinateurs des développeurs (via un plugin Eclipse) et à leurs téléphones (via une application mobile).

  • L'Analogie : C'est comme avoir un thermostat intelligent pour votre code. Vous pouvez voir la température (la qualité) de votre code sur l'écran de votre ordinateur pendant que vous travaillez. Si un problème apparaît, vous recevez une notification. Plus tard, vous pouvez sortir votre téléphone pour voir une carte thermique indiquant où se trouvent les « points chauds » (mauvaises odeurs) à travers différentes équipes et différents endroits, vous aidant à décider où envoyer vos meilleurs réparateurs.

Pourquoi cela importe-t-il ?

L'article affirme que SmellHunter change la donne en passant de règles statiques et universelles à un contexte dynamique et spécifique à l'équipe.

  • Il reconnaît que ce qui est une « mauvaise odeur » pour une équipe peut être acceptable pour une autre.
  • Il traite la qualité du code non seulement comme un problème technique, mais comme un problème humain et organisationnel qui varie selon l'endroit et la culture de l'équipe.
  • Il permet aux équipes d'agir comme des détectives, traquant des motifs spécifiques de dégradation dans leur propre environnement plutôt que de suivre une liste de contrôle générique.

En bref, SmellHunter est un détective conscient du contexte et piloté par les événements qui aide les équipes logicielles à trouver et réparer leurs désordres de conception spécifiques sans interrompre leur travail quotidien, en utilisant des règles personnalisées et des données de localisation réelles pour guider la voie.

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.

Essayer Digest →