<!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>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Devyani Remulkar</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Indian Institute of Technology</institution>
          ,
          <addr-line>Goa, 403401</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>In software engineering, the significance of code comments is not uniform, emphasizing the necessity for efective strategies to evaluate their quality. In this research, we aimed to improve how we classify the usefulness of comments by combining traditionally labeled datasets with synthetic data created through augmentation techniques. For the latter, we utilized the capabilities of GPT-3.5-turbo, a highly advanced and efective model designed for understanding and generating human language, to label additional comment instances. We used Logistic regression to create a baseline model for comment usefulness classification task. We observed that, irrespective of the inclusion of synthetic data, the classification eficacy remained consistent, recording an F1 score of approximately 0.80 whether or not we used synthetic data. This study highlights both the benefits and limitations of using synthetic data to evaluate the relevance of code comments.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Large Language Models</kwd>
        <kwd>GPT-3</kwd>
        <kwd>5</kwd>
        <kwd>Logistic Regression</kwd>
        <kwd>Comment Classification</kwd>
        <kwd>Data Augmentation</kwd>
        <kwd>Qualitative Analysis</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>In the current digital landscape, software serves as a foundational element in numerous critical sectors,
including finance, healthcare, and transportation. As organizations continuously adapt to changing
demands, existing software undergoes frequent modifications, and new code is written. Thus, the
volume of source code increases constantly, leading to increased code complexity to support new
software functionality. Maintaining this large amount of source code is a crucial phase of Software
Development Life Cycle (SDLC).</p>
      <p>
        Rapid cycles of development often require quick solutions for bugs, new features, or updates, which
