<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Proceedings of the SQAMIA</journal-title>
      </journal-title-group>
      <issn pub-type="ppub">1613-0073</issn>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Approaches for Software Metrics Threshold Derivation: A Preliminary Review</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>TINA BERANI Cˇ</string-name>
          <email>tina.beranic@um.si</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>MARJAN HERI CˇKO</string-name>
          <email>marjan.hericko@um.si</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>University of Maribor</string-name>
        </contrib>
        <contrib contrib-type="editor">
          <string-name>General Terms: Software Metrics Threshold Derivation</string-name>
        </contrib>
      </contrib-group>
      <pub-date>
        <year>2017</year>
      </pub-date>
      <volume>6</volume>
      <fpage>11</fpage>
      <lpage>13</lpage>
      <abstract>
        <p>Knowing the reliable software metrics threshold can contribute to product quality evaluation and, consequently, increase the usefulness of software metrics in practice. How to derive software metrics thresholds is a topic of many researchers, either proposing new approaches, or verifying existing methods on di erent practical projects. A literature review was conducted to summarise the available knowledge in this area. The aim was to nd approaches for software metric threshold derivation and extract relevant information, such as programming language for which an approach was proposed and tested, what metrics were derived, and if approaches are automated with supporting tools. Data extracted from 14 primary studies reveal that the majority of studies present new approaches and approaches usually apply statistical analysis for threshold derivation. Primary programming language for which metrics are derived is Java, followed by C, C++ and C#. We also came across some tools used for threshold derivation, but in practise their use was not detected. Metrics derived, purpose of metrics derivation and other information are also summarised in the tables bellow.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        To deliver software product in required quality, it is crucial to address and manage the quality
assurance domain properly. Software metrics can be used for reflection of the qualitative characteristics of
software modules in a qu
        <xref ref-type="bibr" rid="ref5">antitative way [Arar and Ayan 2016</xref>
        ], presenting a control instrument in a
software development and main
        <xref ref-type="bibr" rid="ref1">tenance process [Alves et al. 2010</xref>
        ]. Software metrics assess software
from different views and, therefore, belong to different metrics groups, but overall, reflect the internal
quality of s
        <xref ref-type="bibr" rid="ref2">oftware systems [Arar and Ayan 2016</xref>
        ]. The usefulness of metrics without knowing their
reference values is very limited, due mainly to interpretation difficulties [Ferreira et al. 2012]. To
overcome the above-mentioned difficulties it is important that reliable reference values of software metrics
are available.
      </p>
      <p>
        Thresholds are heuristic values that are used to set ranges of desirable and undesirable metric
values for measured software and, furthermore, used to identify anomalies which may be an actual
problem [Lorenz and Kidd 1994]. Threshold values explain if a metric value is in the normal range
[R
        <xref ref-type="bibr" rid="ref2">onchieri and Canaparo 2016</xref>
        ] and, consequently, provide a scale for paying attention to
thresholdexceeding c
        <xref ref-type="bibr" rid="ref2">omponents [Arar and Ayan 2016</xref>
        ]. There are many approaches available to compute
thresh1:2
old values. Anyway, as summ
        <xref ref-type="bibr" rid="ref5">arised by [Arar and Ayan 2016</xref>
        ], threshold definition methodology should
meet the following requirements: (1) It is built on representative benchmark data and not on opinions;
(2) Data should be analysed statistically; (3) It is repea
        <xref ref-type="bibr" rid="ref1">table and clear [Alves et al. 2010</xref>
        ; Sa´
nchezGonza´ lez et al. 2012].
      </p>
      <p>
        The aim of the presented paper is to gather available knowledge regarding software metrics
threshold derivation techniques. The first step in a literature review is to find already available related
studies. [R
        <xref ref-type="bibr" rid="ref2">onchieri and Canaparo 2016</xref>
        ] present a preliminary mapping study in the area of software
metric thresholds in which they aim to present the identified state of current affairs. Two main
research questions were formed, dealing with identification of the currently most important papers in
software metrics threshold research community, and with the meaningful aggregation of those papers.
During their review, they observed three main domain problems: (1) Unclear explanation of the method
for selecting the technique that calculates threshold; (2) A direct application of the metric threshold
values to different code context; (3) A lack of objective analysis of calculated thresh
        <xref ref-type="bibr" rid="ref2">olds [Ronchieri and
Canaparo 2016</xref>
        ]. Anyhow, the extracted domain specific data comprise the study topic and
