Giter VIP home page Giter VIP logo

ares's Introduction

ARES

This repository contains the ARES source code, a description of the ARES rule system and the evaluation results of the research paper "G. Dotzler, M. Kamp, P. Kreutzer, M. Philippsen: More Accurate Recommendations for Method-Level Changes".

It also contains the ARES/C3 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

Archived copy of the research paper:

DOI

Archived copy of the PhD thesis:

DOI

Structure

This repository is structured as follows:

  • doc/rules.md: Contains a descripton of the rules from the Edit Script Adjustment step in ARES.

  • doc/examples.md: Contains some examples.

  • data/examples: Contains the source code to the examples.

  • data/junit_evaluation: Contains the input description and results of the junit evaluation as JSON files.

    • The dataset contains code snippets from JUnit.
    • JUnit is licensed under the Eclipse Public License v1.0, see LICENSE.epl.
  • data/lase_evaluation: Contains the input description and results of the LASE dataset as JSON files.

    • The dataset contains code snippets from ECLIPSE JDT Core and ECLIPSE SWT.
    • Eclipse JDT Core is licensed under the Eclipse Public License v1.0, see LICENSE.epl.
    • Eclipse SWT is licensed under the Eclipse Public License v1.0, see LICENSE.epl.
  • data/cthree_evaluation_phdthesis:

    • The dataset contains code snippets from Ant, Checkstyle, Cobertura, DrJava, ECLIPSE JDT Core, ECLIPSE SWT, Fitlibrary, JGraphT and JUnit.
    • Ant is licensed under the Apache License v2, see LICENSE.apache;
    • Checkstyle is licensed under the GNU LGPL v2.1, see LICENSE.lgpl;
    • Cobertura is licensed under the GNU GPL v2, see LICENSE.gpl;
    • DrJava is licensed under the BSD license, see LICENSE.drjava.bsd;
    • Eclipse JDT Core is licensed under the Eclipse Public License v1.0, see LICENSE.epl.
    • Eclipse SWT is licensed under the Eclipse Public License v1.0, see LICENSE.epl.
    • Fitlibrary is licensed under the GNU GPL v2, see LICENSE.gpl;
    • JGraphT is licensed under the GNU LGPL v2.1, see LICENSE.lgpl;
    • JUnit is licensed under the Eclipse Public License v1.0, see LICENSE.epl.
  • src: Contains the complete source code of ARES.

Building and Running ARES

Note: ARES requires at least 16GB of main memory.

Build ARES:

./gradlew build

Run the examples in data/examples:

./gradlew executeExamples

Read evaluation results in data/junit_evaluation and data/lase_evaluation:

./gradlew readPhdThesisResults

Read evaluation results in data/cthree_evaluation_phdthesis:

./gradlew readEvaluationResults

Execute the evaluation of the LASE dataset:

./gradlew executeLaseEvaluation -PappArgs="['OUTPUT_PATH']" 
  • Depending on your internet connection and device, this can take over an hour to execute. The execution requires a download of the ECLIPSE SWT and ECLIPSE JDT CORE repositories and needs to checkout several hundred revisions.

Execute the evaluation of the JUnit dataset:

./gradlew executeJunitEvaluation -PappArgs="['OUTPUT_PATH']" ,
  • Depending on your internet connection and device, this can take over an hour to execute. The execution requires a download of the JUnit repository and needs to checkout several thousand revisions.

Building and Running ARES inside a Docker container

For convenience and for reproducible builds, it is also possible to run ARES inside a Docker container (see docker/).

Build the Docker image from the Dockerfile:

./build.sh

Start a Docker container and execute the specified Gradle tasks:

./run.sh <TASKS>

For example, type the following to execute the LASE evaluation:

./run.sh executeLaseEvaluation

License

  • The source code of ARES in src is licensed under the MIT license (see LICENSE.mit).
  • data is licensed under the CC0 license (see LICENSE.c00).
    • The code snippets contained in each data file fall under the license of the respective projects (see above).

ares's People

Contributors

narmion avatar mskamp avatar pkreutzer avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.