中文

RePOR:在重构任务中模仿人类——我们做到了吗?

软件工程 2019-05-20 v3

摘要

重构是一种旨在改善设计质量同时保持系统行为的维护活动。基于反模式的修正(反模式是反复出现的设计问题的‘糟糕’解决方案),已有若干(半)自动化方法被提出以支持开发者进行此维护活动。然而,关于自动重构代码对程序理解影响的定量证据很少,且在何种情境下自动重构能与手动重构同样有效亦不清楚。利用基于偏序归约技术的自动化重构方法RePOR,我们开展了一项实证研究,以探究自动重构的代码结构是否影响理解任务中的系统可理解性。(1) 我们调查了80名开发者,要求他们从一组20个重构变更中辨别是由开发者还是工具生成,并根据设计质量对重构变更评分;(2) 我们让30名开发者在10个经自由职业者或自动化重构工具重构的系统上完成代码理解任务。为公平比较,对于引入新代码实体的重构动作子集,仅向从业者展示合成标识符。我们使用NASA任务负荷指数衡量开发者的努力程度,以完成任务所花时间以及正确回答百分比衡量其表现。尽管当前技术存在局限,我们的发现表明,期望重构工具匹配开发者代码是合理的。

关键词

引用

@article{arxiv.1808.04352,
  title  = {RePOR: Mimicking humans on refactoring tasks. Are we there yet?},
  author = {Rodrigo Morales and Foutse Khomh and Giuliano Antoniol},
  journal= {arXiv preprint arXiv:1808.04352},
  year   = {2019}
}