<!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>Can we predict Comment Quality using Machine Learning?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ashwin Gaikwad</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 development, code comment quality holds varying importance, highlighting the need for efective assessment methods. This study aims to improve the classification of comment utility by combining traditional annotated datasets with synthetic data. For augmentation, we utilized GPT-3.5-turbo to label additional comments. A baseline model using logistic regression was implemented for classification, yielding an F1 score of around 0.80, with little change upon adding synthetic data. The research explores both the potential and limitations of using synthetic data augmentation to assess code comment relevance.</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 today’s digital era, software plays a crucial role in key sectors such as finance, healthcare, and
transportation. Organizations must continually adapt to changing demands, resulting in frequent
updates to existing software and the development of new applications. This continuous growth increases
code complexity, which is necessary to support new features. Managing this large codebase is an essential
phase of the Software Development Life Cycle (SDLC).</p>
      <p>Rapid development cycles often lead to quick fixes, adding new code, or updating existing applications.
These accelerated timelines can lead to less-than-optimal coding practices. As software evolves,
associated documents, such as requirements and designs, may become outdated. In many cases, the original
developers are not available for consultation. This underscores the need for structured, quality-driven
processes in software development, with program comprehension being a key approach to maintaining
existing code bases.</p>
      <p>Given the dynamic nature of software, primary sources of reliable information become test execution
traces, static code analysis, and code comments. This research focuses on code comments as indicators
of software design for developers and automated tools. Comments provide context about the rationale
and goals behind code, aiding in understanding and maintenance. However, comment quality varies,
highlighting the need for automated tools to assess their usefulness.</p>
      <p>One challenge in assessing code comment utility is the limited availability of well-annotated datasets
that cover the diversity of comments across diferent programming contexts. To address this, innovative
methods are needed to augment existing datasets and improve model performance on new, real-world
comments. Our study combines manual data labeling with synthetic data augmentation using
GPT-3.5turbo.</p>
      <p>In this paper, we tackle a binary classification task for source code comments in the C programming
language, categorizing them as ’Useful’ or ’Not Useful.’ Starting with a dataset of over 11,000 manually
labeled comments, we use logistic regression as an initial classification model. We then augment this
dataset with over 200 additional samples labeled using GPT to evaluate performance improvements.</p>
      <p>Notably, the model’s performance remained consistent, maintaining an F1 score of 0.80 for both the
original and augmented datasets.</p>
      <p>This research contributes to the understanding of code comment utility classification by combining
manual annotation with synthetic data augmentation. Our goal is to tackle current challenges and
promote the development of adaptable models for the evolving landscape of software development.</p>
      <p>The paper is organized as follows. Section 2 covers background work in comment classification.
Section 3 details the task and dataset. Our methodology is discussed in Section 4. Results are presented
in Section 5, and Section 6 concludes the study.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Related Work</title>
      <p>
        Understanding a program automatically is a well-known research area among people working in the
software domain. Numerous tools have been developed to aid in the extraction of knowledge from
software metadata, including elements such as runtime traces and structural attributes of code [
        <xref ref-type="bibr" rid="ref1 ref2 ref3 ref4 ref5 ref6 ref7 ref8">1, 2, 3,
4, 5, 6, 7, 8</xref>
        ].
      </p>
      <p>
        New programmers often rely on existing comments to comprehend code flow. However, not all
comments contribute efectively to program comprehension, necessitating a relevancy assessment
of source code comments prior to their use. Numerous researchers have focused on the automatic
classification of source code comments in terms of quality evaluation. For instance, Omal et al. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] noted
that factors influencing software maintainability can be organized into hierarchical structures. The
authors defined measurable attributes in the form of metrics for each factor, enabling the assessment of
software characteristics, which can then be consolidated into a single index of software maintainability.
Fluri et al.[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] examined whether the source code and associated comments are changed together along
the multiple versions. They investigated three open source systems, such as ArgoUML, Azureus, and JDT
Core, and found that 97% of the comment changes are done in the same revision as the associated source
code changes. Another work[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] published in 2007 which proposed a two-dimensional maintainability
model that explicitly associates system properties with the activities carried out during maintenance.
The author claimed that this approach transforms the quality model into a structured quality knowledge
base that is usable in industrial environments. Storey et al. did an empirical study on task annotations
embedding within a source code and how it plays a vital role in a developer’s task management[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
The paper described how task management is negotiated between formal issue tracking systems and
manual annotations that programmers include within their source code. Ted et al.[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] performed a 3 × 2
experiment to compare the eforts of procedure format with those of comments on the readability of a
PL/I program. The readability accuracy was checked by questioning students about the program after
reading it. The result said that the program without comment was the least readable. Yu Hai et al.[
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]
classified source code comments into four classes - unqualified, qualified, good, and excellent. The
aggregation of basic classification algorithms further improved the classification result. Another work
published in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] in which author proposed an automatic classification mechanism "CommentProbe"
for quality evaluation of code comments of C codebases. We see that people worked on source code
comments with diferent aspects[
        <xref ref-type="bibr" rid="ref15 ref16 ref17">15, 16, 17, 18, 19, 20</xref>
        ], but still, automatic quality evaluation of source
