Litcius/Paper detail

Automated Comment Update: How Far are We?

Bo Lin, Shangwen Wang, Kui Liu, Xiaoguang Mao, Tegawendé F. Bissyandé

202130 citationsDOI

Abstract

Code comments are key to program comprehension. When they are not consistent with the code, maintenance is hindered. Yet developers often forget to update comments along with their code evolution. With recent advances in neural machine translation, the research community is contemplating novel approaches for automatically generating up-to-date comments following code changes. CUP is such an example state-of-the-art approach whose promising performance remains however to be comprehensively assessed. Our study contributes to the literature by performing an in-depth analysis on the effectiveness of CUP. Our analysis revealed that the overall effectiveness of CUP is largely contributed by its success on updating comments via a single token change (96.6%). Several update failures occur when CUP ignores some code change information (10.4%) or when it is otherwise misled by additional information (12.8%). To put in perspective the achievements of CUP, we implement HEBCUP, a straightforward heuristic-based approach for code comment update. Building on our observations on CUP successful and failure cases, we design heuristics for focusing the update on the changed code and for performing token-level comment update. HebCup is shown to outperform CUP in terms of Accuracy by more than 60% while being over three orders of magnitude (i.e., 1700 times) faster. Further empirical analysis confirms that the HebCup does not even overfit to the empirical analysis set. Overall, with this study, we call for more research in deep learning based comment update towards achieving state-of-the-art performance that would be unreachable by other less sophisticated techniques.

Topics & Concepts

Computer scienceOverfittingHeuristicsCode (set theory)Security tokenHeuristicSource codeArtificial intelligenceSet (abstract data type)Perspective (graphical)Machine learningKey (lock)Empirical researchArtificial neural networkProgramming languageComputer securityEpistemologyPhilosophyOperating systemSoftware Engineering ResearchSoftware Reliability and Analysis ResearchSoftware Testing and Debugging Techniques