categorisation, number and type of analysed projects, types of derived metrics and programming language and
computed threshold values. According to our knowledge, this is the only available review study
dealing with the software metrics threshold values. This was also confirmed by [R
        <xref ref-type="bibr" rid="ref2">onchieri and Canaparo
2016</xref>
        ].
      </p>
      <p>
        The previously mentioned mapping study presented the starting point in our literature review.
We addressed different research questions, so different extraction categories were defined. Since our
search provided some additional articles that [R
        <xref ref-type="bibr" rid="ref2">onchieri and Canaparo 2016</xref>
        ] did not examined, some
extraction categories remain the same. Also, the search resources were expanded in our review.
      </p>
      <p>The article is organised as follows. After the Introduction that presents an insight into the
theoretical background and related work, Section 2 presents the performed literature review. Basic data
extracted from primary studies are presented in this section. Section 3 explains and describes available
approaches for software metrics threshold derivation, together with their connections and expansions.
Extracted software metrics used in primary studies and details about derived threshold values are
presented in Section 4. The last chapter concludes the article providing the discussion and future work
opportunities.</p>
    </sec>
    <sec id="sec-2">
      <title>2. A PRELIMINARY LITERATURE REVIEW OF THE RESEARCH AREA</title>
      <p>
        Without knowing the threshold values of software metrics, their usefulness is limited. As stated by
[Ferreira et al. 2012; Alves e
        <xref ref-type="bibr" rid="ref1">t al. 2010</xref>
        ], threshold values for most metrics are still unknown.
Nevertheless, numerous approaches for metrics derivation exist; there are many research opportunities that
can be addressed aimed at improving domain knowledge. The performed literature review presents an
insight into previous research in the area.
      </p>
      <p>Based on our research purpose, four main research question were formed:
. RQ1: What approaches and methods are used for software metrics threshold derivation?
. RQ2: What is the purpose of threshold derivation?
. RQ3: For which software metrics thresholds are derived?
. RQ4: What tools are available for metrics‘ collection and threshold derivation?</p>
      <p>Based on the research questions, the following search string was formed: (”software metrics” OR
”source code metrics”) AND (”threshold” OR ”reference values”). With it, the search was conducted in
selected digital libraries. Search results by data sources and final number of selected studies after
applying inclusion and exclusion criteria are presented in Table I. Among the applied inclusion criteria
are that the study is available in selected digital libraries and is available in English, the study is from
software engineering domain and that approaches for threshold derivation are presented or if they
are just validated, the used metrics should be explained. Where available and appropriate, the search
was limited to abstract, title and keywords. Since some search tools are looking across different digital
libraries, some search results are listed in multiple categories.</p>
      <p>
        In the end, 18 primary studies were selected for detailed analysis. Among them, four articles were
excluded from the data extracti
        <xref ref-type="bibr" rid="ref2">on process. [Veado et al. 2016</xref>
        ; Foucault et al. 2014; Sousa et al. 2017]
are presenting developed tools for threshold derivation and [Vale and Figueiredo 2015] are presenting
a tailored approach for threshold derivation for use in the context of software product lines. Finally,
the data was extracted from 14 primary studies.
      </p>
      <p>
        In Table II, basic information is presented about the selected primary studies. The first one is used
programming language for which software metric thresholds were derived. As can be seen, the majority
of studies derive threshold values for the Java programming language, while reference values for other
programming languages, specifically C, C++ and C# are presented in 4 studies. Threshold values for
other programming languages were not detected. The second information matter was the purpose of
metric derivation. The majority of studies derive threshold to find or predict defects and errors in
programmes, while some of them compute reference values for code smells detec
        <xref ref-type="bibr" rid="ref1">tion purposes.
[Alves et al. 2010</xref>
        ] J
        <xref ref-type="bibr" rid="ref5">ava, C#
[Arar and Ayan 2016</xref>
        ] Java
[Benlarbi et al. 2000] C++
[B
        <xref ref-type="bibr" rid="ref2">oucher and Badri 2016</xref>
        ] Java
[Ferreira et al. 2012] Java
[Fontana et al. 2015] Java
[Foucault et al. 2014] Java
[Herbold et al. 2011] Jav
        <xref ref-type="bibr" rid="ref5">a, C#, C++, C
[Hussain et al. 2016</xref>
        ] Java
