← Derniers articles
💻 computer science

The Influence of Code Smells in Efferent Neighbors on Class Stability

Cette étude examine comment la présence de code smells chez les voisins efferents d'une classe, ainsi que leurs interrelations et interactions, influencent la stabilité de cette classe en analysant l'historique des commits de 100 projets GitHub.

Auteurs originaux : Zushuai Zhang, Elliott Wen, Ewan Tempero

Publié 2026-02-17
📖 4 min de lecture☕ Lecture pause café

Auteurs originaux : Zushuai Zhang, Elliott Wen, Ewan Tempero

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 le chef d'un grand restaurant très populaire. Votre cuisine est votre logiciel, et chaque plat que vous servez est une classe de code.

Pour que le restaurant fonctionne bien, les plats doivent être faciles à modifier si un client fait une remarque ou si vous voulez ajouter une nouvelle recette. C'est ce qu'on appelle la stabilité : un plat stable est facile à ajuster sans tout casser.

Mais parfois, un plat devient difficile à modifier. Pourquoi ? Souvent, parce qu'il y a des problèmes cachés dans la recette elle-même (on appelle ça des "odeurs de code" ou code smells). Par exemple, une recette trop longue, un chef qui fait tout lui-même, ou des ingrédients mal rangés.

Le problème que cette étude veut résoudre

Jusqu'à présent, les experts en cuisine (les chercheurs en informatique) se sont surtout demandé : "Est-ce que ce plat est mal fait ?". S'il l'est, ils savent qu'il sera difficile à modifier.

Mais cette étude pose une question plus subtile et très importante :
"Et si le plat en lui-même est parfait, mais que les ingrédients qu'il utilise viennent d'un fournisseur qui a des problèmes ?"

Dans notre analogie :

  • Le plat (la classe) : C'est votre recette.
  • Les voisins efférents (efferent neighbors) : Ce sont les autres plats ou les fournisseurs dont votre recette dépend. Par exemple, votre "Sauce Béchamel" dépend de votre "Beurre" et de votre "Farine".
  • Les odeurs de code chez les voisins : Imaginez que votre fournisseur de beurre (un autre plat) a une cuisine en désordre, qu'il utilise des outils cassés ou qu'il mélange tout.

La théorie de l'étude : Même si votre recette de Béchamel est parfaite, si le fournisseur de beurre change souvent son processus (à cause de son désordre), vous serez obligé de modifier votre recette à chaque fois pour vous adapter. Votre recette devient donc instable à cause des problèmes de vos voisins, même si vous n'avez rien fait de mal !

Les deux nouveaux concepts clés

Les chercheurs ont aussi regardé deux phénomènes intéressants :

  1. La "Collocation" (Les odeurs qui s'accumulent) :
    C'est comme si votre propre cuisine avait à la fois un four cassé, un évier qui fuit et un réfrigérateur bruyant. Plus il y a de problèmes dans un seul endroit, plus c'est difficile à gérer. Les chercheurs savent déjà que ça aide, mais ils voulaient vérifier si c'est vrai pour les voisins aussi.

  2. L'"Interaction" (Le lien direct) :
    C'est le cas le plus grave. Imaginez que votre four (dans votre cuisine) est directement branché sur le compteur électrique défectueux du fournisseur de beurre. Si le fournisseur change quelque chose, ça fait sauter votre four instantanément.
    Dans le code, c'est quand un problème dans un plat A est directement connecté par un lien technique à un problème dans le plat B. Cela crée une réaction en chaîne (un "effet de ripple") qui rend tout le système très fragile.

Comment ils ont fait leur enquête ?

Pour prouver tout ça, les chercheurs (Zhang, Wen et Tempero) ont joué aux détectives :

  • Le terrain de jeu : Ils ont choisi 100 des restaurants les plus célèbres du monde (les projets les plus "étoilés" sur GitHub).
  • La période d'observation : Ils ont regardé ce qui s'est passé pendant un an.
  • La méthode :
    1. Ils ont pris une photo de la cuisine à un moment donné pour repérer les problèmes (les odeurs de code) et les liens entre les plats.
    2. Ensuite, ils ont regardé toutes les modifications apportées à ces plats pendant l'année suivante.
    3. Ils ont compté : Combien de fois ce plat a-t-il été touché ? et Combien de changements a-t-il fallu faire ?

Ce qu'ils espèrent découvrir

Ils veulent savoir si, statistiquement, les plats qui dépendent de voisins "sales" ou "désordonnés" sont plus souvent modifiés et plus difficiles à gérer.

Pourquoi est-ce important ?
Si c'est vrai, cela change la façon dont les chefs (les développeurs) travaillent. Au lieu de seulement nettoyer leur propre cuisine, ils devront aussi surveiller la qualité de leurs fournisseurs. Si un fournisseur est trop désordonné, il vaut mieux peut-être changer de fournisseur ou aider à nettoyer sa cuisine, sinon votre propre restaurant va souffrir de changements constants et d'erreurs.

En résumé

Cette étude dit : "Ne regardez pas seulement votre propre assiette. Regardez aussi ceux qui vous apportent les ingrédients. Si vos voisins ont des problèmes, votre propre travail va devenir instable, même si vous êtes un chef parfait."

C'est une étude rigoureuse qui utilise des mathématiques pour confirmer cette intuition, afin d'aider les équipes à construire des logiciels plus solides et plus faciles à entretenir.

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 →