修复什么?在自动化工具中区分设计规则与非设计规则
软件工程
2017-06-01 v1
摘要
技术债务——即为优化交付速度而采取的设计捷径——是长期软件成本的关键组成部分。因此,自动检测技术债务是软件从业者的高优先级任务。软件质量工具供应商已响应这一需求,将其工具定位为检测和管理工作中的技术债务。尽管这些工具捆绑了大量规则,但用户很难理解哪些规则识别的是设计问题,而非语法质量问题。这很重要,因为先前的研究表明,最显著的技术债务与设计问题相关。其他研究侧重于在开源项目上比较这些工具,但这些比较并未考察规则是否与设计相关。我们开展了一项实证研究,采用结构化分类方法,手动对来自三个行业工具(CAST、SonarQube 和 NDepend)的 466 条软件质量规则进行了分类。我们发现,大多数规则很容易被标记为“非设计”(55%)或“设计”(19%)。其余部分(26%)在标注者之间产生了分歧。我们的结果是正式化设计规则定义的第一步,旨在支持自动检测。
引用
@article{arxiv.1705.11087,
title = {What to Fix? Distinguishing between design and non-design rules in automated tools},
author = {Neil A. Ernst and Stephany Bellomo and Ipek Ozkaya and Robert L. Nord},
journal= {arXiv preprint arXiv:1705.11087},
year = {2017}
}
备注
Long version of accepted short paper at International Conference on Software Architecture 2017 (Gothenburg, SE)