/tree-measurements

Primary LanguageJavaCreative Commons Zero v1.0 UniversalCC0-1.0

tree-measurements

This repository contains the evaluation of the research paper "G. Dotzler, M. Philippsen: Move-Optimized Source Code Tree Differencing".

It also contains the tree differencing evaluation of the PhD thesis "G. Dotzler: Learning Code Transformations from Repositories, Friedrich-Alexander University Erlangen-Nürnberg, 2018". https://doi.org/10.25593/978-3-96147-142-3

The implementation is available here.

Archived copy of the research paper:

DOI

Archived copy of the PhD thesis:

DOI

Structure

This repository is structured as follows:

  • data/phdthesis: Contains the results of the phd thesis evaluation stored in JSON files.
  • data/pso: Contains the results or the particle swarm optimization runs stored in JSON files.
  • data/repositories: Contains the results of the tree differencing algorithms as JSON files. Each file contains the commit and file of the change, the resulting matches and the size of the edit script. Use lrzip to uncompress the archives. Warning! the uncompressed archives are huge!
  • data/repositories/Ant.tar.lrz: Data for the Ant repository, uncompressed size: 3,4G
  • data/repositories/Checkstyle.tar.lrz: Data for the Checkstyle repository, uncompressed size: 1,9G
  • data/repositories/Cobertura.tar.lrz: Data for the Cobertura repository, uncompressed size: 136M
  • data/repositories/DrJava.tar.lrz: Data for the DrJava repository, uncompressed size: 2,3G
  • data/repositories/EclipseJDTCore.tar.lrz: Data for the EclipseJDTCore repository, uncompressed size: 6,3G
  • data/repositories/Findbugs.tar.lrz: Data for the Findbugs repository, uncompressed size: 3,0G
  • data/repositories/Fitlibrary.tar.lrz: Data for the Fitlibrary repository, uncompressed size: 211M
  • data/repositories/JGraphT.tar.lrz: Data for the JGraphT repository, uncompressed size: 643M
  • data/repositories/JUnit.tar.lrz: Data for the JUnit repository, uncompressed size: 622M
  • data/time/TimeJenkins.tar.lrz: Contains the results of the time measurement on Jenkins as JSON files in an archive.
  • data/validation.tar.lrz: Contains the voting input and voting results of the 8 voters.
  • data/examples: Contains some uncompressed examples for the repositories and the time measurements.
  • src/java/main: Contains Java source code to read (and write) the JSON files together with a simple example application. The code relies on the Jackson library to parse the JSON files.

Building and running the example application

Just type the following:

gradle run

This builds the code and executes the example application.

License

  • The source code of the Java interface in src/java/main is licensed under the MIT license (see LICENSE.mit).
  • data is licensed under the CC0 license (see LICENSE.cc0).
  • The css, js and html code in data/validation.tar.lrz is part of gumtree and licensed under LGPL version 3 (see LICENSE).