# On the Relationship between Self-Admitted Technical Debt Removals and Technical Debt Measures
## 3 Study Setup
### Subject Projects  
The study reports results involving four Java software projects: Log4j ([[https://github.com/apache/log4j](https://github.com/apache/log4j)]([https://github.com/apache/log4j](https://github.com/apache/log4j))), Gerrit ([[https://github.com/GerritCodeReview/gerrit](https://github.com/GerritCodeReview/gerrit)]([https://github.com/GerritCodeReview/gerrit](https://github.com/GerritCodeReview/gerrit))), Hadoop ([[https://github.com/apache/hadoop](https://github.com/apache/hadoop)]([https://github.com/apache/hadoop](https://github.com/apache/hadoop))), and Tomcat ([[https://github.com/apache/tomcat](https://github.com/apache/tomcat)]([https://github.com/apache/tomcat](https://github.com/apache/tomcat))), which are different in size, number of commits, and application domains. The choice fell on these systems because their programming language is Java, they still have an active Git repository containing multiple versions, and there are variations in the application domains, sizes, and revisions. Table 2 details for each system the versions analyzed, the branch numbers, the number of commits, and the total number of commits in which at \begin{table}
\begin{tabular}{p{142.3 pt} p{142.3 pt}} \hline \hline  & **Metric** & **Description** \\ \hline \multirow{3}{*}{CBO} & Coupling between objects: a total of the number of classes that a class referenced plus the number of classes that referenced the class. If a class appeared in both the referenced and the referred classes, it was only counted once. \\ \hline \multirow{3}{*}{DIT} & The Depth of Inheritance Tree (DIT) measures inheritance levels from the hierarchy of objects above, so it is the maximum length of a path from a class to a root class in a system’s inheritance structure. Measure how many superclasses can affect a class. For a class, its minimum value is 1. \\ \hline \multirow{3}{*}{Number of fields} & Counts the number of fields. Specific numbers for the total number of fields, static, public, private, protected, default, final, and synchronized fields. \\ \hline \multirow{3}{*}{NOSI} & Number of static invocations: Counts the number of invocations to static methods. It can only count the ones that can be resolved by the Java Development Tools. \\ \hline \multirow{3}{*}{RFC} & Response for a class: Shows the interaction of the class’s methods with other methods, thus the total number of methods that can potentially be executed in response to a message received from an object of a class. \\ \hline \multirow{3}{*}{WMC} & Weight method class or McCabe’s complexity. It counts the number of branch instructions in a class. \\ \hline \multirow{3}{*}{LOC} & Lines of code: It counts the lines of code, ignoring empty lines. The number of lines here might be a bit different from the original file, as the JDT’s internal representation of the source code is used to calculate it. \\ \hline \multirow{3}{*}{LCOM} & Lack of cohesion of methods: measures the correlation within a class between local methods and instance variables. If there is a high cohesion, it means that there is a good division; on the contrary, the lack of cohesion or low cohesion follows an increase in complexity. In this case, the solution is represented by the subdivision of this class into several subclasses. \\ \hline \multirow{3}{*}{Public Fields} & Counts the total number of public fields defined in a class. Publics fields refer to an object that is directly accessible and edited by other objects. Therefore, its use can cause a strong coupling between the classes within a software system, reducing the modularity of the program. \\ \hline \multirow{3}{*}{Public Methods} & Find the total number of public methods defined in a class. This metric can be considered as an indicator of how large a class is, so it represents the number of features that the class provides. \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Chidamber & Kemerer metrics included in the dataset. least one SATD Removal has been identified. Commits with SATD removals were identified by the [PERSON] et al.