https://github.com/se2p/artifact-scam2021
https://github.com/se2p/artifact-scam2021
Last synced: 13 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/se2p/artifact-scam2021
- Owner: se2p
- Created: 2021-08-13T06:16:48.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2021-08-20T07:44:31.000Z (almost 5 years ago)
- Last Synced: 2026-07-11T08:32:44.722Z (13 days ago)
- Language: Jupyter Notebook
- Size: 9.04 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Supplemental repository for the paper
[Improving Readability of Scratch Programs with Search-based Refactoring](https://arxiv.org/abs/2108.07114)
containing all data and software to replicate the experiments.
```
@inproceedings{ImprovingReadabilityScratch,
author = {Felix Adler and
Gordon Fraser and
Eva Gründinger and
Nina Körber and
Simon Labrenz and
Jonas Lerchenberger and
Stephan Lukasczyk and
Sebastian Schweikl},
title = {Improving Readability of Scratch Programs with Search-based Refactoring},
booktitle = {{21st {IEEE} International Working Conference on Source Code Analysis
and Manipulation, {SCAM} 2021}},
publisher = {{IEEE}},
year = {2021}
}
```
# Experiment Execution
The following assumes that you have a terminal window open with a prompt
in the directory of this file.
## Preparations
Set up a Python virtual environment at some arbitrary path—referenced as
** from now.
Make sure to use Python 3!
To execute the execution pipeline you need to have the virtual environment
active.
```
virtualenv -p python3
source /bin/activate
pip install -r requirements.txt
```
## Execution
Execute the script `./run_everything.sh`.
It will clone the LitterBox repository,
checkout revision `6b193f88`,
build LitterBox,
copy the JAR archive to the expected location,
execute the runs,
and create a `results.csv` in the `data` folder.
Afterwards, the statistical evaluation can be
performed by exeuction the Jupyter Notebook
script in the `analysis` folder.
## Changes
The single location that you might want to change is the value of the constant
`ITERATIONS` in `run_everything.sh`,
which determines how many different seeds will be executed.
The individual run configurations for a single tool run
can be configured in the `execution.py` script,
which generates a bash script for each tool invocation.