2025-11-23T09:49:16.774551

Readability and Understandability of Snippets Recommended by General-purpose Web Search Engines: a Comparative Study

Dantas, Maia
Developers often search for reusable code snippets on general-purpose web search engines like Google, Yahoo! or Microsoft Bing. But some of these code snippets may have poor quality in terms of readability or understandability. In this paper, we propose an empirical analysis to analyze the readability and understandability score from snippets extracted from the web using three independent variables: ranking, general-purpose web search engine, and recommended site. We collected the top-5 recommended sites and their respective code snippet recommendations using Google, Yahoo!, and Bing for 9,480 queries, and evaluate their readability and understandability scores. We found that some recommended sites have significantly better readability and understandability scores than others. The better-ranked code snippet is not necessarily more readable or understandable than a lower-ranked code snippet for all general-purpose web search engines. Moreover, considering the readability score, Google has better-ranked code snippets compared to Yahoo! or Microsoft Bing
academic

Lesbarkeit und Verständlichkeit von Snippets, die von allgemeinen Web-Suchmaschinen empfohlen werden: eine vergleichende Studie

Grundinformationen

  • Paper-ID: 2110.07087
  • Titel: Readability and Understandability of Snippets Recommended by General-purpose Web Search Engines: a Comparative Study
  • Autoren: Carlos Eduardo C. Dantas, Marcelo A. Maia
  • Klassifizierung: cs.SE (Softwaretechnik)
  • Veröffentlichungszeit/Konferenz: AeSIR '21, 15.–11. November 2021
  • Paper-Link: https://arxiv.org/abs/2110.07087

Zusammenfassung

Entwickler suchen häufig auf allgemeinen Suchmaschinen wie Google, Yahoo! oder Microsoft Bing nach wiederverwendbaren Code-Snippets. Diese Code-Snippets können jedoch in Bezug auf Lesbarkeit oder Verständlichkeit von geringerer Qualität sein. Dieses Papier präsentiert eine empirische Analyse, die drei unabhängige Variablen (Ranking, allgemeine Suchmaschine und empfehlendes Portal) verwendet, um Lesbarkeits- und Verständlichkeitsbewertungen von aus dem Web extrahierten Code-Snippets zu analysieren. Die Studie sammelte die Top-5-empfohlenen Websites und deren entsprechende Code-Snippet-Empfehlungen von Google, Yahoo! und Bing für 9.480 Anfragen und bewertete deren Lesbarkeits- und Verständlichkeitswerte. Die Studie zeigt, dass bestimmte empfehlendes Portale in Bezug auf Lesbarkeits- und Verständlichkeitsbewertungen deutlich besser abschneiden als andere. Code-Snippets mit höherem Ranking sind nicht unbedingt lesbarer oder verständlicher als Code-Snippets mit niedrigerem Ranking bei allen allgemeinen Suchmaschinen. Darüber hinaus hat Google bei den Lesbarkeits-Bewertungen bessere Code-Snippet-Rankings als Yahoo! oder Microsoft Bing.

Forschungshintergrund und Motivation

Problemdefinition

  1. Kernproblem: Code-Snippets, die von allgemeinen Suchmaschinen empfohlen werden, weisen Qualitätsunterschiede in Bezug auf Lesbarkeit und Verständlichkeit auf; Code-Snippets mit höherem Ranking sind nicht unbedingt von besserer Qualität
  2. Praktischer Bedarf: Entwickler nutzen häufig allgemeine Suchmaschinen zur Suche nach Code-Beispielen, es fehlt jedoch eine systematische Bewertung der Qualität dieser Code-Snippets
  3. Suchmaschinen-Einschränkungen: Obwohl Google über 200 Ranking-Faktoren verfügt, können Seiten mit höherem Ranking möglicherweise Code-Beispiele von geringerer Qualität enthalten

Forschungsbedeutung

  • Die Wiederverwendung von Code-Snippets kann die Zeit für Programmieraufgaben reduzieren und den Entwicklungsprozess beschleunigen
  • Google verfügt über einen Marktanteil von über 90% bei Suchmaschinen, aber die Code-Qualitäts-Ranking-Situation anderer Suchmaschinen ist unbekannt
  • Es ist notwendig, die gegenseitige Beziehung zwischen Lesbarkeit und Verständlichkeit zu verstehen: Lesbarkeit bezieht sich auf das Verständnis der Syntax, Verständlichkeit bezieht sich auf semantische Aspekte

Motivationsbeispiel

Das Papier zitiert einen Forschungsfall von Hora: Bei der Google-Suche nach „File.mkdirs examples" wird das Code-Snippet von Tutorialspoint trotz schlechterer Lesbarkeits- und Wiederverwendbarkeitskennzahlen höher eingestuft, da es eine natürlichsprachige Erklärung enthält, die der Anfrage ähnelt.

