Replication Package for the Paper: "Code Smells Detection via Modern Code Review: A Study of the OpenStack and Qt Communities"
收藏资源简介:
This repository contains the data and results from the paper "Code Smells Detection via Modern Code Review: A Study of the OpenStack and Qt Communities" submitted to the ICPC 2021 special issue of the Empirical Software Engineering Journal, 2021. The replication package contains the following two folders: <strong>1) data folder</strong> The data folder contains the following four folders, which is organized by research questions (RQs). RQ1: The RQ1 folder contains the retrieved 1,539 code reviews that discuss code smells. Each review includes four parts: Code Change URL, Code Smell, Code Smell Discussion, and Source Code URL. RQ2: The RQ2 folder contains the coded data for RQ2, called <em>Data Labeling & Encoding for RQ2.mx18</em>. It is the results of data labeling and encoding for RQ2, which was analyzed by the MAXQDA tool. RQ3 and RQ5: <em>Extracted data for RQ3.1.xlsx</em>: this file contains the extracted data (i.e., specific refactoring actions suggested by reviewers) for RQ3.1. <em>Data Labeling & Encoding for RQ3 and RQ5.mx18</em>: this file contains the extracted data for RQ3 (excluding the specific refactoring actions in RQ3.1) and RQ5. <em>Code change status for RQ5.xlsx</em>: this file contains the information of status of code changes where the developers disagreed with the reviewers and chose to ignore the identified code smells. RQ4: The RQ4 folder contains the extracted data for RQ4, called <em>Extracted data for RQ4.xlsx</em>. Note: The mx18 files can be opened by MAXQDA 18 or higher versions, which are available at https://www.maxqda.com/ for download. You may also use the free 14-day trial version of MAXQDA 2018, which is available at https://www.maxqda.com/trial for download. <strong>2) scripts folder</strong> The scripts folder contains the Python scripts that were used to search for code smell terms and the list of code smell terms. <em>keyword.txt</em> contains the keywords associated with code smells, such as "smell, duplication, and dead". <em>get_changes.py</em> is used for getting code changes from OpenStack and Qt. <em>get_comments.py</em> is used for getting review comments for each code change. <em>keywords_search.py</em> is used for searching review comments that contain at least one keyword. <em>random_select.py</em> is used for randomly selecting review comments that do not contain any keyword. <em>keywords_improve.py</em> is used for improving the keyword-based mining approach. <em>tools.py</em> is used for supporting the process of keywords improving.



