SACS: A Code Smell Dataset using Semi-automatic Generation Approach
Die Studie stellt SACS vor, einen Open-Source-Datensatz für Code-Smells, der durch einen halbautomatischen Ansatz mit automatischer Generierung und gezielter manueller Validierung erstellt wurde, um hochwertige Trainingsdaten für die Erkennung von Code-Smells wie „Long Method", „Large Class" und „Feature Envy" bereitzustellen.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich vor, Software ist wie ein riesiges, komplexes Haus, das Architekten und Handwerker (die Programmierer) bauen. Mit der Zeit, wenn man ständig neue Möbel hinzufügt oder Wände durchbricht, ohne das Grundgerüst zu planen, wird das Haus unordentlich. Man nennt diese Unordnung in der Software-Welt „Code Smell" (auf Deutsch: „Code-Gestank").
Ein „gestankender" Code ist nicht kaputt – das Haus steht noch und funktioniert – aber es ist schwer zu reinigen, schwer zu erweitern und macht die Bewohner (die Entwickler) unglücklich. Beispiele dafür sind:
- Lange Methoden: Ein Zimmer, das so lang ist, dass man den Ausgang nicht mehr sieht (eine Funktion mit hunderten Zeilen Code).
- Große Klassen: Ein riesiger Raum, in dem alles und jeder auf einmal wohnt, was Chaos verursacht.
- Neidische Merkmale (Feature Envy): Eine Person, die ständig in das Zimmer eines anderen schaut und dort Dinge tut, die eigentlich zu ihrem eigenen Zimmer gehören.
Das Problem: Um Software wieder sauber zu machen (das nennt man „Refactoring"), braucht man eine Liste dieser Gestankstellen. Aber diese Liste manuell zu erstellen, ist wie nach der Nadel im Heuhaufen zu suchen – extrem mühsam und teuer.
Hier kommt die Studie von Zhang und Kishi ins Spiel. Sie haben einen cleveren Weg gefunden, um diese Liste zu erstellen, den sie SACS nennen. Man kann sich ihren Ansatz wie einen halb-automatischen Staubsauger mit menschlicher Kontrolle vorstellen.
Wie funktioniert der „halb-automatische Staubsauger"?
Stellen Sie sich drei Schritte vor:
1. Der künstliche Gestank (Die automatische Erzeugung)
Statt zu warten, bis jemand versehentlich einen riesigen, unordentlichen Raum baut, bauen die Forscher diese Räume absichtlich.
- Die Analogie: Stellen Sie sich vor, Sie haben eine saubere Bibliothek. Um zu testen, wie man ein Chaos erkennt, nehmen Sie einen Roboter und lassen ihn absichtlich Bücher in einen einzigen, riesigen Stapel werfen (Lange Methode) oder zwei Regale in einem Raum zusammenwerfen (Große Klasse).
- Der Computer macht das sehr schnell und erzeugt tausende von „gestankenden" Beispielen.
2. Der Filter (Die Gruppierung)
Jetzt haben sie eine riesige Menge an Beispielen. Aber nicht alle sind gleich schlecht. Manche sind offensichtlich chaotisch, andere sind nur „etwas unordentlich".
- Die Analogie: Stellen Sie sich vor, Sie haben einen Filter, der wie ein Sieb funktioniert.
- Der „A-Gruppe"-Filter: Alles, was offensichtlich und extrem chaotisch ist (z. B. ein Stapel Bücher, der 10 Meter hoch ist), wird automatisch als „gestankend" akzeptiert. Kein Mensch muss das ansehen.
- Der „M-Gruppe"-Filter: Alles, was in einer Grauzone liegt (z. B. ein Stapel, der vielleicht 3 Meter hoch ist – ist das jetzt schon zu viel?), wird in einen Korb für die menschliche Prüfung gelegt.
- Das spart enorm viel Zeit, weil die Menschen nur auf die schwierigen Fälle schauen müssen, nicht auf die offensichtlichen.
3. Der menschliche Prüfer (Die manuelle Kontrolle)
Hier kommen die Experten ins Spiel. Sie schauen sich nur die „Grauzone"-Körbe an.
- Die Analogie: Ein erfahrener Hausmeister schaut sich die zweifelhaften Stapel an und sagt: „Ja, das ist wirklich zu viel, das müssen wir sortieren" oder „Nein, das ist noch okay".
- Um ihnen die Arbeit zu erleichtern, haben die Forscher ein spezielles Werkzeug (ein Plugin für Programmier-Software) gebaut, das wie ein interaktiver Notizblock funktioniert, in dem man mit einem Klick markieren kann, wo genau das Problem liegt.
Das Ergebnis: SACS
Am Ende haben sie einen riesigen, kostenlosen Datensatz namens SACS erstellt.
- Es ist wie eine riesige Bibliothek mit über 10.000 Beispielen pro Kategorie (Lange Methoden, Große Klassen, Neidische Merkmale).
- Dieser Datensatz ist für andere Forscher und KI-Systeme gedacht. Stellen Sie sich vor, Sie wollen eine KI trainieren, die automatisch Unordnung in Software erkennt. Dafür braucht man tausende von Beispielen, damit die KI lernt, was „Gestank" ist. SACS ist genau diese Trainingsbibliothek.
Warum ist das wichtig?
Früher musste man entweder:
- Alles manuell machen: Wie wenn 20 Menschen wochenlang Bücher sortieren müssten. (Sehr teuer, langsam).
- Alles automatisch machen: Wie wenn ein Roboter alles wirft. (Schnell, aber oft falsch, weil der Roboter manchmal auch saubere Bücher als „schmutzig" markiert).
Die Methode von Zhang und Kishi ist der beste Kompromiss: Der Roboter macht den schweren, dreckigen Teil (das Erstellen der Beispiele), und die Menschen machen nur den feinen, kritischen Teil (das Prüfen der Zweifelhaften). So entsteht eine riesige, hochwertige Datenbank, die hilft, Software in Zukunft sauberer und besser wartbar zu halten.
Kurz gesagt: Sie haben einen Weg gefunden, künstlich Chaos zu erzeugen, es intelligent zu sortieren und dann von Experten prüfen zu lassen, um eine perfekte „Lehrbuch"-Sammlung für Software-Reinigung zu bauen.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.