<!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 />
    <article-meta>
      <title-group>
        <article-title>Machine learning techniques for predicting software code properties using design metrics ⋆</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Vira Liubchenko</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Odesa Polytechnic National University</institution>
          ,
          <addr-line>Shevchenka av. 1, 65044 Odesa</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <fpage>0000</fpage>
      <lpage>0002</lpage>
      <abstract>
        <p>This paper proposed an information technology to predict code properties based on software design metrics, underscoring the critical interplay between metrics and software code properties. A meticulous case study leveraging data from 39 open-source Java projects demonstrates the efficacy of machine learning methodologies, including random forest and artificial neural networks, in predicting code properties utilizing selected design metrics. The study reveals insights into the correlation between design metrics and lines of code (LOC), suggesting the feasibility of using design metrics for LOC forecasting and, by extension, various software characteristics. The findings emphasize the importance of prioritizing generalizability over specificity to enhance the model's reliability across diverse software engineering contexts. Overall, this paper advances our understanding of the significance of design metrics in forecasting code properties, providing valuable insights into their application within software engineering practices to mitigate risks and enhance software quality. Through these contributions, this research lays a solid foundation for further exploring and utilizing design metrics in software development processes.</p>
      </abstract>
      <kwd-group>
        <kwd>software quality assurance</kwd>
        <kwd>predictive modelling</kwd>
        <kwd>design metrics</kwd>
        <kwd>performance prediction</kwd>
        <kwd>machine learning</kwd>
        <kwd>software engineering</kwd>
        <kwd>regression analysis</kwd>
        <kwd>classification techniques</kwd>
        <kwd>open-source Java projects1</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Software quality assurance issues are becoming increasingly important with the spread of
software into different spheres of industry and life and with the increasing variety of software
types. Therefore, the quest for quality assurance remains paramount. However, achieving these
objectives requires more than post hoc debugging and testing; it necessitates proactive
measures to predict and preempt potential issues before they manifest. This is where the
concept of quantitative prediction emerges as a pivotal tool in the arsenal of software engineers.
By leveraging design metrics, architectural insights, and empirical data, engineers could
anticipate how a software system will behave under different conditions, enabling them to
∗ Corresponding author.
† These authors contributed equally
optimize its design, allocate resources judiciously, and mitigate potential bottlenecks before
deployment.</p>
      <p>The importance of performance prediction cannot be overstated in today's software
development landscape. In modern IT environments, the traditional approach of reactive
troubleshooting proves inadequate, if not impractical. Performance prediction offers a proactive
strategy to address these challenges, empowering stakeholders to make informed decisions at
every stage of the software development lifecycle.</p>
      <p>
        At the heart of prediction is the premise that specific design metrics are reliable software