Kernbeiträge

  1. Erste systematische Vergleichsstudie: Großangelegte vergleichende Analyse der Lesbarkeit und Verständlichkeit von Code-Snippets, die von drei großen Suchmaschinen (Google, Yahoo! und Microsoft Bing) empfohlen werden
  2. Konstruktion großer Datensätze: Erfassung von 47.400 Weblinks für 9.480 Anfragen, die 5.355 verschiedene Websites abdecken
  3. Multi-dimensionales Analyse-Framework: Vorschlag einer Analysemethode basierend auf drei unabhängigen Variablen: Ranking, Suchmaschine und empfehlendes Portal
  4. Empirische Erkenntnisse: Bestätigung zweier wichtiger Hypothesen: Code-Snippets mit höherem Ranking haben nicht unbedingt höhere Lesbarkeit/Verständlichkeit; es gibt signifikante Unterschiede in der Code-Qualität zwischen verschiedenen empfehlenden Portalen
  5. Standardisierung der Verständlichkeitsmessung: Vorschlag einer standardisierten Methode zur Umwandlung kognitiver Komplexität in das Intervall 0,1

Methodische Details

Aufgabendefinition

Eingabe: Programmierbezogene Abfragen Ausgabe: Lesbarkeits- und Verständlichkeitsbewertungen von Code-Snippets Einschränkungen: Analyse nur von Java-Code-Snippets, Berücksichtigung der Top-5-Suchergebnisse

Forschungsdesign-Architektur

Die Studie folgt einem fünfstufigen Ansatz:

  1. Auswahl von Eingabeabfragen: Erfassung von 10.000 Benutzerabfragen aus dem CROKAGE-Tool
  2. Erfassung der Top-n-Webseiten: Abruf der Top-5-empfohlenen Webseiten von Google, Yahoo! und Bing
  3. Extraktion von Code-Snippets: Extraktion von Java-Code-Snippets aus ausgewählten Websites
  4. Berechnung von Kennzahlen: Berechnung von Lesbarkeits- und Verständlichkeitsbewertungen
  5. Analysemethode: Verwendung von ANOVA und Tukey-Tests für statistische Analysen

Wichtige technische Implementierung

Datenerfassungsstrategie

Code-Extraktionsmethode

  • StackOverflow: Extraktion von Java-Code-Snippets aus akzeptierten Antworten
  • Andere Websites: Verwendung regulärer Ausdrücke zur Suche nach Quellcode in HTML-Tags, die „example" und „Java" enthalten

Bewertungskennzahlen

Lesbarkeits-Messung:

  • Verwendung des von Scalabrino et al. vorgeschlagenen Vorhersagemodells
  • Umfasst Kommentare, Konsistenz von Bezeichnern, Textkohärenz, Anzahl von Bedeutungen und Konzepten
  • Ausgabebereich: 0,1, wobei 0 niedrige Lesbarkeit und 1 hohe Lesbarkeit bedeutet

Verständlichkeits-Messung:

  • Basierend auf kognitiver Komplexität, wie von Campbell vorgeschlagen
  • Standardisierungsformel:
understandability(cs_i) = {
    1 - #cc/#mcc  wenn #cc < 15
    0.0           andernfalls
}

wobei #cc der Wert der kognitiven Komplexität ist und #mcc=15 der empfohlene Maximalwert

Experimentelle Einrichtung

Datensatz-Details

  • Abfragequelle: Benutzerabfragen aus dem CROKAGE-Tool von über 80 Ländern
  • Datengröße: 9.480 gültige Abfragen, 47.400 Weblinks
  • Website-Abdeckung: 5.355 verschiedene Websites
  • Sprachbeschränkung: Nur Java-Programmiersprache

Bewertungsmethode

  • Statistische Analyse: Verwendung von Varianzanalyse (ANOVA) mit Konfidenzniveau 5% (p-Wert<0,05)
  • Mehrfachvergleich: Verwendung des Tukey-Tests zur Identifizierung signifikanter Unterschiede zwischen Gruppen
  • Gruppierungsdesign:
    • Suchmaschine: 3 Gruppen (Google, Bing, Yahoo!)
    • Ranking: 5 Gruppen (Top-1 bis Top-5)
    • Website: 5 Gruppen (ausgewählte 5 Websites)

Datenvorverarbeitung

  • Entfernung doppelter Abfragen und manuell als nicht anwendbar gekennzeichneter Abfragen
  • Filterung von Abfragen mit weniger als 5 Webseiten-Empfehlungen
  • Verwendung regulärer Ausdrücke zur Extraktion von Links aus HTML-Tags

