toplogo
Log på

CAM: Eine Sammlung von Schnappschüssen von GitHub Java-Repositorys zusammen mit Metriken


Kernekoncepter
Das CAM-Projekt stellt eine offene Sammlung von Skripten bereit, die regelmäßig Java-Repositorys von GitHub herunterladen, bereinigen und Metriken wie Komplexität, Kohäsion und Wartbarkeit berechnen. Die Ergebnisse werden als "unveränderliches" Archiv veröffentlicht, um die Replizierbarkeit von Forschungsergebnissen zu erleichtern.
Resumé

Das CAM-Projekt wurde entwickelt, um die Arbeit von Forschungsprojekten zu erleichtern, die Java-Quellcode analysieren. Es adressiert drei Hauptprobleme:

  1. Sicherstellung der Replizierbarkeit von Forschungsergebnissen durch das Bereitstellen einer stabilen Datenbasis von heruntergeladenen GitHub-Repositorys.
  2. Filterung und Bereinigung des heruntergeladenen Quellcodes, um nur die relevanten Java-Dateien zu behalten.
  3. Berechnung gängiger Quellcode-Metriken wie Komplexität, Kohäsion und Wartbarkeit.

Das CAM-Projekt führt diese Schritte regelmäßig (mindestens einmal jährlich) durch und veröffentlicht die Ergebnisse als "unveränderliches" Archiv. Das neueste Archiv vom 2. März 2024 umfasst 532.000 Java-Klassen mit 48 Metriken pro Klasse.

Trotz dieser Bemühungen hat das Projekt auch einige Einschränkungen:

  • Es kann nur einen Bruchteil der Millionen von Java-Repositorys auf GitHub erfassen, da der Prozess sehr zeitaufwendig ist.
  • Die berechneten Metriken weichen teilweise von den Originaldefinitionen ab, da moderne Java-Funktionen berücksichtigt werden müssen.
  • Der verwendete Parser kann nur Java 8-Syntax verarbeiten und schließt neuere Syntax aus.

Insgesamt erwartet das Projekt, von Forschungsteams genutzt zu werden, die Java-Quellcode analysieren und Replizierbarkeit sowie reduzierte Datenvorverarbeitung wünschen. Die Open-Source-Community wird eingeladen, zu den Skripten beizutragen und die Funktionalität weiter auszubauen.

edit_icon

Tilpas resumé

edit_icon

Genskriv med AI

edit_icon

Generer citater

translate_icon

Oversæt kilde

visual_icon

Generer mindmap

visit_icon

Besøg kilde

Statistik
Die Erstellung des neuesten Archivs vom 2. März 2024 benötigte 10 Tage auf einem Server mit 8 vCPUs und 32 GB RAM. Das Archiv hat eine Größe von 2,2 GB und enthält 532.000 Java-Klassen.
Citater
"Selbst wenn wir, als Besitzer des Repositorys, in der Lage sind, zuvor erstellte Assets zu ersetzen, werden wir dies nicht tun, um die Idee nicht zu gefährden." "Forscher müssen verstehen, dass die von den Skripten in CAM generierten Metriken nicht genau dieselben Metriken sind, die von ihren Autoren beschrieben wurden."

Vigtigste indsigter udtrukket fra

by Yegor Bugaye... kl. arxiv.org 03-14-2024

https://arxiv.org/pdf/2403.08488.pdf
CAM

Dybere Forespørgsler

Wie könnte das CAM-Projekt erweitert werden, um auch andere Programmiersprachen als Java zu unterstützen?

Um das CAM-Projekt zu erweitern und auch andere Programmiersprachen als Java zu unterstützen, könnten verschiedene Schritte unternommen werden. Zunächst wäre es wichtig, die Skripte und Parser anzupassen, um die Syntax und Besonderheiten anderer Sprachen zu berücksichtigen. Dies würde die Möglichkeit eröffnen, Repositories in verschiedenen Sprachen zu durchsuchen und relevante Dateien zu extrahieren. Darüber hinaus könnten Filtermechanismen implementiert werden, um spezifische Dateitypen oder Sprachkonstrukte in anderen Sprachen zu erkennen und zu verarbeiten. Durch die Integration von Unterstützung für mehrere Sprachen könnte das CAM-Projekt zu einer umfassenderen Ressource für Forscher werden, die verschiedene Programmiersprachen analysieren möchten.

Welche zusätzlichen Metriken oder Analysen wären für Forscher hilfreich, die das CAM-Archiv nutzen?

Für Forscher, die das CAM-Archiv nutzen, könnten zusätzliche Metriken oder Analysen hilfreich sein, um tiefere Einblicke in die analysierten Java-Repositories zu erhalten. Einige mögliche Ergänzungen könnten die Integration von Metriken zur Code-Qualität, wie z.B. Code-Smells oder Design-Patterns, sein. Darüber hinaus könnten Metriken zur Testabdeckung oder zur Abhängigkeitsanalyse von Klassen eingeführt werden, um die Struktur und Zuverlässigkeit des Codes weiter zu bewerten. Die Implementierung von Metriken zur Code-Duplizierung oder zur Code-Kommentierung könnte ebenfalls nützlich sein, um Muster im Code und dessen Verständlichkeit zu untersuchen. Durch die Bereitstellung eines breiteren Spektrums an Metriken könnten Forscher fundiertere Analysen durchführen und fundierte Schlussfolgerungen aus den Daten ziehen.

Wie könnte das CAM-Projekt mit anderen Initiativen zur Verbesserung der Replizierbarkeit von Forschungsergebnissen zusammenarbeiten?

Das CAM-Projekt könnte mit anderen Initiativen zur Verbesserung der Replizierbarkeit von Forschungsergebnissen zusammenarbeiten, indem es seine Daten und Methoden offen zugänglich macht und mit anderen Forschern teilt. Durch die Schaffung von Schnittstellen oder APIs könnten Forscher auf die CAM-Archive zugreifen und sie in ihre eigenen Analysen integrieren. Darüber hinaus könnte das CAM-Team mit anderen Forschern zusammenarbeiten, um die Validität und Zuverlässigkeit der bereitgestellten Daten zu überprüfen und zu verbessern. Die Integration von Metadaten und Versionskontrollmechanismen könnte ebenfalls dazu beitragen, die Nachvollziehbarkeit und Reproduzierbarkeit der Forschungsergebnisse zu gewährleisten. Durch die Zusammenarbeit mit anderen Initiativen könnte das CAM-Projekt dazu beitragen, die Standards für die Bereitstellung und Nutzung von Forschungsdaten zu verbessern und die Transparenz in der wissenschaftlichen Forschung zu fördern.
0
star