quality indicators [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. These metrics encompass various aspects of the software architecture,
including its modularity, coupling, cohesion, complexity, and extensibility. By analyzing these
metrics, researchers and practitioners seek to discern patterns and correlations that shed light
on the system's future performance characteristics.
      </p>
      <p>
        For instance, studies have shown that high coupling levels between modules tend to increase
the propagation of defects and decrease the system's resilience to change [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Similarly, as
measured by metrics like cyclomatic complexity or code churn, excessive complexity often
correlates with higher defect density and lower maintainability. By identifying such patterns,
developers can proactively refactor the source code and streamline its structure.
      </p>
      <p>Advances in machine learning and data analytics enable the development of predictive
models that leverage historical data to forecast software quality metrics. We can identify
underlying trends and accurately predict future outcomes by training these models on
repositories of code artefacts, bug reports, and performance logs.</p>
      <p>Predicting software performance characteristics based on design metrics holds immense
significance. It offers tangible cost reduction, risk mitigation, and stakeholder satisfaction
benefits. Software engineers can avoid costly rework, delays, and customer dissatisfaction by
identifying potential performance issues early in the software lifecycle. Either limited or absent
historical data typically hinders this endeavour. Existing datasets detailing software defects
typically lack measurements about the design aspect. Secondly, datasets focusing on design
components are often gathered on a per-project basis and lack extensive measurements.</p>
      <p>This paper explores methodologies for utilizing indirect metrics to forecast software
performance characteristics during the software design phase.</p>
      <p>The paper is structured as follows. Section 2 provides an overview of the published research
on which our work is based. In section 3, we describe information technology for prediction.
Section 4 describes the application of the proposed information technology. Finally, the general
conclusions of the work are collected in Section 5.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Literature review</title>
      <p>Given the paper's focus on software design metrics, we thoroughly analyzed articles about this
category of metrics. It's important to highlight that our review exclusively included articles
published after 2018.</p>
      <p>
        The paper [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] compared five common design patterns regarding code metrics and time
efficiency. It discussed the advantages and disadvantages of each design pattern. It concluded
that some metrics might be the same or better with simple solutions, while others might benefit
from design patterns. Interestingly, experiments demonstrated the dependencies between
design metrics and performance characteristics.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], the authors concluded that object-oriented design metrics can be used as early
indicators of software reliability and that the neural network model can effectively model the
relationship between metrics and reliability. They suggested that this can help reduce software
development and testing costs and effort. The authors used various metrics to measure
objectoriented software's design complexity, coupling, cohesion, inheritance, and size.
      </p>
      <p>
        The authors of [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] described using guide cards based on software metrics to identify four
design smells and spectral clustering to group similar smells across different software versions.
They analyzed four large Java open-source software projects and demonstrated the possibility
of design smell detection based on the software metrics.
      </p>
      <p>
        The paper [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] investigates the alignment between quality improvement and software design
metrics by focusing on eight internal quality attributes and 27 structural metrics. It finds that
most design metrics are mapped to the main quality attributes. However, quality attributes,
such as encapsulation, abstraction, polymorphism, and design size, are poorly represented by
any metrics.
      </p>
      <p>
        Silva et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] also studied the relationship with software quality attributes but for software
