# Techniques for Calculating Software Product Metrics Threshold Values: A Systematic Mapping Study
## 4 Systematic Mapping Process
### Q3 Which Metrics Combinations Have Been Used? In research papers collected in this study, there are various categories of metrics proposed to evaluate the software systems. Paper [25] uses four different metrics that belong to CK metrics and other traditional metrics. These metrics capture different attributes, i.e., size, coupling, complexity, and refinement. In addition, papers [16; 23; 24; 26; 36; 60; 61; 63; 65; 66; 61; 63; 65; 66] utilized CK metrics for analysis and measures and identified threshold values for these metrics. The McCabe complexity metrics were applied in papers [7; 18; 26; 63; 6]. The work in [17] applied six of the bad smells identified by using a metrics model proposed by [PERSON] [51]. [PERSON] [24; 35; 53], focuses on cohesion metrics. Moreover, he used more than one category in another study [52]: the existing size, cohesion, and coupling metrics. Paper [14] applied cohesion and complexity metrics, which contain a code smell metrics set. In [11], metrics for maintainability and classes were identified. CK metrics have been used in paper [25]. In addition, the CK metrics suite has been used to compute system reliability in another research paper [36]. In addition, this paper used [PERSON]'s metrics suite and traditional metrics such as cyclomatic complexity to compute software complexity. Because CK metrics address several aspects of software design, [PERSON] et al. [26] used them as independent variables. Apart from the CK metrics suite, \"lines of code\" (LOC) is used to measure size because that is the most common metric for this purpose. [PERSON] et al. [17] used 12 metrics from different categories, including CK metrics, [PERSON]'s metrics [20], and [PERSON]'s [4] metrics. These metrics are categorized as inheritance, coupling, cohesion, polymorphism, class-size metrics, and class complexity. Six of the object-oriented software metrics have been studied in their research paper [2]. Paper [41] selected a set of metrics, characterized as Inheritance, Coupling, Class Complexity, Cohesion, Class Size, Information hiding, and Encapsulation. Heavy-tailed distribution metrics were used in [39], which illustrated a specific tool called RTTOOL for relative thresholds. References [1; 43] used additional metrics from QMOOD [58], [PERSON] [63] metrics, [PERSON] [23] metrics, and [PERSON] metric suits. [PERSON] et al. also investigated Henderson-Sellers metrics. [PERSON] et al. [55] used metrics QMOOD metrics [15] and Stojkovski [23] metrics. [PERSON] et al. [44] used additional metrics from the [PERSON] [44] approach. In the paper of [PERSON] and [PERSON] [41], coupling and cohesion metrics [61], and [PERSON] and [PERSON] [21] metrics were applied. [PERSON] [49] used static code checkers' rules as metrics. Research studies in threshold opt to find a link between metrics and software quality attributes. Researchers validate metrics to find this link in two scenarios, individually and in combination. However, the combination of metrics has always been found to be better in predicting quality and therefore, the researchers have validated the use of many combinations to find the least number of metrics that provide the best prediction performance. The CK metrics are one of the best combinations of metrics to predict quality. The research on thresholds is a replication of studies on fault prediction and therefore, researchers select a combination of metrics to validate their methodology of threshold calculation. The CK metrics were the most metrics reported in the quality prediction fields and therefore, this should reflect on threshold studies. This question reports the most reported combination of metrics. The number of metrics used in research is very large and therefore, it is difficult to report each metric individually, considering that some metrics have variations. Therefore, we have reported in Table 7 a summary of metrics combinations based on the use of CK metrics.