code comments is an important area and demands more research.
      </p>
      <p>
        With the advent of large language models [21], it is important to compare the quality assessment
of code comments by the standard models like GPT 3.5 or llama with the human interpretation. The
IRSE track at FIRE 2024 [22, 23] builds upon the methodologies proposed in [
        <xref ref-type="bibr" rid="ref15">15, 24, 25</xref>
        ] to investigate
various vector space models [26] and features for binary classification and evaluation of comments
in relation to code comprehension. This track also assesses the performance of the predictive model
by incorporating GPT-generated labels for the quality of code and comment snippets extracted from
open-source software.
      </p>
      <p>#
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-2-1">
        <title>Label</title>
      </sec>
      <sec id="sec-2-2">
        <title>Not Useful</title>
      </sec>
      <sec id="sec-2-3">
        <title>Not Useful</title>
      </sec>
      <sec id="sec-2-4">
        <title>Useful</title>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Task and Dataset Description</title>
      <p>In this paper, we tackle the task of developing a binary classification system to categorize source code
comments as either useful or not useful. The system takes a comment and its associated code as input
and outputs a label indicating the comment’s relevance. Classical machine learning algorithms, such as
logistic regression, can be employed to perform this classification. The two categories of comments are:
• Useful - The comment accurately describes or provides relevant information about the code.
• Not Useful - The comment does not convey relevant information about the code.</p>
      <p>Our dataset comprises over 11,000 C code-comment pairs annotated by a team of 14 annotators
to label comments as useful or not. Additionally, we created a supplementary dataset by obtaining
code-comment pairs from GitHub and labeling them using GPT. This secondary dataset, structured
similarly to the original, serves as an augmentation for our main dataset.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Working Principle</title>
      <p>We use logistic regression to implement the binary classification functionality. The system takes
comments as well as surrounding code snippets as input. We create embeddings of each piece of
code and the associated comment using a pre-trained Universal sentence encoder. The output of the
embedding process is used to train both machine learning model. The training dataset consists of 80%
data instances along with their labels. The rest is used for testing, in both experiments. The description
of the model is discussed in the following section.
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:
 =  + 
() =</p>
      <p>1
1 + (− )
(1)
(2)</p>
      <p>The output of the linear regression equation (refer to equation 1) is passed to the logistic function