[Mihancea and Marinescu 2005] Java, C++
[Oliveira et al. 2014b] Java
[Sha
        <xref ref-type="bibr" rid="ref1">tnawi 2010</xref>
        ] Java
[Sha
        <xref ref-type="bibr" rid="ref1">tnawi et al. 2010</xref>
        ] J
        <xref ref-type="bibr" rid="ref5">ava
[Yamashita et al. 2016</xref>
        ] Java
      </p>
      <p>Maintainability level
Fault prediction
Fault prediction
Fault prediction
Detecting design flaws
Code smell detection
Risky classes
Evaluate quality attributes
Fault prediction
Detecting design flaws
Internal quality
Error risk level
Error risk level
Defect risk</p>
      <p>
        The process of metric computation or threshold derivation is sometimes automated with tool support.
As already menti
        <xref ref-type="bibr" rid="ref2">oned, [Veado et al. 2016</xref>
        ] present a TDTool for threshold derivation and [Oliveira et al.
2014a] present an RTTool for the same purpose. While TDTool supports any kind of metrics, RTTool
compute threshold only for class level metrics that have heavy-tailed distribution. [Sousa et al. 2017]
propose a FindSmells tool for smells detection in software systems based on software metrics and their
thresholds. While linked to threshold computation, tools for metrics derivation was listed in some
articles. The tools that were used in the selected primary studies are Conecta [Ferreira et al. 2012],
ckjm t
        <xref ref-type="bibr" rid="ref2">ool [Arar and Ayan 2016</xref>
        ], Borland
        <xref ref-type="bibr" rid="ref1">Together [Shatnawi 2010</xref>
        ], Moose platform and VerveineJ
[Oliveira et al. 2014b] and SIG Software Analysis
        <xref ref-type="bibr" rid="ref1">Toolkit [Alves et al. 2010</xref>
        ].
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. APPROACHES FOR THRESHOLD DERIVATION OF SOFTWARE METRICS</title>
    </sec>
    <sec id="sec-4">
      <title>3.1 Novel Approaches</title>
      <p>Different derivation approaches are proposed among the articles about metrics thresholds. According
to [Fontana et al. 2015], approaches can be based on observation, statistical analysis, metrics
analysis and machine learning. Detected approaches from primary studies are summarised and presented
below in chronological order of publications.</p>
      <p>[Erni and Lewerentz 1996] present a statistical method based on [DeMarco 1986] statement talking
about judging metric values based on comparison to similar projects. They compute the average ( ) and
standard deviation ( ) of metric values of one software system, on the assumption that the metrics are
distributed normally. The lower (Tmin = ) and the higher (Tmax = + ) thresholds can be produced
based on calculated values. Values that are outside the interval are considered as outliers.</p>
      <p>A method called Tuning Machine is presented by [Mihancea and Marinescu 2005]. The method is
proposing a solution dealing with the problem of threshold values that should be used by a detection
strategy. The new method for establishing proper threshold values is proposed with the help of a
genetic algorithm.</p>
      <p>
        Identifying the threshold values using Receiver Operating Characteristic (ROC) curves is presen
        <xref ref-type="bibr" rid="ref1">ted
by [Shatnawi et al. 2010</xref>
        ]. They claim that meaningful and useful threshold values must be associated
with design factors of interest. Therefore, their identification of metric thresholds is associated with
class error probability, since their goal is to identify faults. ROC, a diagnostic accuracy test [Zweig
and Campbell 1993], was used previously to make decisions in the diagnostic area in Radiology
[Hanley and McNeil 1982] and clinical medicine [Zweig and Campbell 1993]. Since medicine represents a
field in which metrics and their thresholds represent crucial information [Ferreira et al. 2012], many
approaches now used in software engineering have roots in the medical domain. When calculating
reference values of object-oriented metrics, several ways can be followed. However, [Sha
        <xref ref-type="bibr" rid="ref1">tnawi et al.
2010</xref>
        ] are making the first attempt to use it for identifying object-oriented metric threshold values.
They analyse three versions of Eclipse software, also using the error data from Bugzilla. The errors
were then divided into three categories (Low, Medium, High) and statistical analyses were conducted
to identify metric values that could classify Eclipse classes into different error categories (binary and
ordinal).
      </p>
      <p>
        Existing approaches that derive metrics threshold values systematically do not take into account the
different statistical properties of sof
        <xref ref-type="bibr" rid="ref1">tware metrics [Alves et al. 2010</xref>
        ]. For that reason, a method that
