论文标题
关于数据密集型系统中SQL代码气味的流行,影响和演变
On the Prevalence, Impact, and Evolution of SQL Code Smells in Data-Intensive Systems
论文作者
论文摘要
代码气味表示损害软件质量的软件设计问题。除传统气味外,经常访问数据库的数据密集型系统经常会遭受SQL代码的气味。尽管最近对传统代码气味进行了广泛的研究,但最近对SQL代码气味越来越感兴趣。在本文中,我们进行了一项经验研究,以研究开源,数据密集型系统中SQL代码气味的普遍性和演变。我们收集了150个项目,并在这些项目中检查了传统和SQL代码的气味。我们的调查提供了一些重要发现。首先,在数据密集型软件系统中,SQL代码的气味确实很普遍。其次,SQL代码气味与传统代码气味的共同出现较弱。第三,与传统代码气味相比,SQL代码的气味与错误的关联性较弱。第四,与传统的代码气味相比,SQL代码的气味更可能在项目开始时引入,并且很可能在没有修复的情况下留在代码中。总体而言,我们的结果表明,在研究的数据密集型软件系统中,SQL代码的气味确实很普遍且持久。开发人员应意识到这些气味,并考虑使用专用工具分别检测和重构SQL代码气味和传统代码气味。
Code smells indicate software design problems that harm software quality. Data-intensive systems that frequently access databases often suffer from SQL code smells besides the traditional smells. While there have been extensive studies on traditional code smells, recently, there has been a growing interest in SQL code smells. In this paper, we conduct an empirical study to investigate the prevalence and evolution of SQL code smells in open-source, data-intensive systems. We collected 150 projects and examined both traditional and SQL code smells in these projects. Our investigation delivers several important findings. First, SQL code smells are indeed prevalent in data-intensive software systems. Second, SQL code smells have a weak co-occurrence with traditional code smells. Third, SQL code smells have a weaker association with bugs than that of traditional code smells. Fourth, SQL code smells are more likely to be introduced at the beginning of the project lifetime and likely to be left in the code without a fix, compared to traditional code smells. Overall, our results show that SQL code smells are indeed prevalent and persistent in the studied data-intensive software systems. Developers should be aware of these smells and consider detecting and refactoring SQL code smells and traditional code smells separately, using dedicated tools.