arrow
返回

Automatic identifier inconsistency detection using code dictionary

delete2015-03-07
delete34
PRE
AI
S
Suntae Kim
D
Dongsun Kim *
DOI:10.1007/s10664-015-9369-5delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
Inconsistent identifiers make it difficult for developers to understand source code. In particular, large software systems written by several developers can be vulnerable to identifier inconsistency. Unfortunately, it is not easy to detect inconsistent identifiers that are already used in source code. Although several techniques have been proposed to address this issue, many of these techniques can result in false alarms since such techniques do not accept domain words and idiom identifiers that are widely used in programming practice. This paper proposes an approach to detecting inconsistent identifiers based on a custom code dictionary. It first automatically builds a Code Dictionary from the existing API documents of popular Java projects by using an Natural Language Processing (NLP) parser. This dictionary records domain words with dominant part-of-speech (POS) and idiom identifiers. This set of domain words and idioms can improve the accuracy when detecting inconsistencies by reducing false alarms. The approach then takes a target program and detects inconsistent identifiers of the program by leveraging the Code Dictionary. We provide CodeAmigo, a GUI-based tool support for our approach. We evaluated our approach on seven Java based open-/proprietary- source projects. The results of the evaluations show that the approach can detect inconsistent identifiers with 85.4 % precision and 83.59 % recall values. In addition, we conducted an interview with developers who used our approach, and the interview confirmed that inconsistent identifiers frequently and inevitably occur in most software projects. The interviewees then stated that our approach can help to better detect inconsistent identifiers that would have been missed through manual detection.
Keyword:
Inconsistent identifiers
Code dictionary
Source code
Refactoring
Code readability
Part-of-speech analysis
AI总结

AI总结

对已上传原文的论文进行重点信息的提取,主要内容包括:简要概述、研究摘要、背景介绍、关键亮点、图文解析、展望与总结。

期刊

Empirical Software Engineering 封面图
Empirical Software Engineering
IF:
3.6
论文数:
2.0K
被引数:
5.3K

机构

J
Jeonbuk National University
学者数:
1.3W
论文数: 1.3W
被引数: 1.3W
U
university of luxembourg
学者数:
5.2K
论文数: 4.8K
被引数: 4
引用论文

引用论文

Trade Policy Flexibility and Enforcement in the WTO
err
IF0
err2010-05-05
err0
PREAI
errSimon A. B. Schropp
err分享
err收藏
Bulk acoustic wave analysis of crystalline plane oriented ZnO films
err2007-10-26
err0
PREAI
errSean Wu; Zhi-Xun Lin; Maw-Shung Lee; Ruyen Ro
err分享
err收藏
err分享
err收藏
Hematospermia
err2013-01-02
err0
errOAAI
errGyörgy K. Papp; Andras Hoznek; Magdolna Hegedüs; Endre Juhasz
err分享
err收藏
err分享
err收藏
学者 查看更多内容