# Techniques for Calculating Software Product Metrics Threshold Values: A Systematic Mapping Study
## 1 Introduction  
Software engineering aims to determine and advance the quality of software throughout the software development life cycle. For achieving this aim, software metrics are applied to consider the qualitative aspects of software components quantitatively [1]. [PERSON] and [PERSON] [1] observed that software metrics can measure software from different perspectives, but embody the internal quality of software systems. Software metrics without threshold values do not help much to evaluate the quality of software components [2]. In order to tackle this problem, it is crucial that dependable threshold values be selected [3]. The application of metrics encompasses thresholds to ascertain if a specific value is acceptable or abnormal and, thus, provides denotation to metrics, enabling them to become a decision-making device pre- and post-software release [4]. However, determining appropriate threshold values is a rigorous task as thresholds attained by achieving a correlation analysis are only for a defined group of identical software systems [5]. This is furthersupported by [PERSON] et al. (2016), who note that thresholds cannot be inferred and depend on distinct domains. [PERSON] and [PERSON] (2016) observed that process of defining a threshold is built on benchmark data related to views and that data should be analyzed statistically. [PERSON] et al. (2017) and [PERSON] et al. (2018) pointed out that this process should be repeatable and clear. [PERSON] and [PERSON] (2018) concluded that thresholds are critical for software metric analyses and, hence, they are important in practice ([PERSON] and [PERSON], 2018). [PERSON] and [PERSON] (2018) stressed that software metric threshold calculation is a significant research topic, and for this reason, the present study is an attempt to further this research direction. [PERSON] et al. (2018) stated that a lack of knowledge on metric threshold values constrains the wide use of software metrics, and several metrics are very useful to improve software design. [PERSON] and [PERSON] (2018) also recommended focusing on the calculation of metrics to be able to use them in practice. The sources, namely statistical information and widely accepted knowledge, are given in their article. Over the last decade, the object-oriented programming paradigm and systems based on this paradigm have been used in the software industry to build efficient, effective, and scalable systems. Object-oriented metrics were proposed in the early 1990s and are widely used by researchers to design better software systems ([PERSON] and [PERSON], 2016); however, it is difficult to evaluate the qualities of software based on a single value. Therefore, threshold values are vital to have a generic view of different software applications. An appropriate threshold value is an orientation for the developer in the task of maintenance, testing, and evolution. [PERSON] et al. (2018) calculated some threshold values for object-oriented metrics based on several characteristics of software and reported that these threshold values are valid for object-oriented systems. They further observed that recommended thresholds could help to identify problematic classes, which do not follow design principles, and metric threshold values can help for this purpose. However, a threshold value might be affected by several factors, such as organization, programmer experience, language, and development tools ([PERSON] and [PERSON], 2016). Several studies have been conducted to conclude the threshold values for different types of metrics, such as Chidamber and Kemerer (CK) metrics ([PERSON] and [PERSON], 2016). These threshold values have been applied to evaluate various software projects. Although several threshold calculation methods exist in the literature, there is no systematic mapping study on threshold calculation methods. In this paper, we focus on object-oriented metrics.