意大利面代码与 Blob 反模式对程序理解影响的规模化实证研究
软件工程
2020-09-08 v1
摘要
背景:若干研究调查了反模式(即针对反复出现设计问题的“糟糕”解法)在维护活动中的影响,并报告反模式显著影响了开发者编辑文件所需的工作量。然而,在开发者编辑文件之前,他们必须理解系统的源代码。该源代码必须易于开发者理解。目标:本文中,我们针对两类反模式的两个实例——Blob 与意大利面代码——对程序理解的影响提供完整评估。方法:我们通过三项在蒙特利尔综合理工学院(加拿大,24 名参与者)、卡尔顿大学(加拿大,30 名参与者)和巴西利卡塔大学(意大利,79 名参与者)进行的实证研究分析这两种反模式的影响。结果:我们从三所大学 133 名不同参与者完成的 372 项任务中收集数据。我们使用三项指标评估开发者对源代码的理解:(1)完成每项任务的时长;(2)其正确答案百分比;(3)衡量其努力程度的 NASA 任务负荷指数。结论:我们报告,尽管单次出现的 Blob 或意大利面代码反模式对代码理解影响甚微,但两次出现的 Blob 或意大利面代码任一都会显著增加开发者的任务耗时、降低其正确答案百分比并增加其努力程度。因此,我们建议开发者对这两种反模式均采取行动,应尽可能将其重构出源代码。我们也建议进一步研究反模式的组合,而非一次仅研究单一反模式。
引用
@article{arxiv.2009.02438,
title = {A Large Scale Empirical Study of the Impact of Spaghetti Code and Blob Anti-patterns on Program Comprehension},
author = {Cristiano Politowski and Foutse Khomh and Simone Romano and Giuseppe Scanniello and Fabio Petrillo and Yann-Gaël Guéhéneuc and Abdou Maiga},
journal= {arXiv preprint arXiv:2009.02438},
year = {2020}
}