derives metrics thresholds values based on empirical measurement is presen
        <xref ref-type="bibr" rid="ref1">ted by [Alves et al. 2010</xref>
        ].
It considers different data distribution and scales of source code metrics, and it is also resilient against
outliers. For the presented method, which contains six steps, the benchmark of 100 object-oriented
Java and C# systems were used for defining metrics reference values.
      </p>
      <p>
        A statistical approach for threshold derivation with the help of a logistic regression model is
presen
        <xref ref-type="bibr" rid="ref1">ted by [Shatnawi 2010</xref>
        ]. Logistic regression validates metrics and constructs a threshold model. The
connection was checked between single metric and fault probability. For significant metrics thresholds,
values were investigated with the use of the Bender method [Bender 1999], that has its source in the
medical domain. Bender [Bender 1999] proposed two methods for finding possible thresholds: Value of
an Acceptable Risk Level (VARL) and lower Value of an Acceptable Risk Gradient (VARG).
      </p>
      <p>Machine learning techniques were used in the approach by [Herbold et al. 2011]. They presented a
programming language independent data driven method for threshold value calculation. Methodology
can also be used for efficiency optimisation of existing metric sets and for the simplification of complex
classification models.</p>
      <p>[Ferreira et al. 2012] aimed at defining threshold values for object-oriented software metrics.
Thresholds were derived by analysing the statistical properties of the data obtained by a large collection of
different size and domain projects. After data were gathered, the values used most commonly in
practice were identified. 40 projects were analysed and reference values for six metrics were calculated,
taking into account the relevant data distribution.</p>
      <p>Since it was shown that thresholds are connected to the context of a project, the approach by
[Foucault et al. 2014] aims to overcome the mentioned drawback by presenting a method that can compute
the threshold for any given context. They select software projects and entities randomly and follow the
[Chidamber et al. 1998] principle that considers that a metric threshold can be derived from a quantile
of the distribution of metric values. The input is quantile and estimation of corresponding thresholds
is computed using a process that relies on the bootstrap statistical approach.</p>
      <p>
        The Bender approach [Bender 1999] was used
        <xref ref-type="bibr" rid="ref5">as a basis by [Hussain et al. 2016</xref>
        ]. They proposed a
model for metrics threshold derivation with use of non-linear functions, described with logistic
regression coefficient.
      </p>
    </sec>
    <sec id="sec-5">
      <title>3.2 Extensions and validations of Existing Approaches and Replicated Studies</title>
      <p>An empirical method for extracting relative threshold for software metrics of real systems based on
benchmark data is presented by [Oliveira et al. 2014b]. The absolute metrics threshold can be
complemented and the definition of relative threshold introduced: p% of the entities should have M k.
M is the source code metric calculated and p is the percentage of entities that upper limit k should be
applied to. Values of p and k are calculated.</p>
      <p>
        [Fontana et al. 2015] also present a benchmark based data driven approach for deriving metrics
reference values. Similar to [Oliveira et al. 2014b], the presented approach is inspired by [Alves e
        <xref ref-type="bibr" rid="ref1">t al.
2010</xref>
        ]. The main goal is to design a method that can be applied on metrics that do not represent ratio
values, typically ranging in the interval [0,1]. The method takes into account the statistical properties
of obtained data of 74 open source projects.
      </p>
      <p>
        Logistic regression wa
        <xref ref-type="bibr" rid="ref4">s used by [Benlarbi et al. 2000</xref>
        ], investigating the connection between faults
and software metrics. Two models were constructed, one with threshold values and the other without.
The models were then compared looking for connection.
      </p>
      <p>
        [Arar and Ayan 2016] replica
        <xref ref-type="bibr" rid="ref1">ted the study by [Shatnawi 2010</xref>
        ] and used a broader range of datasets
and metrics, trying to resolve the problem regarding project dependent threshold values, so that other
projects could benefit from the derived thresholds. Another replication study was published by
[Y
        <xref ref-type="bibr" rid="ref5">amashita et al. 2016</xref>
        ] using
        <xref ref-type="bibr" rid="ref1">the method by [Alves et al. 2010</xref>
        ] is used.
      </p>
      <p>
        The techniques based on the benchmark based me
        <xref ref-type="bibr" rid="ref1">thod [Alves et al. 2010</xref>
        ] and ROC curves [Sha
        <xref ref-type="bibr" rid="ref1">tnawi
et al. 2010</xref>
        ] were compared and investigated by [B
        <xref ref-type="bibr" rid="ref2">oucher and Badri 2016</xref>
        ]. Both methods were assessed