Experimentelle Ergebnisse

Hauptergebnisse

RQ1: Beziehung zwischen Suchmaschinen-Ranking und Code-Qualität

  • ANOVA-Ergebnisse: Lesbarkeit p-Wert=0,0034, Verständlichkeit p-Wert=0,0003
  • Schlüsselerkenntnis: Top-2-Code-Snippets sind insgesamt in Lesbarkeit und Verständlichkeit Top-1-, Top-4- und Top-5-Snippets überlegen
  • Effektgröße: Klein (-0,02 bis 0,01 Lesbarkeit, -0,01 bis 0,02 Verständlichkeit)
  • Schlussfolgerung: Bestätigung der Hypothese H1, dass Code-Snippets mit höherem Ranking nicht unbedingt lesbarer oder verständlicher sind

RQ2: Vergleich zwischen Suchmaschinen

  • ANOVA-Ergebnisse: Lesbarkeit p-Wert=1,207e-12, Verständlichkeit p-Wert=0,0364
  • Lesbarkeits-Ranking: Google > Microsoft Bing > Yahoo!
  • Verständlichkeit: Google leicht besser als Microsoft Bing
  • Effektgröße: Kleine Effekte (-0,02 bis 0,02 Lesbarkeit, -0,01 bis 0,005 Verständlichkeit)

RQ3: Vergleich zwischen empfehlenden Portalen

  • ANOVA-Ergebnisse: Lesbarkeit und Verständlichkeit p-Wert beide <2,2e-16
  • Beste Lesbarkeit: geeksforgeeks
  • Beste Verständlichkeit: tutorialspoint
  • Effektgröße: Mittlere Effekte bei Lesbarkeit (-0,15 bis 0,10), kleine Effekte bei Verständlichkeit (-0,04 bis 0,08)

Detaillierte Analyseergebnisse

Lesbarkeitsanalyse

Gründe für die beste Leistung von GeeksforGeeks:

  • Jede Codezeile wird mit einem Kommentar versehen
  • Hohe Kohäsion, jedes Konzept ist unabhängig
  • Beispiel: Abfrage „How to append to a string?"
    • GeeksforGeeks: Lesbarkeits-Bewertung 0,94
    • Tutorialspoint: Lesbarkeits-Bewertung 0,44

Einschränkungen der Verständlichkeitsanalyse

  • 58,3% der Code-Snippets erreichen die maximale Verständlichkeits-Bewertung
  • Die meisten Code-Snippets sind einfache API-Aufrufe ohne komplexe Kontrollstrukturen
  • Empfehlung: Diese Kennzahl ist besser für vollständige Dateien wie Git-Repositories geeignet

Verwandte Arbeiten

Forschung zur Code-Lesbarkeit

  • Hora (2021): Untersuchung, wie Google Code-Snippets nach Lesbarkeits- und Wiederverwendbarkeitsfunktionen einstuft
  • Scalabrino et al.: Vorschlag eines Code-Lesbarkeits-Vorhersagemodells
  • Buse und Weimer: Erlernen von Code-Lesbarkeits-Kennzahlen

Code-Suche und -Empfehlung

  • API Sonar-Tool: Verwendung von Lesbarkeits-Funktionen zur Einstufung von Code-Snippets
  • Muse-Methode: Verwendung von Lesbarkeits-Funktionen zur Einstufung von Code-Beispielen
  • CROKAGE: Code-Suchmaschine, die Code-Snippets und Erklärungen aus StackOverflow extrahiert

Code-Qualitätsbewertung

  • Treude und Robillard: Feststellung, dass nur 49% der StackOverflow-Code-Snippets vollständig selbsterklärend sind
  • Kognitive Komplexität: Von Campbell vorgeschlagene Verständlichkeits-Messmethode

Schlussfolgerungen und Diskussion

Hauptschlussfolgerungen

  1. Ranking-Paradoxon: Das Suchmaschinen-Ranking korreliert nicht vollständig mit der Code-Qualität; Code-Snippets mit Top-2- und Top-3-Ranking können höhere Qualität aufweisen
  2. Unterschiede zwischen Suchmaschinen: Google schneidet bei der Lesbarkeit am besten ab, der Vorteil ist jedoch begrenzt
  3. Differenzierung der Website-Qualität: Es gibt signifikante Qualitätsunterschiede zwischen empfehlenden Portalen; Tutorial-Websites (GeeksforGeeks) haben bessere Lesbarkeit
  4. Einschränkungen der Verständlichkeit: Die aktuelle Verständlichkeits-Kennzahl hat begrenzte Unterscheidungskraft bei einfachen Code-Snippets