(see equation 2). The probability value generated by the logistic function is used for binary class
prediction based on the acceptance threshold. We keep the threshold value of 0.6 in favor of the useful
comment class. We have a three-dimensional input feature extracted from each training instance which
is passed to the regression function. The Cross entropy loss function is used during training for the
hyper-parameter tuning.</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 and produces
the following scores.</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 study investigated using synthetic data for code comment quality classification and established a
logistic regression baseline with an F1 score of 0.80. Results indicate that synthetic augmentation did not
improve classification, suggesting that traditional annotated data can still be highly efective in some
cases. Future work could involve exploring more complex models or incorporating domain-specific
knowledge.</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.
of the irse track at fire 2022: Information retrieval in software engineering., in: FIRE (Working
Notes), 2022, pp. 1–9.
[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] S. Majumdar, P. P. Das, Smart knowledge transfer using google-like search, arXiv preprint
arXiv:2308.06653 (2023).
[20] P. Chakraborty, S. Dutta, D. K. Sanyal, S. Majumdar, P. P. Das, Bringing order to chaos:
Conceptualizing a personal research knowledge graph for scientists., IEEE Data Eng. Bull. 46 (2023)
43–56.
[21] 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.
[22] S. Paul, S. Majumdar, R. Shah, S. Das, M. Ghosh, D. Ganguly, G. Calikli, D. Sanyal, P. P. Das,
P. D Clough, A. Bandyopadhyay, S. Chattopadhyay, Generative ai for code metadata quality
assessment, in: Proceedings of the 16th Annual Meeting of the Forum for Information Retrieval
Evaluation, 2024.
[23] S. Paul, S. Majumdar, R. Shah, S. Das, M. Ghosh, D. Ganguly, G. Calikli, D. Sanyal, P. P. Das,
P. D Clough, A. Bandyopadhyay, S. Chattopadhyay, Overview of the irse track at fire 2024:
Information retrieval in software engineering, in: FIRE (Working Notes), 2024.
[24] S. Paul, S. Majumdar, A. Bandyopadhyay, B. Dave, S. Chattopadhyay, P. Das, P. D. Clough, P.
Majumder, Eficiency of large language models to scale up ground truth: Overview of the irse track
at forum for information retrieval 2023, in: Proceedings of the 15th Annual Meeting of the Forum
for Information Retrieval Evaluation, 2023, pp. 16–18.
[25] S. Majumdar, S. Paul, D. Paul, A. Bandyopadhyay, S. Chattopadhyay, P. P. Das, P. D. Clough,
P. Majumder, Generative ai for software metadata: Overview of the information retrieval in
software engineering track at fire 2023, arXiv preprint arXiv:2311.03374 (2023).
[26] 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>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="ref2">
        <mixed-citation>
          [2]
          <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="ref3">
        <mixed-citation>
          [3]
          <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="ref4">
        <mixed-citation>
          [4]
          <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="ref5">
        <mixed-citation>
          [5]
          <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="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>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="ref7">
        <mixed-citation>
          [7]
          <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="ref8">
        <mixed-citation>
          [8]
          <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>
            <surname>P. P. Das</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Chakrabarti</surname>
          </string-name>
          ,
          <article-title>Parallelc-assist: Productivity accelerator suite based on dynamic instrumentation</article-title>
          , IEEE Access (
          <year>2023</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>P.</given-names>
            <surname>Oman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hagemeister</surname>
          </string-name>
          ,
          <article-title>Metrics for assessing a software system's maintainability</article-title>
          ,
          <source>in: Proceedings Conference on Software Maintenance</source>
          <year>1992</year>
          , IEEE Computer Society,
          <year>1992</year>
          , pp.
          <fpage>337</fpage>
          -
          <lpage>338</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>B.</given-names>
            <surname>Fluri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wursch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. C.</given-names>
            <surname>Gall</surname>
          </string-name>
          ,
          <article-title>Do code and comments co-evolve? on the relation between source code and comment changes</article-title>
          ,
          <source>in: 14th Working Conference on Reverse Engineering (WCRE</source>
          <year>2007</year>
          ), IEEE,
          <year>2007</year>
          , pp.
          <fpage>70</fpage>
          -
          <lpage>79</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>F.</given-names>
            <surname>Deissenboeck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Wagner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Pizka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Teuchert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-F.</given-names>
            <surname>Girard</surname>
          </string-name>
          ,
          <article-title>An activity-based quality model for maintainability</article-title>
          ,
          <source>in: 2007 IEEE International Conference on Software Maintenance, IEEE</source>
          ,
          <year>2007</year>
          , pp.
          <fpage>184</fpage>
          -
          <lpage>193</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>M.-A. Storey</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Ryall</surname>
            ,
            <given-names>R. I.</given-names>
          </string-name>
          <string-name>
            <surname>Bull</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Myers</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Singer</surname>
          </string-name>
          , Todo or to bug,
          <source>in: 2008 ACM/IEEE 30th International Conference on Software Engineering</source>
          , IEEE,
          <year>2008</year>
          , pp.
          <fpage>251</fpage>
          -
          <lpage>260</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>T.</given-names>
            <surname>Tenny</surname>
          </string-name>
          ,
          <article-title>Program readability: Procedures versus comments</article-title>
          ,
          <source>IEEE Transactions on Software Engineering</source>
          <volume>14</volume>
          (
          <year>1988</year>
          )
          <fpage>1271</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>H.</given-names>
            <surname>Yu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Jia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <article-title>Source code comments quality assessment method based on aggregation of classification algorithms</article-title>
          ,
          <source>Journal of Computer Applications</source>
          <volume>36</volume>
          (
          <year>2016</year>
          )
          <fpage>3448</fpage>
          .
        </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 id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>S.</given-names>
            <surname>Majumdar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bandyopadhyay</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Chattopadhyay</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>P.</given-names>
          </string-name>
          <string-name>
            <surname>Majumder</surname>
          </string-name>
          , Overview
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>