Indexing Open-Source JavaScript Repositories

Master Thesis

Thesis description:

The Automated Benchmark Management (ABM) platform [1, 2], crawls open-source repositories such as GitHub and BitBucket for Java-based projects. It automatically builds and extracts specific information such as the number of classes present in the project, its cyclomatic complexity, or if it refers to specific APIs or libraries. With this work, ABM builds a database of knowledge that can be immediately queried, similar to a search engine for Java-based projects.

In this thesis, you will research how to apply such a methodology to JavaScript projects through the following steps:

1. Adapt the crawlers to query JavaScript projects.

2. Determine which project information is relevant to extract for JavaScript.

3. Design a methodology and determine which tools to use to extract this information from JavaScript projects using static code analysis.

4. Build a prototype that demonstrates your research. If time allows, the prototype can be directly implemented in the ABM code base.

5. Evaluate you rprototype in terms of performance and quality of the extracted information.

Requirements:

    • Good knowledge of Java and JavaScript.
    • Prior knowledge of static analysis and Scala is not required, but appreciated.
    • Autonomy and self-organization skills.

    Language:

    The thesis will be held in English. Informal communication can be in German or French.

     Learning outcomes:

    • Assimilate and apply knowledge from relevant literature.
    • Static analysis of JavaScript code.
    • Contribute in an international, open-source project.
    • Plan implement, test, and document an independent research project.

    Contact:

    Lisa Nguyen (lisa.nguyen@upb.de)

    Dr. -Ing. Ben Hermann: (ben.hermann@upb.de)

    References:

    [1] Lisa Nguyen Quang Do et al. Toward an automated benchmark management system. In SOAP 2016. DOI: dx.doi.org/10.1145/2931021.2931023

    [2] abm.cs.upb.de/abm/index.html