Praktische Bedeutung

  • Entwickler-Anleitung: Empfehlung, Code-Snippets von Tutorial-Websites wie GeeksforGeeks bevorzugt zu berücksichtigen
  • Suchstrategie: Sollte sich nicht nur auf Rankings verlassen, sondern Qualitätskennzahlen umfassend berücksichtigen
  • Tool-Verbesserung: Bereitstellung von Referenzstandards für Qualitätsbewertung für Code-Suchmaschinen

Einschränkungen

  1. Begrenzte Website-Abdeckung: Analyse nur von 5 Websites, die 34%-38,1% der empfohlenen Websites ausmachen
  2. Extraktionsstrategie: Nur das erste Code-Snippet pro Webseite wird extrahiert
  3. Auswirkung der Abfragemodifikation: Das Hinzufügen von „example in java" kann die Suchergebnisse beeinflussen
  4. Kennzahl-Genauigkeit: Tools zur Messung von Lesbarkeit und Verständlichkeit können Fehler aufweisen

Zukünftige Richtungen

  1. Qualitative Forschung: Tieferes Verständnis der Ursachen für Unterschiede in Lesbarkeits- und Verständlichkeitsbewertungen
  2. Erweiterte Forschung: Einbeziehung weiterer Websites oder Entwicklung universeller Code-Extraktionsmethoden
  3. Mehrsprachige Unterstützung: Erweiterung auf andere Programmiersprachen
  4. Verarbeitung mehrerer Code-Snippets: Entwicklung heuristischer Methoden zur Verarbeitung mehrerer Code-Snippets auf einer Seite

Tiefgreifende Bewertung

Stärken

  1. Forschungsnovität: Erste systematische Vergleichsstudie der Code-Snippet-Qualität von Mainstream-Suchmaschinen
  2. Datengröße: Großangelegte empirische Studie mit ausreichender Datenmenge und zuverlässigen Schlussfolgerungen
  3. Methodische Strenge: Verwendung ausgereifter statistischer Analysemethoden mit statistisch signifikanten Ergebnissen
  4. Praktischer Wert: Bietet empirische Anleitung für Entwickler bei der Auswahl von Code-Snippets
  5. Reproduzierbarkeit: Bereitstellung eines vollständigen Reproduktionspakets und detaillierter Methodenbeschreibungen

Mängel

  1. Kennzahl-Einschränkungen: Verständlichkeits-Kennzahl hat begrenzte Unterscheidungskraft bei einfachen Code-Snippets
  2. Website-Auswahlverzerrung: Analyse nur von 5 Mainstream-Websites, mögliche Auswahlverzerrung
  3. Sprachbeschränkung: Nur Java-Sprache berücksichtigt, begrenzte Verallgemeinerbarkeit
  4. Aktualität: Suchergebnisse sind zeitabhängig, Schlussfolgerungen können sich im Laufe der Zeit ändern

Einfluss

  1. Akademischer Beitrag: Bietet neue Perspektive für Code-Suche und Softwaretechnik-Forschung
  2. Praktische Anleitung: Direkter Einfluss auf das Code-Suchverhalten von Entwicklern
  3. Tool-Verbesserung: Bietet Grundlage für die Optimierung von Suchmaschinen- und Code-Empfehlungssystem-Ranking-Algorithmen
  4. Nachfolgeforschung: Legt den Grundstein für verwandte Forschung

Anwendungsszenarien

  • Qualitätsbewertung bei der Code-Suche durch Softwareentwickler
  • Optimierung von Ranking-Algorithmen für Code-Suchmaschinen
  • Qualitätskontrolle von Code-Beispielen in der Programmiererziehung
  • Code-Qualitätsanalyse in der Softwaretechnik-Forschung

Literaturverzeichnis

Das Papier zitiert 23 verwandte Literaturquellen, hauptsächlich einschließlich:

  • Messmethoden für Code-Lesbarkeit und -Verständlichkeit
  • Forschung zu Code-Suche und Empfehlungssystemen
  • Analyse der Code-Qualität auf StackOverflow
  • Forschung zu Suchmaschinen-Ranking-Mechanismen

Gesamtbewertung: Dies ist ein hochqualitatives empirisches Softwaretechnik-Forschungspapier, das eine Forschungslücke in der Qualitätsbewertung der Code-Suche schließt und von großer theoretischer und praktischer Bedeutung ist. Die Forschungsmethode ist wissenschaftlich streng, die Datengröße ist ausreichend, die Zuverlässigkeit der Schlussfolgerungen ist hoch, und es bietet wertvolle Erkenntnisse für Entwickler und Forscher.