Skip to main content
zenodoopen

Enhancing Change Impact Prediction by Integrating Evolutionary Coupling with Software Change Relationships

<div> <div><strong>Replication Package For Paper: Enhancing Change Impact Prediction by Integrating Evolutionary Coupling with Software Change Relationships</strong></div> <br> <div>IMPER is a change <strong>IM</strong>pact <strong>P</strong>rediction method that integrates <strong>E</strong>volutionary coupling with software change <strong>R</strong>elationships. The approach consists of following four main steps:</div> <br> <div><em>Step 1</em>: Relevant Transaction Filtering. Filtering the relevant transaction set based on the given query $<em>Q</em>$.</div> <div><em>Step 2</em>: Association Rule Generation. Generating association rules and obtaining the impact candidate set.</div> <div><em>Step 3</em>: Spatial-Temporal Window Processing. Considering the temporal and spatial change relationships to obtain the impact candidate set.</div> <div><em>Step 4</em>: Candidates Integrating and Ranking. Making a union of these two sets to find the final impact set.</div> <br> <div>The repo provides files for the paper replication. It includes::</div> </div> <div>&nbsp;</div> <div><strong>git_repo.zi</strong>p: Git repository used in the study.</div> <div><em><strong>***-rec-database-1107.tar.gz</strong>:</em> Neo4j dataset containing entity-level software relationship graphs and change information (changed classes, member member methods, member member variables, and files) from over 19,003 versions of six well-maintained projects.</div> <div><strong><em>code_entiy_genealogy</em></strong>: Data for code entity genealogy.<br> <div><em><strong>imper_jar.zip</strong>:</em> &nbsp;Tool for the study, including: 1) Generating qualified queries; 2) Change prediction using four approaches (ROSE, TARMAQ, IMPER, IMPER-ST); 3) Evaluation. The tool outputs evaluation results for each query and average metrics (MAP, Precision, Recall, and F1-score).</div> <div><strong><em>evaluation_metrics_details.zip</em></strong>: Detailed evaluation metric results for different projects.</div> <div><strong><em>Imper_evaluation_results.xlsx</em></strong>: Summary of evaluation metric results for all projects.</div> <div>&nbsp;</div> <br> <div>Users are suggested to refer to the research paper for more detials.</div> <br> <div>This project is still in an early stage of development, and we are improving the implementation and documentation. Please feel free to contact ******(author) for the replication package.</div> <br><strong>Environment</strong><br> <div>- java 11+</div> <div>- <a href="https://neo4j.com/download-center/#community">neo4j 4.2</a>&nbsp;</div> <div>- memory 64G+</div> <br><strong>Quick Start</strong>:<br>To begin our study, follow these steps. Note that only one project can be analyzed at a time.</div> <div><br><strong><em>Step 1: Database Setup</em></strong></div> <div>&nbsp;</div> <div>Copy the relevant database to the folder `data` (in the root path of the Neo4j database), copy the plugins to the plugin folder, and open the database using Neo4j 4.2 (Recommended).</div> <div><br><strong><em>Step 2: Configure application-dev.yml</em></strong></div> <div>&nbsp;</div> <div>Adjust the application-dev.yml file in the folder `imper_jar` to match your configuration. If you're using an existing database, simply configure the database address, username, and password. <div> <p>&nbsp;</p> </div> </div> <div><strong><em>Step 3: &nbsp;Run imper-study.jar</em></strong></div> <div><br>Command: `<em>java -jar imper-study.jar -imp -config ./application-dev.yml -rd /home/user/code_rec -pj commons-io -fi commons-io_file(Map)_1031.txt -mi commons-io_functionInfo(Map).txt -tw 35 -mc 20 -od /home/user/code_rec</em>`.</div> <div><br> <div>-imp:&nbsp; Used to run IMPER</div> <div>-config:&nbsp; Path of `<em>application-dev.yml</em>`.</div> <div>-rd:&nbsp; Root path of code entiy genealogy, e.g., `<em>/home/user/code_rec</em>`.</div> <div>-pj:&nbsp; Project name, e.g., `<em>commons-io</em>`.</div> <div>-fi:&nbsp; the code entiy genealogy (file), e.g., `<em>commons-io_file(Map)_1031.txt</em>` (the absolute path is `<em>/home/user/code_rec/commons-io/commons-io_file(Map)_1031.txt</em>`).</div> <div>-mi:&nbsp; the code entiy genealogy (method), e.g., `<em>commons-io_functionInfo(Map).txt</em>` (the absolute path is `<em>/home/user/code_rec/commons-io/commons-io_functionInfo(Map).txt</em>`).</div> <div>-tw:&nbsp; Time window (half), e.g., <em>-tw 35 (the time window size is 70).</em></div> <div>-mc:&nbsp; Maxium commit size in the time window.</div> <div>-od:&nbsp; Output root path for evaluation results (MAP, Precison, Recall and F1-score), e.g., `<em>/home/user/code_rec</em>`.</div> </div>

ShareScore

32/100

Overall dataset sharing score

Score breakdown

These five areas show where the dataset supports — or may limit — practical reuse.

Stewardship
4
Harmonization
4
Access
16
Reuse readiness
8
Engagement
0