# Techniques for Calculating Software Product Metrics Threshold Values: A Systematic Mapping Study
## 5 Discussion  
* Q1 (Type of threshold calculation methods):  
Studies of thresholds were categorized into four groups: programmer experience, statistical properties, quality-related, and review study. Considering the result of this question implies that the most common approach applied to identify the threshold values for object-oriented metrics is statistical analysis [7,43,59]. Additionally, log transformation and receiver operating characteristic (ROC) curves are two other methods used in some other studies [17,44]. The number of studies that use pure statistical techniques to derive threshold is the largest among all studies (i.e., 22 studies). In addition, quality-related studies were conducted in many papers [2,17,26]. The utilization of programmer experience for threshold identification was considered but limited to some studies [33,34,35]. There were some review studies on threshold derivation. However, these studies were not as comprehensive as in our study and did not answer these research questions. \begin{table}
\begin{tabular}{l l} \hline \hline
**Category** & **Studies/Papers** \\ \hline Empirical & [PERSON] et al. [7], [PERSON] et al. [67], [PERSON] and [PERSON] [1], [PERSON] and [PERSON] [18], [PERSON] et al. [68], [PERSON] et al. [2], \\  & [PERSON] and [PERSON] [40], [PERSON] and [PERSON] [69], \\  & [PERSON] et al. [70], [PERSON] et al. [17] \\ \hline Empirical and Theoretical & [PERSON] et al. [71], [PERSON] [52], [PERSON] et al. [72], \\  & [PERSON] et al. [33], [PERSON] [62] \\ \hline Theoretical and Review & [PERSON] and [PERSON] [3], [PERSON] and [PERSON] [27] \\ \hline \hline \end{tabular}
\end{table} 
Table 8: Types of studies. Statistical methods are the most used among other techniques. The reason is that it depends on data that can be collected easily using static analysis tools that are available abundantly. However, most researchers do not compare many techniques except a few such as [50]. Therefore, there is a need for research that puts all previous techniques in one study on the same datasets to get a fair comparison among different techniques. Quality-related techniques require collecting extra data such as faults, changes, and code refactoring in the lifetime of software. This extra information is not always available and ready to use for most software systems. Quality information requires extra effort and costs and developers may not have time to add them to the code repository. Such data are mostly available for the open-source field, which also suffers from problems like the correctness of recording the data or missing information. Therefore, statistical techniques are more common than quality-related techniques. We notice that there are no mixed techniques on both large corpora of data as in statistical techniques and quality data because collecting quality data for a large corpus of systems is time-consuming. Future works can focus on building tools that combine collecting quality data and at the same time static metrics for a large corpus of systems. * Q2 (The quality attributes for threshold calculation methods):  
The papers in this study were categorized based on quality attributes as follows: fault detection, bad smells detection, design problems, reuse-proneness, and no application. According to [PERSON] et al. [73], fault detection is important to assure desired software reliability and is vital in bringing anticipated allocated cost and time. Reviews on software fault-proneness have shown the significance of this quality attribute on software quality ([PERSON] [28]; [PERSON] et al. [74]; [PERSON] and [PERSON] [75]; [PERSON] et al. [76]). Smell detection and refactoring also have an important effect on software quality, and many research papers discussed their effect on software quality ([PERSON] et al. [77]; [PERSON] et al. [78]; [PERSON] and [PERSON] [79]). These two quality attributes are the most reported ones in our mapping study.