as fault predictors and compared with the help of machine learning algorithms, which are often used
as a fault-proneness prediction.
      </p>
    </sec>
    <sec id="sec-6">
      <title>4. SOFTWARE METRIC THRESHOLDS</title>
      <p>
        A number of different metrics were used in the selected primary studies and different threshold values
were derived. Which software metrics in particular are presented Table III. Metrics are presented used
either in the derivation or validation process. Most commonly, primary studies use the CK (Chidamber
&amp; Kemerer) object-oriented metric
        <xref ref-type="bibr" rid="ref7">s [Chidamber and Kemerer 1994</xref>
        ], consisting of six metrics: WMC
1:6
(Weighted Methods Per Class), DIT (Depth of Inheritance Tree), NOC (Number of Children), CBO
(Coupling between Object Classes), RFC (Response For a Class), LCOM (Lack of Cohesion of Methods).
Together with them, some other metrics are also used. Table III also gives information about the form
in which the derived threshold values are presented. Usually, reference values are presented as a single
numerical value, sometimes in the form of intervals. Rarely, primary studies present just approaches,
and do not provide any concrete threshold value.
Presented Thresholds
Yes (numeric)
      </p>
      <p>Another point of interest was also the area of software metrics‘ correlation and combination. The
correlation of metrics, meaning combining semantically related metrics, were not detected. On the
other hand, the metric combination was presented only for purpose of composing rules for code smell
detection [Mihancea and Marinescu 2005; Fontana et al. 2015].</p>
    </sec>
    <sec id="sec-7">
      <title>5. CONCLUSION</title>
      <p>As presented in literature, thresholds are crucial for software metrics‘ interpretation and,
consequently, for increasing their use in practice [Ferreira et al. 2012]. Many derivation approaches can
be found in the literature, each having its own characteristics. Deriving software metric thresholds is
an important research topic ,which was confirmed with the performed literature review and selected
primary studies. Findings of the review are summarised in Table I, II and III, presenting answers to
the proposed research questions.</p>
      <p>
        In the context of RQ1, we searched for available software metrics derivation approaches, which are
presented in chapter 3. First, approaches that were proposed for the first time are presen
        <xref ref-type="bibr" rid="ref1">ted, like
[Alves et al. 2010</xref>
        ; Erni and Lewerentz 1996; Ferreira et al. 2012; Sha
        <xref ref-type="bibr" rid="ref1">tnawi 2010</xref>
        ], after them, if
available, the validation or extension of those approaches can be seen. The majority of primary studies
derive thresholds for error finding purposes, some of them also for code smell detection, regarding
the answer on RQ2. With RQ3, we were looking for software metrics for which thresholds were
derived. As can be seen in Table III, authors often use CK object-oriented metrics, adding other software
metrics. The last research question, RQ4, was aimed at identifying tools, either for metric calculation
or threshold derivation. Among primary studies, tools are prop
        <xref ref-type="bibr" rid="ref2">osed like TDTool [Veado et al. 2016</xref>
        ],
RTTool [Oliveira et al. 2014a] and FindSmells tool [Sousa et al. 2017] are proposed.
      </p>
      <p>According to our findings, possible research directions can be highlighted. The presented approaches
for software metric derivation that are, nowadays, usually used to find and predict errors, defects or
deficiencies in software modules, can be used in the context of threshold derivation for code smell
detection. Also, derived thresholds aimed at code smell detection can be compared to ones derived
for fault prediction. Since different programme languages are not represented widely among primary
studies, thresholds can be derived also for other languages and compared to already derived thresholds
for Java. The use and comparisons of presented threshold derivation tools can be done, assessing and
comparing their derived threshold values. Finally, tools can also be used in the context of code smell
detection.</p>
      <p>Acknowledgements
The authors acknowledge the financial support from the Slovenian Research Agency under The Young
Researchers Programme (SICRIS/SRA code 35512, RO 0796, Programme P2-0057).</p>
      <p>K. Erni and C. Lewerentz. 1996. Applying design-metrics to object-oriented frameworks. In Proceedings of the 3rd International</p>
      <p>Software Metrics Symposium. 64–74.</p>
      <p>Kecia A.M. Ferreira, Mariza A.S. Bigonha, Roberto S. Bigonha, Luiz F.O. Mendes, and Heitor C. Almeida. 2012. Identifying
thresholds for object-oriented software metrics. Journal of Systems and Software 85, 2 (2012), 244 – 257. Special issue with
selected papers from the 23rd Brazilian Symposium on Software Engineering.</p>
      <p>F. Arcelli Fontana, V. Ferme, M. Zanoni, and A. Yamashita. 2015. Automatic Metric Thresholds Derivation for Code Smell</p>
      <p>Detection. In 2015 IEEE/ACM 6th International Workshop on Emerging Trends in Software Metrics.</p>
      <p>Matthieu Foucault, Marc Palyart, Jean-Re´my Falleri, and Xavier Blanc. 2014. Computing Contextual Metric Thresholds. In</p>
      <p>Proceedings of the 29th Annual ACM Symposium on Applied Computing (SAC ’14). ACM, New York, NY, USA, 1120–1125.
J A Hanley and B J McNeil. 1982. The meaning and use of the area under a receiver operating characteristic (ROC) curve.</p>
      <p>Radiology 143, 1 (1982), 29–36.</p>
      <p>Steffen Herbold, Jens Grabowski, and Stephan Waack. 2011. Calculation and optimization of thresholds for sets of software
metrics. Empirical Software Engineering 16, 6 (01 Dec 2011), 812–841.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <given-names>T. L.</given-names>
            <surname>Alves</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ypma</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Visser</surname>
          </string-name>
          .
          <year>2010</year>
          .
          <article-title>Deriving metric thresholds from benchmark data</article-title>
          .
          <source>In 2010 IEEE International Conference on Software Maintenance</source>
          .
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>O¨mer Faruk Arar</article-title>
          and Ku¨ rs¸at Ayan.
          <year>2016</year>
          .
          <article-title>Deriving thresholds of software metrics to predict faults on open source software: Replicated case studies</article-title>
          .
          <source>Expert Systems with Applications</source>
          <volume>61</volume>
          (
          <year>2016</year>
          ),
          <fpage>106</fpage>
          -
          <lpage>121</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>Ralf</given-names>
            <surname>Bender</surname>
          </string-name>
          .
          <year>1999</year>
          .
          <article-title>Quantitative Risk Assessment in Epidemiological Studies Investigating Threshold Effects</article-title>
          .
          <source>Biometrical Journal</source>
          <volume>41</volume>
          ,
          <issue>3</issue>
          (
          <year>1999</year>
          ),
          <fpage>305</fpage>
          -
          <lpage>319</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <given-names>S.</given-names>
            <surname>Benlarbi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>El Emam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Goel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Rai</surname>
          </string-name>
          .
          <year>2000</year>
          .
          <article-title>Thresholds for object-oriented measures</article-title>
          .
          <source>In Proceedings 11th International Symposium on Software Reliability Engineering. ISSRE</source>
          <year>2000</year>
          .
          <volume>24</volume>
          -
          <fpage>38</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <given-names>A.</given-names>
            <surname>Boucher</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Badri</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Using Software Metrics Thresholds to Predict Fault-Prone Classes in Object-Oriented Software</article-title>
          .
          <source>In 2016 4th Intl Conf on Applied Computing and Information Technology/3rd Intl Conf on Computational Science/Intelligence and Applied Informatics/1st Intl Conf on Big Data</source>
          ,
          <article-title>Cloud Computing, Data Science Engineering (ACIT-CSII-BCD)</article-title>
          .
          <volume>169</volume>
          -
          <fpage>176</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <given-names>S. R.</given-names>
            <surname>Chidamber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. P.</given-names>
            <surname>Darcy</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C. F.</given-names>
            <surname>Kemerer</surname>
          </string-name>
          .
          <year>1998</year>
          .
          <article-title>Managerial use of metrics for object-oriented software: an exploratory analysis</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          <volume>24</volume>
          ,
          <issue>8</issue>
          (Aug
          <year>1998</year>
          ),
          <fpage>629</fpage>
          -
          <lpage>639</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <given-names>S. R.</given-names>
            <surname>Chidamber</surname>
          </string-name>
          and
          <string-name>
            <given-names>C. F.</given-names>
            <surname>Kemerer</surname>
          </string-name>
          .
          <year>1994</year>
          .
          <article-title>A metrics suite for object oriented design</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          <volume>20</volume>
          ,
          <issue>6</issue>
          (Jun
          <year>1994</year>
          ),
          <fpage>476</fpage>
          -
          <lpage>493</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>