architecture metrics. This study confirmed the existence of relationships and allowed the
creation of a catalogue of such relationships.
      </p>
      <p>
        Special consideration should be directed towards the research [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. The work introduces a
novel approach leveraging neural networks to assess software quality characteristics using
quality attributes. Internal metrics, which could be estimated using software design, serve as
the basis for these quality attributes.
      </p>
      <p>
        The paper [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] applied software design metrics, such as coupling, cohesion, complexity, and
size, to the developer story. It used them as input parameters for supervised machine learning
algorithms to predict a class's source code size. The paper conducted a case study based on 30
open-source Java systems and demonstrated the usefulness and effectiveness of metrics for
predicting a class's source code size.
      </p>
      <p>
        The paper [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] investigated the relations among the parameters of object-oriented software
metrics using complex network analysis. The authors collected a dataset of object-oriented
metrics and their parameters and created a network of parameters based on their co-occurrence
in metrics. The authors found that some parameters were more frequently used and more
strongly related than others and that the distance between parameters was short regardless of
the property they belonged to. The authors concluded that understanding the relationship
among software metrics' parameters can help software developers select metrics during the
software design phase and that network measurements can be helpful tools for analyzing the
relations among software metrics and parameters.
      </p>
      <p>
        The paper [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] proposed a solution for automating the evaluation of Java project design
quality in an educational setting using object-oriented metrics and neural networks. Using
manually assigned points as labels, the authors trained a neural network model to predict the
design quality score based on the metric values. The model was evaluated on two student
projects and homework datasets, and satisfactory results were reported.
      </p>
      <p>
        The paper [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] proposed a framework to assess the impact of design patterns on software
metrics. The results showed no consistent software metrics behaviour between the pattern and
non-pattern versions. However, we want to point out that the authors do not deny the metrics'
consistent behaviour with the software code's characteristics.
      </p>
      <p>In summarizing the published research, it became evident that all researchers acknowledged
the dependency between design metrics and software code properties. The disparity lies in the
approaches employed to leverage or model this dependency. Armed with this understanding of
the correlation, we can now develop information technology for predicting code properties
based on design metrics.</p>
      <p>However, we must point out that few studies link design metrics to software characteristics.
The main body of publications is devoted to using code characteristics, mainly the number of
lines of program code metrics, to predict different software properties.</p>
      <p>
        Lines of code (LOC) is a fundamental software code measure widely used as a proxy for
software development effort or as a normalization factor in many other software-related
measures [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>
        The most developed topic is software defect prediction (SDP). Pradhan et al. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] used
software size in KLOC as an attribute for the SDP model. Effort-aware SDP ranks software
modules according to the defect density of software modules, which allows testers to find more
defects while reviewing a certain amount of code [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. This method uses LOC as input data. In
[
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], authors proposed a deep-learning-based method for predicting potential code defects in
software modules. This method used semantic features and LOC simultaneously using the
hierarchical LSTM architecture.
      </p>
      <p>
        However, other applications were described. The experimental results in [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] showed a
relationship between testing and LOC. The authors of [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] successfully used LOC for measuring
the Maintainability Index. The research [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] used LOC for effort prediction on projects
developed with agile methods and a microservice-based architecture.
      </p>
      <p>Based on the analysis performed, we can assume the feasibility of LOC forecasting based on
software design metrics. Predicting various software characteristics based on LOC is a
wellstudied task.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Information technology description</title>
      <p>Let us generalize the published insights. Information technology aims to predict significant
software quality features during the design phase, reducing uncertainty in software projects.</p>
      <p>
        Input data consists of measurements on metrics that describe the software design. Various
authors have proposed different sets of metrics, with the most comprehensive list presented in
[
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. The results are the quality features that we predict.
      </p>
      <p>A natural constraint on the choice of input and output data is the availability of historical
data on the selected metrics. After all, a predictive machine learning model must be trained on
historical data.</p>
      <p>Information technology comprises two core procedures: model identification and prediction
utilizing the model. Both procedures are widely recognized and nearly standard in machine
learning. Figure 1 outlines a schematic representation of these procedures.</p>
      <p>A sufficient accuracy level of quality feature prediction under specific conditions could always
be determined. Depending on this, a particular predicting technique should be chosen.</p>
      <p>It's important to note that while the technology itself is significant, the primary focus of our
work lies in the results yielded by the case study.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Case study</title>
      <p>The developed information technology underwent testing using data from 39 open-source Java
projects. Data measurements were collected for individual components across 86 metrics within
each project. Specific metrics exhibit explicit dependencies, such as the correlation between the
number of LOC and kilo lines of program code (KLOC).</p>
      <p>Figure 2 illustrates data from three randomly chosen projects plotted in the space defined by
the first two principal components. It's important to highlight that the component
characteristics of these projects are notably similar, indicating that the datasets from individual
projects can be effectively merged.</p>
      <p>From the available set of metrics, we used only those related to the software design, namely
•
•
•
•
•
•
•</p>
      <p>Number of Attributes (NOA),
Number of Parameters (NOP),
Number of Children (NOC),
Coupling Between Objects (CBO),
Depth Inheritance Tree (DIT),
Response for a Class (RFC),</p>
      <p>Lack of Cohesion of Methods (LCOM5).</p>
      <p>The datasets provided did not include measurements of metrics directly tied to the quality
of a software product, such as the quantity or presence of defects. Nevertheless, it has been
established that the number of defects tends to be proportionate to the number of LOCs. This
dependency was utilized in our analysis.</p>
      <p>Initially, we explored existing linear dependencies by examining the correlation matrix.
Consequently, we identified only two significant linear dependencies with LOC: CBO and RFC.
Therefore, we opted not to utilize linear regression. Instead, we employed random forest (RF),
AdaBoost, and artificial neural network (ANN) to model the regression dependence.</p>
      <p>We utilized the Mean Absolute Percentage Error (MAPE) to assess the prediction quality. In
our experiment, the AdaBoost method yielded the poorest result, with an error exceeding 100%.
The Random Forest (RF) method achieved a MAPE of 40.64%, while the Artificial Neural
Network (ANN) allowed for a reduction of MAPE to 30.49%. However, it's important to note
that these results alone do not definitively establish neural networks as the superior prediction
method.</p>
      <p>It's well-known that achieving quality results with neural networks often requires training
the model on extensive datasets. Our experiment validated this notion. When the neural
network was trained solely on data from one project, the prediction error surpassed 100%, which
is comparable to AdaBoost's MAPE. Conversely, the RF and AdaBoost methods exhibited
consistent performance across different training dataset sizes—whether trained on data from
one, multiple, or all projects.</p>
      <p>In summarizing the results obtained, it became apparent that the regression model yielded
forecasts of low quality. However, it's worth noting that our primary concern wasn't forecasting
LOC itself. Instead, we focused on utilizing LOC to infer quality characteristics. Consequently,
we could establish varying "risk" levels based on module sizes measured by LOC and transition
to a classification task. Figure 3 depicts the frequency distribution of LOC values.</p>
      <p>Most modules contain up to 75 LOC, suggesting that modules of this size typically exhibit
acceptable quality. Conversely, there are a few extensive modules, which likely present
challenges. Hence, we propose categorizing modules with LOC&gt;75 as risky.</p>
      <p>As it was realized for regression, we used RF, AdaBoost, and ANN methods for the classifier.
The results obtained were almost the same (Table 1).</p>
      <p>We observe that the ANN demonstrated slightly inferior performance, likely attributed to
the inadequacy of the sample size used. For practical applications, RF is preferable due to its
consistent performance across datasets of varying sizes and its simplicity compared to the
AdaBoost method.</p>
      <p>Therefore, reducing the specificity of the outcome criteria enables the development of a
model with satisfactory prediction accuracy.</p>
      <p>This inference remains valid irrespective of the programming language utilized or the type
of project under consideration. By broadening the scope of outcome criteria, the model becomes
more adaptable and capable of providing reliable predictions across various contexts.</p>
      <p>This flexibility enhances the model's utility and ensures its applicability in diverse software
engineering scenarios. Consequently, prioritizing generalizability over specificity enhances the
model's effectiveness and reliability in predicting outcomes.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion</title>
      <p>The importance of performance prediction cannot be overstated in modern software
development environments. Traditional reactive troubleshooting approaches often prove
inadequate or impractical. Performance prediction offers a proactive strategy to address these
challenges, empowering stakeholders to make informed decisions at every stage of the software
development lifecycle.</p>
      <p>Advances in machine learning and data analytics have facilitated the development of
predictive models that leverage historical data to forecast software quality metrics. We can
identify underlying trends and accurately predict future outcomes by training these models on
repositories of code artefacts, bug reports, and performance logs.</p>
      <p>Predicting software quality based on design metrics offers tangible benefits, including cost
reduction, risk mitigation, and stakeholder satisfaction. By identifying potential performance
issues early in the software lifecycle, software engineers can avoid costly rework, delays, and
customer dissatisfaction.</p>
      <p>Reviewing the literature, we find a wealth of research exploring the relationship between
design metrics and software quality. Various studies have investigated the efficacy of different
metrics and modelling techniques in predicting software reliability, identifying design smells,
and assessing the impact of design patterns on software metrics.</p>
      <p>Our information technology aims to generalize these insights and provide a framework for
predicting significant quality features during the design phase, thereby reducing uncertainty in
software projects. By utilizing historical data on design metrics, we can develop predictive
models that offer valuable insights into the future performance of software systems.</p>
      <p>In our case study, we tested the developed information technology using data from 39
opensource Java projects. By analyzing metrics related to software projects and employing
regression and classification techniques, we sought to predict software quality characteristics.
Our results highlight the importance of training predictive models on extensive datasets and
the potential limitations of specific modelling techniques.</p>
      <p>Ultimately, our findings underscore the value of predictive modelling in software
engineering, offering a proactive approach to software quality assurance. Engineers can make
informed decisions and optimize software designs by leveraging design metrics and historical
data for improved performance and reliability.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>J.</given-names>
            <surname>Rashid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Mahmood</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. W.</given-names>
            <surname>Nisar</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          <article-title>Study on Software Metrics and its Impact on Software Quality</article-title>
          , in: ArXiv,
          <year>2019</year>
          , abs/
          <year>1905</year>
          .12922. URL: https://api.semanticscholar.org/CorpusID:170078652.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>P.</given-names>
            <surname>Skiada</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ampatzoglou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.-M.</given-names>
            <surname>Arvanitou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Chatzigeorgiou</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Stamelos</surname>
          </string-name>
          ,
          <source>Exploring the Relationship between Software Modularity and Technical Debt, in: 2018 44th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)</source>
          , Prague, Czech Republic,
          <year>2018</year>
          , pp.
          <fpage>404</fpage>
          -
          <lpage>407</lpage>
          . doi:
          <volume>10</volume>
          .1109/SEAA.
          <year>2018</year>
          .
          <volume>00072</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Karavokyris</surname>
          </string-name>
          , E. Alepis,
          <article-title>Software Measures for Common Design Patterns Using Visual Studio Code Metrics</article-title>
          ,
          <source>in: 9th International Conference on Information, Intelligence, Systems and Applications (IISA)</source>
          , Zakynthos, Greece,
          <year>2018</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>7</lpage>
          . doi:
          <volume>10</volume>
          .1109/IISA.
          <year>2018</year>
          .
          <volume>8633694</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>C. H.</given-names>
            <surname>Madhav</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. S. V.</given-names>
            <surname>Kumar</surname>
          </string-name>
          ,
          <article-title>A method for predicting software reliability using object oriented design metrics</article-title>
          ,
          <source>in: International Conference on Intelligent Computing and Control Systems (ICCS)</source>
          , Madurai, India,
          <year>2019</year>
          , pp.
          <fpage>679</fpage>
          -
          <lpage>682</lpage>
          . doi:
          <volume>10</volume>
          .1109/ICCS45141.
          <year>2019</year>
          .
          <volume>9065541</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Imran</surname>
          </string-name>
          ,
          <article-title>Design Smell Detection and Analysis for Open Source Java Software</article-title>
          ,
          <source>in: IEEE International Conference on Software Maintenance and Evolution (ICSME)</source>
          , Cleveland,
          <string-name>
            <surname>OH</surname>
          </string-name>
          , USA,
          <year>2019</year>
          , pp.
          <fpage>644</fpage>
          -
          <lpage>648</lpage>
          . doi:
          <volume>10</volume>
          .1109/ICSME.
          <year>2019</year>
          .
          <volume>00104</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>E. A.</given-names>
            <surname>AlOmar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. W.</given-names>
            <surname>Mkaouer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ouni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kessentini</surname>
          </string-name>
          ,
          <article-title>On the Impact of Refactoring on the Relationship between Quality Attributes and Design Metrics</article-title>
          ,
          <source>in: ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)</source>
          , Porto de Galinhas, Brazil,
          <year>2019</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>11</lpage>
          . doi:
          <volume>10</volume>
          .1109/ESEM.
          <year>2019</year>
          .
          <volume>8870177</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>S.</given-names>
            <surname>Silva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Tuyishime</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Santilli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Pelliccione</surname>
          </string-name>
          , L. Iovino, Quality Metrics in Software Architecture,
          <source>in: 2023 IEEE 20th International Conference on Software Architecture (ICSA)</source>
          , L'Aquila, Italy,
          <year>2023</year>
          , pp.
          <fpage>58</fpage>
          -
          <lpage>69</lpage>
          . doi:
          <volume>10</volume>
          .1109/ICSA56044.
          <year>2023</year>
          .
          <volume>00014</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Lebiga</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hovorushchenko</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kapustian</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2022</year>
          ).
          <article-title>Neural-Network Model of Software Quality Prediction Based on Quality Attributes</article-title>
          .
          <source>Computer Systems and Information Technologies, (1)</source>
          ,
          <fpage>69</fpage>
          -
          <lpage>74</lpage>
          . doi:
          <volume>10</volume>
          .31891/CSIT-2022-1-9.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>A.</given-names>
            <surname>Algarni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Magel</surname>
          </string-name>
          ,
          <article-title>Applying Software Design Metrics to Developer Story: A Supervised Machine Learning Analysis</article-title>
          ,
          <source>in: IEEE First International Conference on Cognitive Machine Intelligence (CogMI)</source>
          , Los Angeles, CA, USA,
          <year>2019</year>
          , pp.
          <fpage>156</fpage>
          -
          <lpage>159</lpage>
          . doi:
          <volume>10</volume>
          .1109/CogMI48466.
          <year>2019</year>
          .
          <volume>00030</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>M. M. A. Dabdawb</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Mahmood</surname>
          </string-name>
          ,
          <article-title>A Network of Object-Oriented Software Metrics' Parameters</article-title>
          , in: IEEE International Conference on Communication,
          <article-title>Networks and Satellite (COMNETSAT), Purwokerto</article-title>
          , Indonesia,
          <year>2021</year>
          , pp.
          <fpage>172</fpage>
          -
          <lpage>178</lpage>
          . doi:
          <volume>10</volume>
          .1109/COMNETSAT53002.
          <year>2021</year>
          .
          <volume>9530822</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ćelosmanović</surname>
          </string-name>
          , V. Ljubović,
          <article-title>JMetricGrader: A software for evaluating student projects using design object-oriented metrics and neural networks</article-title>
          ,
          <source>in: 45th Jubilee International Convention on Information, Communication and Electronic Technology (MIPRO)</source>
          , Opatija, Croatia,
          <year>2022</year>
          , pp.
          <fpage>532</fpage>
          -
          <lpage>537</lpage>
          . doi:
          <volume>10</volume>
          .23919/MIPRO55190.
          <year>2022</year>
          .
          <volume>9803776</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M. G.</given-names>
            <surname>Al-Obeidallah</surname>
          </string-name>
          ,
          <article-title>Towards a Framework to Assess the Impact of Design Patterns on Software Metrics</article-title>
          , in: International Conference on Multimedia Computing,
          <article-title>Networking and Applications (MCNA), Valencia</article-title>
          , Spain,
          <year>2023</year>
          , pp.
          <fpage>67</fpage>
          -
          <lpage>72</lpage>
          . doi:
          <volume>10</volume>
          .1109/
          <string-name>
            <surname>MCNA59361</surname>
          </string-name>
          .
          <year>2023</year>
          .
          <volume>10185865</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Ochodek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Durczak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Nawrocki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Staron</surname>
          </string-name>
          ,
          <article-title>Mining Task-Specific Lines of Code Counters</article-title>
          , in: IEEE Access 11 (
          <year>2023</year>
          )
          <fpage>100218</fpage>
          -
          <lpage>100233</lpage>
          . doi:
          <volume>10</volume>
          .1109/ACCESS.
          <year>2023</year>
          .
          <volume>3314572</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S.</given-names>
            <surname>Pradhan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Nanniyur</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. K.</given-names>
            <surname>Vissapragada</surname>
          </string-name>
          ,
          <article-title>On the Defect Prediction for Large Scale Software Systems - From Defect Density to Machine Learning</article-title>
          ,
          <source>in: 2020 IEEE 20th International Conference on Software Quality, Reliability and Security (QRS)</source>
          , Macau, China,
          <year>2020</year>
          , pp.
          <fpage>374</fpage>
          -
          <lpage>381</lpage>
          . doi:
          <volume>10</volume>
          .1109/QRS51102.
          <year>2020</year>
          .
          <volume>00056</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>J.</given-names>
            <surname>Rao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Yu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Zhou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Xiang</surname>
          </string-name>
          ,
          <article-title>Learning to rank software modules for effortaware defect prediction</article-title>
          ,
          <source>in: 2021 IEEE 21st International Conference on Software Quality</source>
          , Reliability and Security
          <string-name>
            <surname>Companion (QRS-C)</surname>
          </string-name>
          , Hainan, China,
          <year>2021</year>
          , pp.
          <fpage>372</fpage>
          -
          <lpage>380</lpage>
          . doi:
          <volume>10</volume>
          .1109/QRS-C55045.
          <year>2021</year>
          .
          <volume>00062</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>H.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Zhuang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <source>Software Defect Prediction Based on Gated Hierarchical LSTMs, in: IEEE Transactions on Reliability</source>
          <volume>70</volume>
          (
          <issue>2</issue>
          ) (
          <year>2021</year>
          ) pp.
          <fpage>711</fpage>
          -
          <lpage>727</lpage>
          . doi:
          <volume>10</volume>
          .1109/TR.
          <year>2020</year>
          .
          <volume>3047396</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ahmed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Sadath</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Nagaria</surname>
          </string-name>
          ,
          <article-title>Software Testing and Lines of Codes-A Study on Software Engineering Design Patterns</article-title>
          , in: 2019 International Conference on Automation,
          <source>Computational and Technology Management (ICACTM)</source>
          , London,
          <string-name>
            <surname>UK</surname>
          </string-name>
          , (
          <year>2019</year>
          ) pp.
          <fpage>389</fpage>
          -
          <lpage>394</lpage>
          . doi:
          <volume>10</volume>
          .1109/ICACTM.
          <year>2019</year>
          .
          <volume>8776688</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>G. H.</given-names>
            <surname>Kencana</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Saleh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. A.</given-names>
            <surname>Darwito</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. R.</given-names>
            <surname>Rachmadi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. M.</given-names>
            <surname>Sari</surname>
          </string-name>
          ,
          <article-title>Comparison of Maintainability Index Measurement from Microsoft CodeLens</article-title>
          and Line of Code, in: 2020 7th International Conference on Electrical Engineering,
          <source>Computer Sciences and Informatics (EECSI)</source>
          , Yogyakarta, Indonesia (
          <year>2020</year>
          ) pp.
          <fpage>235</fpage>
          -
          <lpage>239</lpage>
          . doi:
          <volume>10</volume>
          .23919/EECSI50503.
          <year>2020</year>
          .
          <volume>9251901</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>H.</given-names>
            <surname>Ünlü</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Hacaloglu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Büber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Berrak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Leblebici</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Demirörs</surname>
          </string-name>
          ,
          <article-title>Utilization of Three Software Size Measures for Effort Estimation in Agile World: A Case Study</article-title>
          ,
          <source>in: 2022 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)</source>
          , Gran Canaria,
          <string-name>
            <surname>Spain</surname>
          </string-name>
          (
          <year>2022</year>
          ) pp.
          <fpage>239</fpage>
          -
          <lpage>246</lpage>
          . doi:
          <volume>10</volume>
          .1109/SEAA56994.
          <year>2022</year>
          .
          <volume>00045</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>E. Y.</given-names>
            <surname>Hernandez-Gonzalez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. J.</given-names>
            <surname>Sanchez-Garcia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. K.</given-names>
            <surname>Cortes-Verdin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Perez-Arriaga</surname>
          </string-name>
          ,
          <article-title>Quality Metrics in Software Design: A Systematic Review</article-title>
          ,
          <source>in: 7th International Conference in Software Engineering Research and Innovation (CONISOFT)</source>
          ,
          <source>Mexico City, Mexico</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>80</fpage>
          -
          <lpage>86</lpage>
          . doi:
          <volume>10</volume>
          .1109/CONISOFT.
          <year>2019</year>
          .
          <volume>00021</volume>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>