SEPLJul 9, 2021

How to Identify Class Comment Types? A Multi-language Approach for Class Comment Classification

arXiv:2107.04521v255 citations
Originality Incremental advance
AI Analysis

This work addresses the challenge of inconsistent and inadequate code comments in software maintenance, providing a tool to assess comment quality across programming languages, though it is incremental as it builds on existing NLP techniques.

The paper tackles the problem of automatically identifying semantic information types in class comments across Python, Java, and Smalltalk, proposing a multi-language approach using NLP and text analysis that achieves high accuracy in classification.

Most software maintenance and evolution tasks require developers to understand the source code of their software systems. Software developers usually inspect class comments to gain knowledge about program behavior, regardless of the programming language they are using. Unfortunately, (i) different programming languages present language-specific code commenting notations/guidelines; and (ii) the source code of software projects often lacks comments that adequately describe the class behavior, which complicates program comprehension and evolution activities. To handle these challenges, this paper investigates the different language-specific class commenting practices of three programming languages: Python, Java, and Smalltalk. In particular, we systematically analyze the similarities and differences of the information types found in class comments of projects developed in these languages. We propose an approach that leverages two techniques, namely Natural Language Processing and Text Analysis, to automatically identify various types of information from class comments i.e., the specific types of semantic information found in class comments. To the best of our knowledge, no previous work has provided a comprehensive taxonomy of class comment types for these three programming languages with the help of a common automated approach. Our results confirm that our approach can classify frequent class comment information types with high accuracy for Python, Java, and Smalltalk programming languages. We believe this work can help to monitor and assess the quality and evolution of code comments in different program languages, and thus support maintenance and evolution tasks.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes