← Nieuwste papers
💻 computer science

The Influence of Code Smells in Efferent Neighbors on Class Stability

Deze studie onderzoekt of de aanwezigheid van code smells in de efferente buren van een klasse, rekening houdend met hun onderlinge interactie, de stabiliteit van die klasse beïnvloedt, door middel van een analyse van één jaar commitgeschiedenis uit 100 populaire GitHub-projecten.

Oorspronkelijke auteurs: Zushuai Zhang, Elliott Wen, Ewan Tempero

Gepubliceerd 2026-02-17
📖 4 min leestijd☕ Koffiepauze-leesvoer

Oorspronkelijke auteurs: Zushuai Zhang, Elliott Wen, Ewan Tempero

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Het Grote Idee: Waarom vallen gebouwen soms in elkaar?

Stel je voor dat software een enorm, complex gebouw is. Elke kamer in dat gebouw is een klasse (een stukje code). De bouwers (ontwikkelaars) moeten constant aanpassingen doen: een raam vervangen, een muur schilderen of een nieuwe deur toevoegen.

Soms is een kamer zo slecht ontworpen dat hij vaak gerepareerd moet worden. In de programmeerwereld noemen we deze slechte ontwerpelementen "code geuren" (code smells). Het zijn geen echte geurtjes, maar visuele aanwijzingen dat er iets mis is, zoals een kamer die te vol staat met spullen of een kamer die alles zelf moet doen.

Het oude idee:
Tot nu toe dachten onderzoekers: "Als een kamer slecht is ontworpen (een 'geur' heeft), dan moet die kamer vaak worden gerepareerd." Dat klopt, maar het verhaal is niet compleet.

Het nieuwe idee van dit onderzoek:
De onderzoekers van de Universiteit van Auckland kijken naar iets anders. Ze vragen zich af: "Wat gebeurt er als de kamer zelf perfect is, maar de kamers waar hij mee verbonden is, slecht zijn?"

De Analogie: De "Rimpel-effect"

Stel je voor dat je in een appartement woont (de focale kamer). Je hebt zelf geen last van lekkage of slechte muren. Maar je woont op de bovenverdieping van een appartementencomplex.

  1. De buren (Efferente buren): Je bent afhankelijk van de buurman onder je. Als hij zijn badkamer verbouwt, moet hij misschien je vloer openbreken.
  2. De slechte buur: Stel dat die buurman een zeer slecht ontworpen badkamer heeft (een code geur). Hij maakt vaak fouten, lekt vaak en moet vaak worden gerepareerd.
  3. Het gevolg: Omdat jouw badkamer (jouw code) direct verbonden is met die van hem, moet jij elke keer dat hij zijn badkamer repareert, ook even je eigen vloer aanpassen. Zelfs als jouw kamer perfect is!

Dit noemen de onderzoekers het rimpel-effect. Als je buren (de kamers waar je code van afhankelijk is) "stinken" (slecht ontworpen zijn), moet jij vaker werken, zelfs als jij zelf schoon en netjes bent.

Wat gaan ze precies onderzoeken?

De onderzoekers hebben 100 populaire software-projecten van GitHub (zoals grote, bekende apps) onder de loep genomen. Ze hebben de afgelopen jaar van deze projecten gekeken naar elke wijziging die is gemaakt.

Ze kijken naar drie specifieke situaties:

  1. De "Stinkende" Kamer zelf:

    • Vraag: Moet een kamer vaker worden gerepareerd als hij zelf een slecht ontwerp heeft?
    • Verwachting: Ja, dat weten we al.
  2. De "Stinkende" Buren:

    • Vraag: Moet een perfecte kamer vaker worden gerepareerd als zijn buren slecht zijn?
    • Verwachting: Ja, dat is het nieuwe inzicht. De slechte buren veroorzaken extra werk voor jou.
  3. De "Koppelende" en "Interagerende" Geuren:

    • Dit is het meest complexe deel.
    • Koppeling: Stel, jij hebt een slechte kamer én je buurman heeft een slechte kamer. Dat is al erg.
    • Interactie: Maar wat als die twee slechte kamers direct aan elkaar vastzitten met een deur die open en dicht gaat? Als de buurman iets doet, moet jij direct iets doen, en andersom.
    • Vraag: Is dit nog erger? Moet je dan nog vaker werken dan bij alleen maar slechte buren?
    • Verwachting: Ja, deze directe verbinding tussen twee slechte stukken code maakt het systeem extreem onstabiel.

Waarom is dit belangrijk?

In het dagelijks leven zou je zeggen: "Ik moet mijn eigen kamer netjes houden, maar ik moet ook opletten met wie ik samenwerk."

Voor softwareontwikkelaars betekent dit:

  • Het is niet genoeg om alleen je eigen code schoon te houden.
  • Je moet ook kijken naar de code waar je van afhankelijk bent. Als die "stinkt", moet je die misschien eerst oplossen (refactoren) voordat je zelf verder kunt, of je moet rekening houden met de extra onrust die dat veroorzaakt.
  • Het helpt bij het bepalen van prioriteiten: Welke stukken code moeten we eerst opknappen om de meeste rust in het hele systeem te creëren?

Samenvatting in één zin

Dit onderzoek bewijst dat je software niet alleen stabiel houdt door je eigen werk goed te doen, maar ook door te zorgen dat de "buren" (de code waar je van afhankelijk bent) niet in de war zijn, want hun rommel zorgt voor extra werk voor jou, zelfs als jij zelf perfect bent.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →