开源软件中的多编程语言提交:基于 Apache 项目的实证研究
软件工程
2021-03-23 v1
摘要
现代软件系统(如 Spark)通常用多种编程语言(PLs)编写。除代码复用优势外,此类系统还可利用特定 PL 实现某些特性、满足多样质量需求并提升开发效率。在此背景下,对此类系统的变更可能需修改用不同 PL 编写的原文件。我们将版本控制系统(如 Git)中的多编程语言提交(MPLC)定义为涉及两个或更多 PL 编写的原文件被修改的提交。据我们所知,软件开发中 MPLC 现象尚未被探索。鉴于 MPLC 对开发难度与软件质量的潜在影响,我们开展实证研究以理解真实软件项目中 MPLC 的现状、其变更复杂度,及其对问题开放时间与源文件缺陷倾向的影响。通过考察 20 个非平凡 Apache 项目中的 205,994 次提交,我们得到如下发现:(1)所有项目中 9% 的提交为 MPLC,且 80% 项目中 MPLC 占比趋于相对稳定水平;(2)所有项目中超 90% 的 MPLC 涉及两种 PL 编写的原文件;(3)所有项目中 MPLC 的变更复杂度显著高于非 MPLC;(4)80% 项目中,MPLC 修复的问题解决耗时显著长于非 MPLC 修复的问题;(5)曾在 MPLC 中被修改的源文件比从未在 MPLC 中被修改的源文件更易出现缺陷。这些发现为多编程语言软件系统的架构设计与质量管理提供了有益见解。
引用
@article{arxiv.2103.11691,
title = {Multi-Programming-Language Commits in OSS: An Empirical Study on Apache Projects},
author = {Zengyang Li and Xiaoxiao Qi and Qinyi Yu and Peng Liang and Ran Mo and Chen Yang},
journal= {arXiv preprint arXiv:2103.11691},
year = {2021}
}