On the Role of Search Budgets in Model-Based Software Refactoring Optimization
by J. Andres Diaz-Pace, Daniele Di Pompeo, and Michele Tucci
Initialize the python execution environment:
git clone https://github.com/SpencerLabAQ/replication_package_search-budget.git
cd replication-package_search-budget
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtGenerate tables and figures:
python HV_table_and_timeline.py
python time_and_algo_comparison.py
python superpareto_scatter.pyThis guide outlines the deployment and execution process of our genetic algorithm framework using Docker. The framework is encapsulated within a Docker image, hosted on Docker Hub, for easy execution with minimal setup required.
- Docker installed on your system.
- Internet connection for downloading the Docker image and necessary artifacts.
First, ensure that Docker is running on your system. Then, pull the Docker image using the following command:
docker pull danieledipompeo/easier:v1.1Run the container with the following command, ensuring to replace <host_folder> with your specific path for output data:
docker run -d --log-driver=journald \
--rm --mount type=tmpfs,destination=/tmp \
-v <host_folder>:/mnt/easier-output/ \
danieledipompeo/easier:v1.1 \
<configuration_file>-druns the container in detached mode.--log-driver=journaldconfigures logging to use the journald driver.--rmremoves the container after it exits.--mountand-voptions are used for managing temporary files and output data respectively.<configuration_file_url>the URL specifies the configuration file, which is downloaded automatically (e.g., https://github.com/danieledipompeo/easier-experiment-data/tree/main/nsgaii-ttbs-energy).
The framework has been tested on Debian, but should be compatible with other Linux distributions or operating systems that support Docker.
The experiments in the paper were performed using EASIER, which is available in a different repository:
https://github.com/SEALABQualityGroup/EASIER
The data gathered during such experiments is provided here, in the data folder.