can result in poor coding practices. As software evolves, accompanying documentation, such as
requirement specifications and high-level designs, may fall out of date. In many cases, prior developers’
insights or assistance is unavailable. This situation highlights the need for organized and quality-focused
development processes, with understanding the code being a crucial strategy for managing existing
software.[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>Considering the evolving nature of software design, the primary dependable sources of information
become test execution traces, static analyses of programs, and code comments. This study highlights how
important code comments are for understanding program design, both for developers and automated
systems. Comments give context about the reasons behind the code and its goals, which helps with
understanding and maintaining the software. However, the quality of comments can difer, so there’s a
need for automated tools to assess how useful they are.</p>
      <p>A recurring challenge in studying code comment usefulness is the limited availability of
comprehensive, well-annotated datasets that cover the diverse nature of comments across diferent programming
contexts. To address this problem, new strategies are needed to improve the current data to enhance
model performance on new, real-world comments. Our approach in this study combines manual data
labeling with synthetic data augmentation using the GPT-3.5-turbo language model.</p>
      <p>In this paper, we focus on a binary classification task for source code comments in the C language,
categorizing them as ’Useful’ or ’Not Useful’. We begin with a dataset of over 11,000 manually-labeled
comments and use Logistic Regression for initial comment classification. This dataset is then augumented
with more than 200 samples labeled by GPT to assess potential performance improvements. Notably,
the model’s performance remained stable, with an F1 score of 0.80 for both the original and augmented
datasets.</p>
      <p>Through this study’s combination of manual annotation and synthetic data augmentation, we aim
to provide a contribution to the current understanding of code comment usefulness classification.
The goal is to address existing challenges and promote the development of adaptable models for the
ever-changing landscape of software development.</p>
      <p>The structure of the paper is organized as follows. Section 2 outlines related work in the field of
comment classification. The task and dataset are described in Section 3. Our methodology is detailed in
Section 4. The results are presented in Section 5. Finally, Section 6 concludes the paper.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Related Work</title>
      <p>
        Software metadata [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] is very important for maintaining and understanding code. Many tools have
been created to help extract information from software metadata, which includes runtime traces and
the structure of the code [
        <xref ref-type="bibr" rid="ref10 ref11 ref3 ref4 ref5 ref6 ref7 ref8 ref9">3, 4, 5, 6, 7, 8, 9, 10, 11</xref>
        ].
      </p>
      <p>
        In the area of analyzing code comments and their quality, several researchers have done important
work. Steidl et al. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] use methods like Levenshtein distance and comment length to measure how
similar words are in code-comment pairs, helping to filter out unhelpful comments. Rahman et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]
focus on identifying useful and non-useful comments in code reviews, using insights from a survey
of Microsoft developers [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Majumdar et al. [
        <xref ref-type="bibr" rid="ref15 ref16">15, 16, 17, 18</xref>
        ] have created a framework to evaluate
comments based on key concepts for understanding code. Their method includes developing features
that link text and code, and they use a knowledge graph to understand the meaning of comments. These
approaches combine both semantic and structural features to help predict which comments are useful,
ultimately helping to clean up codebases.
      </p>
      <p>
        With the rise of large language models like GPT-3.5 and LLaMA [19], it becomes crucial to assess
the quality of code comments and compare them to human interpretation. The IRSE track at FIRE
2023 [20] builds on earlier research [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. It investigates diferent vector space models [ 21] and features
for classifying and evaluating comments, especially regarding their usefulness in understanding code.
This track also compares how well models perform when using labels generated by GPT to rate the
quality of code and comments from open-source software
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Task and Dataset Description</title>
      <p>This section outlines the task undertaken in this research. Our objective is to implement a binary
classification system to categorize source code comments as useful or not useful. The input for the
system consists of a code comment along with the corresponding lines of code. The output will be a
label, either useful or not useful, indicating the relevance of the comment to the associated code, aiding
developers in understanding the code’s purpose. Traditional machine learning algorithms, such as
logistic regression, can be employed to develop the classification system. The two classes of source
code comments are defined as follows:
• Useful - The given comment is relevant to the corresponding source code.</p>
      <p>• Not Useful - The given comment is not relevant to the corresponding source code.</p>
      <p>The dataset used in our study contains over 11,000 pairs of code comments and code snippets written
in C language, each labeled to show whether the comments are useful or not. The whole dataset is
collected from GitHub and annotated by a team of 14 annotators. A sample data is illustrated in table 1.</p>
      <p>Another similar dataset has been created for this work. It was made by collecting code-comment
pairs from GitHub, with labels indicating whether the comments are useful or not provided by GPT.
#
1
2</p>
      <p>/*cr to cr,nul*/
3
/*convert minor status code
(underlying routine error) to text*/</p>
      <p>Code
-10. int res = 0;
-9. CURL *curl = NULL;
-8. FILE *hd_src = NULL;
-7. int hd;
-6. struct_stat file_info;
-5. CURLM *m = NULL;
-4. int running;
-3. start_test_timing();
-2. if(!libtest_arg2) {
-1. #ifdef LIB529
/*test 529*/
1. fprin
-1. else
/*cr to cr,nul*/
1. newline = 0;
2. }
3. else {
4. if(test-&gt;rcount) {
5. c = test-&gt;rptr[0];
6. test-&gt;rptr++;
7. test-&gt;rcount–;
8. }
9. else
10. break;
-10. break;
-9. }
-8. gss_release_bufer(&amp;min_stat, &amp;status_string);
-7. }
-6. if(sizeof(buf) &gt; len + 3) {
-5. strcpy(buf + len, ".\n");
-4. len += 2;
-3. }
-2. msg_ctx = 0;
-1. while(!msg_ctx) {
/*con</p>
      <sec id="sec-3-1">
        <title>Label</title>
      </sec>
      <sec id="sec-3-2">
        <title>Not Useful</title>
      </sec>
      <sec id="sec-3-3">
        <title>Not Useful</title>
      </sec>
      <sec id="sec-3-4">
        <title>Useful</title>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Methodology</title>
      <p>This dataset has a similar structure to the original one and is used to augument the original dataset
later on.</p>
      <p>The methodology for classifying code comments comprises several key steps, outlined as follows:
1. Dataset Preparation: This stage involves collecting the existing dataset of over 11,000 labeled
comments and their associated code snippets. We also integrate additional synthetic comments
generated by the GPT-3.5-turbo model, enhancing the dataset’s size and diversity.
2. Feature Engineering: In this phase, we create features for our classification model, which may
include factors like comment length, the presence of specific keywords, and a semantic analysis
of how the comment content relates to the code.
3. Model Training: We employ Logistic Regression to build our classicfiation model. This algorithm
is chosen due to its simplicity and efectiveness in binary classification tasks. The model is trained
on the prepared dataset, utilizing both the original and augmented data.
4. Evaluation: The model’s performance is evaluated using standard metrics, including accuracy,
precision, recall, and F1 score, to determine the efectiveness of comment classification.
We use logistic regression for binary classification. The system takes both comments and their
corresponding code snippets as input. We create embeddings for each code segment and its related comment
using a pre-trained Universal Sentence Encoder. The output of this embedding process is then used to
train the machine learning model. The training dataset consists of 80% of the data instances along with
their labels, while the remaining 20% is set aside for testing in both experiments.
4.1. Logistic Regression
We use logistic regression for the binary comment classification task which uses a logistic function to
keep the regression output between 0 and 1. The logistic function is defined as follows:
1
() = (2)</p>
      <p>1 + (− )</p>
      <p>The output from the linear regression equation (as shown in equation 1) is fed into the logistic
function (refer to equation 2). The probability generated by the logistic function is then used for binary
class prediction, based on an acceptance threshold. We set this threshold at 0.6 to give priority to the
**useful** comment class. Each training instance is represented by a three-dimensional input feature
vector, which is input into the regression function. During training, we use the Cross-Entropy loss
function for tuning the hyperparameters.</p>
      <p>=  + 
(1)</p>
    </sec>
    <sec id="sec-5">
      <title>5. Results</title>
      <p>We train our logistic regression model on both datasets. The original dataset has 11,452 samples and
the GPT generated data has 233 samples. The first experiment uses only the original data.Our baseline
model, developed with Logistic Regression, yielded an F1 score of approximately 0.80 when tested on
the original dataset.</p>
      <p>After augmenting the original dataset with the GPT generated data, the following results were seen.</p>
      <sec id="sec-5-1">
        <title>Accuracy</title>
      </sec>
      <sec id="sec-5-2">
        <title>Original Dataset 81.97293758</title>
      </sec>
      <sec id="sec-5-3">
        <title>Augmented Dataset 81.2152332</title>
      </sec>
      <sec id="sec-5-4">
        <title>Precision 0.792349986 0.794243029</title>
      </sec>
      <sec id="sec-5-5">
        <title>Recall 0.817765006 0.803115991</title>
      </sec>
      <sec id="sec-5-6">
        <title>F1 Score 0.801166962 0.798028602</title>
        <p>The very slight change in the scores across metrics suggests that the newly generated data was
practically indiferentiable from the original dataset, highlighting the validity of using GPT generated
data for data augmentation.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusion</title>
      <p>This paper addresses a binary classification problem related to classifying source code comments. The
classification is based on the usefulness of comments in C language source code. We used logistic
regression as our main classification method and conducted two experiments: one with the original
dataset and another that included both the original dataset and the synthetic data generated by GPT. The
similar results in both experiments indicate that the synthetic data aligns well with the original dataset
and demonstrates how creating synthetic data can efectively increase the volume of data needed for
training models. The accuracy of the synthetic data compared to the original is supported by the results
presented. Overall, synthetic data generation is valuable for data augmentation and can be beneficial in
various applications.</p>
    </sec>
    <sec id="sec-7">
      <title>Declaration on Generative AI</title>
      <p>During the preparation of this work, the author(s) used ChatGPT in order to: Grammar and spelling
check. After using these tool(s)/service(s), the author(s) reviewed and edited the content as needed and
take(s) full responsibility for the publication’s content.
[17] S. Majumdar, A. Bandyopadhyay, S. Chattopadhyay, P. P. Das, P. D. Clough, P. Majumder, Overview
of the irse track at fire 2022: Information retrieval in software engineering, in: Forum for
Information Retrieval Evaluation, ACM, 2022.
[18] S. Majumdar, A. Bandyopadhyay, P. P. Das, P. Clough, S. Chattopadhyay, P. Majumder, Can
we predict useful comments in source codes?-analysis of findings from information retrieval in
software engineering track@ fire 2022, in: Proceedings of the 14th Annual Meeting of the Forum
for Information Retrieval Evaluation, 2022, pp. 15–17.
[19] T. Brown, B. Mann, N. Ryder, M. Subbiah, J. D. Kaplan, P. Dhariwal, A. Neelakantan, P. Shyam,
G. Sastry, A. Askell, et al., Language models are few-shot learners, Advances in neural information
processing systems 33 (2020) 1877–1901.
[20] S. Majumdar, S. Paul, D. Paul, A. Bandyopadhyay, B. Dave, S. Chattopadhyay, P. P. Das, P. D.</p>
      <p>Clough, P. Majumder, Generative ai for software metadata: Overview of the information retrieval
in software engineering track at fire 2023, in: Forum for Information Retrieval Evaluation, ACM,
2023.
[21] S. Majumdar, A. Varshney, P. P. Das, P. D. Clough, S. Chattopadhyay, An efective low-dimensional
software code representation using bert and elmo, in: 2022 IEEE 22nd International Conference
on Software Quality, Reliability and Security (QRS), IEEE, 2022, pp. 763–774.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Berón</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. R.</given-names>
            <surname>Henriques</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Varanda</surname>
          </string-name>
          <string-name>
            <surname>Pereira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Uzal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. A.</given-names>
            <surname>Montejano</surname>
          </string-name>
          ,
          <article-title>A language processing tool for program comprehension</article-title>
          , in: XII Congreso
          <string-name>
            <surname>Argentino de Ciencias de la Computación</surname>
          </string-name>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>C. B. de Souza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Anquetil</surname>
          </string-name>
          ,
          <string-name>
            <surname>K. M. de Oliveira</surname>
          </string-name>
          ,
          <article-title>A study of the documentation essential to software maintenance</article-title>
          ,
          <source>Conference on Design of communication, ACM</source>
          ,
          <year>2005</year>
          , pp.
          <fpage>68</fpage>
          -
          <lpage>75</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>L.</given-names>
            <surname>Tan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Yuan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhou</surname>
          </string-name>
          ,
          <article-title>Hotcomments: how to make program comments more useful?, in: Conference on Programming language design and implementation (SIGPLAN)</article-title>
          , ACM,
          <year>2007</year>
          , pp.
          <fpage>20</fpage>
          -
          <lpage>27</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>S.</given-names>
            <surname>Majumdar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Papdeja</surname>
          </string-name>
          ,
          <string-name>
            <surname>P. P. Das</surname>
            ,
            <given-names>S. K.</given-names>
          </string-name>
          <string-name>
            <surname>Ghosh</surname>
          </string-name>
          ,
          <article-title>Smartkt: a search framework to assist program comprehension using smart knowledge transfer</article-title>
          ,
          <source>in: 2019 IEEE 19th International Conference on Software Quality, Reliability and Security (QRS)</source>
          , IEEE,
          <year>2019</year>
          , pp.
          <fpage>97</fpage>
          -
          <lpage>108</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>N.</given-names>
            <surname>Chatterjee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Majumdar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. R.</given-names>
            <surname>Sahoo</surname>
          </string-name>
          ,
          <string-name>
            <surname>P. P. Das</surname>
          </string-name>
          ,
          <article-title>Debugging multi-threaded applications using pin-augmented gdb (pgdb)</article-title>
          ,
          <source>in: International conference on software engineering research and practice (SERP)</source>
          . Springer,
          <year>2015</year>
          , pp.
          <fpage>109</fpage>
          -
          <lpage>115</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>Majumdar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Chatterjee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. R.</given-names>
            <surname>Sahoo</surname>
          </string-name>
          ,
          <string-name>
            <surname>P. P. Das</surname>
          </string-name>
          ,
          <article-title>D-cube: tool for dynamic design discovery from multi-threaded applications using pin</article-title>
          ,
          <source>in: 2016 IEEE International Conference on Software Quality, Reliability and Security (QRS)</source>
          , IEEE,
          <year>2016</year>
          , pp.
          <fpage>25</fpage>
          -
          <lpage>32</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>S.</given-names>
            <surname>Majumdar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Chatterjee</surname>
          </string-name>
          ,
          <string-name>
            <surname>P. P. Das</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Chakrabarti</surname>
          </string-name>
          ,
          <article-title>A mathematical framework for design discovery from multi-threaded applications using neural sequence solvers</article-title>
          ,
          <source>Innovations in Systems and Software Engineering</source>
          <volume>17</volume>
          (
          <year>2021</year>
          )
          <fpage>289</fpage>
          -
          <lpage>307</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>S.</given-names>
            <surname>Majumdar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Chatterjee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Pratim Das</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Chakrabarti</surname>
          </string-name>
          ,
          <article-title>Dcube_ nn d cube nn: Tool for dynamic design discovery from multi-threaded applications using neural sequence models</article-title>
          ,
          <source>Advanced Computing and Systems for Security:</source>
          Volume
          <volume>14</volume>
          (
          <year>2021</year>
          )
          <fpage>75</fpage>
          -
          <lpage>92</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>J.</given-names>
            <surname>Siegmund</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Peitek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Parnin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Apel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hofmeister</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Kästner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Begel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bethmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Brechmann</surname>
          </string-name>
          ,
          <article-title>Measuring neural eficiency of program comprehension</article-title>
          ,
          <source>in: Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>140</fpage>
          -
          <lpage>150</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Le</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. D.</given-names>
            <surname>Gotmare</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. D.</given-names>
            <surname>Bui</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. C.</given-names>
            <surname>Hoi</surname>
          </string-name>
          , Codet5+:
          <article-title>Open code large language models for code understanding and generation</article-title>
          ,
          <source>arXiv preprint arXiv:2305.07922</source>
          (
          <year>2023</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Freitas</surname>
          </string-name>
          , D. da Cruz,
          <string-name>
            <given-names>P. R.</given-names>
            <surname>Henriques</surname>
          </string-name>
          ,
          <article-title>A comment analysis approach for program comprehension</article-title>
          ,
          <source>Annual Software Engineering Workshop</source>
          (SEW), IEEE,
          <year>2012</year>
          , pp.
          <fpage>11</fpage>
          -
          <lpage>20</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>D.</given-names>
            <surname>Steidl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Hummel</surname>
          </string-name>
          , E. Juergens,
          <article-title>Quality analysis of source code comments</article-title>
          ,
          <source>International Conference on Program Comprehension (ICPC)</source>
          , IEEE,
          <year>2013</year>
          , pp.
          <fpage>83</fpage>
          -
          <lpage>92</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>M. M. Rahman</surname>
            ,
            <given-names>C. K.</given-names>
          </string-name>
          <string-name>
            <surname>Roy</surname>
          </string-name>
          , R. G. Kula,
          <article-title>Predicting usefulness of code review comments using textual features and developer experience</article-title>
          ,
          <source>International Conference on Mining Software Repositories (MSR)</source>
          , IEEE,
          <year>2017</year>
          , pp.
          <fpage>215</fpage>
          -
          <lpage>226</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bosu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Greiler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Bird</surname>
          </string-name>
          ,
          <article-title>Characteristics of useful code reviews: An empirical study at microsoft</article-title>
          ,
          <source>Working Conference on Mining Software Repositories, IEEE</source>
          ,
          <year>2015</year>
          , pp.
          <fpage>146</fpage>
          -
          <lpage>156</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>S.</given-names>
            <surname>Majumdar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bansal</surname>
          </string-name>
          ,
          <string-name>
            <surname>P. P. Das</surname>
            ,
            <given-names>P. D.</given-names>
          </string-name>
          <string-name>
            <surname>Clough</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Datta</surname>
            ,
            <given-names>S. K.</given-names>
          </string-name>
          <string-name>
            <surname>Ghosh</surname>
          </string-name>
          ,
          <article-title>Automated evaluation of comments to aid software maintenance</article-title>
          ,
          <source>Journal of Software: Evolution and Process</source>
          <volume>34</volume>
          (
          <year>2022</year>
          )
          <article-title>e2463</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>S.</given-names>
            <surname>Majumdar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Papdeja</surname>
          </string-name>
          ,
          <string-name>
            <surname>P. P. Das</surname>
            ,
            <given-names>S. K.</given-names>
          </string-name>
          <string-name>
            <surname>Ghosh</surname>
          </string-name>
          ,
          <article-title>Comment-mine-a semantic search approach to program comprehension from code comments</article-title>
          ,
          <source>in: Advanced Computing and Systems for Security</source>
          , Springer,
          <year>2020</year>
          , pp.
          <fpage>29</fpage>
          -
          <lpage>42</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>