What Refactoring Topics Do Developers Discuss? A Large Scale Empirical Study Using Stack Overflow

What Refactoring Topics Do Developers Discuss? A Large Scale Empirical Study Using Stack Overflow
复制标题

DOI:
10.1109/access.2021.3140036
复制
发表时间:
2022
期刊:
影响因子:
3.9
通讯作者:
Chaima Abid;Khouloud Gaaloul;Marouane Kessentini;Vahid Alizadeh
Chaima Abid;Khouloud Gaaloul;Marouane Kessentini;Vahid Alizadeh
中科院分区:
计算机科学3区
文献类型:
--
作者:
Chaima Abid;Khouloud Gaaloul;Marouane Kessentini;Vahid Alizadeh

文献摘要

相似文献

由于软件系统的复杂性不断增加,研究和工业界对重构的需求急剧增加。重构研究现在解决了代码转换之外的挑战,包括但不限于安排进行重构的适当时间,推荐特定的重构活动,检测重构机会和测试应用重构的正确性。很少有研究关注重构软件系统时从业者所面临的挑战,以及从开发人员的角度来看,当前重构研究的重点应该是什么。如果没有这些知识,工具构建者就会在错误的方向上投资,研究人员就会错过许多改进重构实践的机会。在本文中,我们从流行的在线问答网站Stack Overflow收集了数据,并分析了帖子,以确定开发人员对重构的要求。我们使用最流行的主题建模算法之一潜在狄利克雷分配(LDA)对这些问题进行聚类,以找到不同的重构相关主题。我们发现开发人员询问的内容包括设计模式、设计和用户界面重构、Web服务、并行编程和移动的应用程序。我们还确定了哪些常见的重构挑战是最困难的,以及当前与重构相关的重要主题和问题。此外,我们还发现了现有重构研究与开发人员面临的挑战之间的差距。据我们所知,本文代表了第一个堆栈溢出研究,以确定开发人员讨论的重构主题。我们的研究可以帮助研究人员专注于实际的重构问题,从业者了解更多关于当前的挑战,并建立更好的重构工具,和教育工作者修改课程,以针对当前的需求重构。
Due to the growing complexity of software systems, there has been a dramatic increase in research and industry demand on refactoring. Refactoring research nowadays addresses challenges beyond code transformation to include, but not limited to, scheduling the opportune time to carry refactoring, recommending specific refactoring activities, detecting refactoring opportunities and testing the correctness of applied refactorings. Very few studies focused on the challenges that practitioners face when refactoring software systems and what should be the current refactoring research focus from the developers’ perspective. Without such knowledge, tool builders invest in the wrong direction, and researchers miss many opportunities for improving the practice of refactoring. In this paper, we collected data from the popular online Q&A site, Stack Overflow, and analyzed posts to identify what do developers ask about refactoring. We clustered these questions to find the different refactoring related topics using one of the most popular topic modeling algorithms, Latent Dirichlet Allocation (LDA). We found that developers are asking about design patterns, design and user interface refactoring, web services, parallel programming, and mobile apps. We also identified what popular refactoring challenges are the most difficult and the current important topics and questions related to refactoring. Moreover, we discovered gaps between existing research on refactoring and the challenges developers face. To the best of our knowledge, this paper represents the first Stack Overflow study to identify the refactoring topics discussed by developers. Our study can help researchers to focus on practical refactoring problems, practitioners know more about current challenges and build better refactoring tools, and educators revise curriculum to target current needs on refactoring.