论文标题

大规模重构的行业经验

Industry Experiences with Large-Scale Refactoring

论文作者

Ivers, James, Nord, Robert L., Ozkaya, Ipek, Seifried, Chris, Timperley, Christopher S., Kessentini, Marouane

论文摘要

软件重构在软件工程中起着重要作用。当开发人员想重组软件以提高其质量而不改变外部行为时,他们通常会转向重构。研究表明,小型(牙线)重构在行业中很常见,并且通常可以在简短的课程中由单个开发人员执行,即使开发人员手动进行大部分工作,而不是使用重构工具。但是,一些重构工作的规模要大得多,需要整个团队和几个月的努力,并且工具在这些努力中的作用尚未得到很好的研究。在本文中,我们报告了我们与开发人员进行的一项调查,以了解大规模重构,其患病率以及工具如何支持它。我们来自107个行业开发人员的结果表明,项目通常会经历多个大规模重构,每个重构都需要相当大的努力。尽管通常有重构的愿望,但开发新功能等其他业务问题通常会更高的优先级。我们的研究发现,开发人员使用多种工具来支持大规模重构,并且更严重地依赖IDE(例如IDE)的通用工具,而不是专门设计用于支持重构的工具。工具支持在不同的活动中各不相同,一些特别具有挑战性的活动在实践中几乎没有使用工具。我们的研究表明,对更好的大型重构工具的需求显然是重构研究人员在行业中有所作为的机会。我们在本文中总结的结果是朝着这一目标迈出的具体步骤。

Software refactoring plays an important role in software engineering. Developers often turn to refactoring when they want to restructure software to improve its quality without changing its external behavior. Studies show that small-scale (floss) refactoring is common in industry and can often be performed by a single developer in short sessions, even though developers do much of this work manually instead of using refactoring tools. However, some refactoring efforts are much larger in scale, requiring entire teams and months of effort, and the role of tools in these efforts is not as well studied. In this paper, we report on a survey we conducted with developers to understand large-scale refactoring, its prevalence, and how tools support it. Our results from 107 industry developers demonstrate that projects commonly go through multiple large-scale refactorings, each of which requires considerable effort. While there is often a desire to refactor, other business concerns such as developing new features often take higher priority. Our study finds that developers use several categories of tools to support large-scale refactoring and rely more heavily on general-purpose tools like IDEs than on tools designed specifically to support refactoring. Tool support varies across the different activities, with some particularly challenging activities seeing little use of tools in practice. Our study demonstrates a clear need for better large-scale refactoring tools and an opportunity for refactoring researchers to make a difference in industry. The results we summarize in this paper is one concrete step towards this goal.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源