构建 MSR 工具 Kaiaulu:设计原则与经验
摘要
背景:自 Alitheia Core 被提出并随后退役以来,支持软件项目实证研究工具持续被提出,例如 Codeface、Codeface4Smells、GrimoireLab 和 SmartSHARK,但它们都做出了不同的设计选择并提供了重叠的功能。目标:我们试图理解这些工具所采用的设计决策——好的与坏的——及其后果,以理解其作者为何重新实现其他工具中已有的功能,并为未来工具的设计提供参考。方法:我们使用行动研究来评估这些工具,并确定一组原则与反模式以推动新工具的设计。结果:我们在这些工具中识别出 7 个主要设计选择:1) 抽象债务,2) 项目配置文件的使用,3) 批处理或交互模式的选择,4) 最小数据路径,5) 熟悉的软件抽象,6) 许可,以及 7) 代码重用的陷阱。基于观察到的良好与糟糕的设计决策,我们创建了自己的工具架构并将其实现为一个 R 包。结论:工具不应要求用户进行繁琐的设置以获取数据。作者应考虑其所选语言使用的约定与抽象,并基于这些进行构建而非重新定义它们。工具应通过利用用于工具自动化的自包含且可读的模式来鼓励实验可复现性的最佳实践,并且必须谨慎进行重用以避免依赖死代码。
引用
@article{arxiv.2304.14570,
title = {Building the MSR Tool Kaiaulu: Design Principles and Experiences},
author = {Carlos Paradis and Rick Kazman},
journal= {arXiv preprint arXiv:2304.14570},
year = {2023}
}
备注
This preprint has not undergone peer review (when applicable) or any post-submission improvements or corrections. The Version of Record of this contribution is published in 13365, and is available online at https://doi.org/10.1007/978-3-031-15116-3_6