Not logged in.

Contribution Details

Type Master's Thesis
Scope Discipline-based scholarship
Title Large Scale Source Code Analysis
Organization Unit
Authors
  • Carol Alexandru
Supervisors
  • Harald Gall
Language
  • English
Institution University of Zurich
Faculty Faculty of Economics, Business Administration and Information Technology
Number of Pages 29
Date 2014
Abstract Text Static source code analysis is both time consuming and resource intensive. Hence, existing software studies only analyze a small number of snapshots of a few software projects to draw their conclusions. On the other hand, research in the field of Mining Software Repositories (MSR) analyzes commit logs, bug reports and other data over the entire lifetime of thousands of projects, but without analyzing the source code itself. With the goal of bridging the gap between software studies and MSR research, we determined the feasibility of large-scale software analysis. We have developed a graph-based algorithm for calculating code metrics for all revisions of a single software project simultaneously. The prototype we developed is designed as a language-independent, zero-configuration tool, able to produce results given just a Git repository URL. In a pilot study, we established that our prototype is three orders of magnitude faster than comparable tools when analyzing multiple revisions of a software project, making it feasible to analyze every revision of a software project within minutes or hours, whereas producing the same data using existing tools would require weeks or months. As such, our approach enables new MSR research which includes source code as an essential artifact.
Zusammenfassung Statische Quellcode-Analyse ist sowohl Zeit- als auch Resourcenintensiv. Aus diesem Grund analysieren existierenden Softwarestudien nur eine geringe Anzahl Snapshots weniger Projekte um Schlüsse zu ziehen. Andererseits analysiert die Forschung im Gebiet "Mining Software Repositories" (MSR) die Commit-Logs, Bug-Reports und andere Daten über die gesamte Lebensdauer von tausenden Projekten, ohne allerdings den Quellcode selbst zu betrachten. Mit dem Ziel, eine Brücke zwischen Softwarestudien und der MSR-Forschung zu schlagen, haben wir die Realisierbarkeit von "Large-Scale Software Analysis" ermittelt. Wir haben einen graphbasierten Algorithmus für die gleichzeitige Berechnung von Code-Metriken aller Revisionen eines einzelnen Softwareprojektes entwickelt. Der von uns entwickelte Prototyp ist als sprachenunabhängiges, "zero-configuration" tool konzipiert, welches lediglich eine Git-Repository URL benötigt, um Resultate zu erzeugen. In einer Pilotstudie haben wir gezeigt, dass unser Prototyp drei Grössenordnungen schneller als vergleichbare Tools ist, wenn mehrere Revisionen eines Softwareprojekts analysiert werden müssen. Dies ermöglicht es, alle Revisionen eines Softwareprojektes in Minuten oder Stunden zu analysieren, wofür existierenden Tools Wochen oder Monate benötigen würden. Somit ermöglicht unser Ansatz neue MSR-Forschung, welche den Quellcode als essentielles Artefakt mit einschliesst.
PDF File Download
Export BibTeX