Modern software systems, such as Spark, are usually written in multiple programming languages (PLs). Besides benefiting from code reuse, such systems can also take advantages of specific PLs to implement certain features, to meet various quality needs, and to improve development efficiency. In this context, a change to such systems may need to modify source files written in different PLs. We define a multi-programming-language commit (MPLC) in a version control system (e.g., Git) as a commit that involves modified source files written in two or more PLs. To our knowledge, the phenomenon of MPLCs in software development has not been explored yet. In light of the potential impact of MPLCs on development difficulty and software quality, we performed an empirical study to understand the state of MPLCs, their change complexity, as well as their impact on open time of issues and bug proneness of source files in real-life software projects. By exploring the MPLCs in 20 non-trivial Apache projects with 205,994 commits, we obtained the following findings: (1) 9% of the commits from all the projects are MPLCs, and the proportion of MPLCs in 80% of the projects goes to a relatively stable level; (2) more than 90% of the MPLCs from all the projects involve source files written in two PLs; (3) the change complexity of MPLCs is significantly higher than that of non-MPLCs in all projects; (4) issues fixed in MPLCs take significantly longer to be resolved than issues fixed in non-MPLCs in 80% of the projects; and (5) source files that have been modified in MPLCs tend to be more bug-prone than source files that have never been modified in MPLCs. These findings provide practitioners with useful insights on the architecture design and quality management of software systems written in multiple PLs.


翻译:Spark等现代软件系统通常以多种编程语言(Park)编写。除了从代码再利用中获益外,这类系统还可以利用特定PLCs的好处,以落实某些特点,满足各种质量需要,并提高开发效率。在这方面,改变这类系统可能需要修改不同PLs编写的源文件。我们定义了一个版本控制系统(例如,Git)中的多程序语言承诺(MPLC),它涉及以两个或两个以上PLs撰写的修改源文件。据我们了解,尚未探讨软件开发中的MPLCs现象。鉴于MPLCs对开发困难和软件质量的潜在影响,我们进行了实证研究,以了解MPLCs的状况、其变化的复杂性以及它们对问题开放时间的影响和源码(例如,Git,Git)中的源码(MPLCs)中的源文件有205.994,我们得到了以下结论:(1)所有项目中9 %的承诺是非MPLCSLCs的不甚甚高的数值;在成本-LCs的文件中,80 %项目的比例是相对稳定的,在成本项目中的80 %;在源码中,所有MLCs的80%项目中的比例是80项目中,在源中,在80 %项目中的比例是相当的。

0
下载
关闭预览

相关内容

Apache 是一个开放源代码的网页服务器,可以在大多数电脑操作系统中运行,由于其跨平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。 同时 Apache 也是一个专门为支持开源软件项目而办的一个非盈利性组织。
专知会员服务
40+阅读 · 2020年9月6日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
79+阅读 · 2020年7月26日
Python分布式计算,171页pdf,Distributed Computing with Python
专知会员服务
108+阅读 · 2020年5月3日
强化学习最新教程,17页pdf
专知会员服务
177+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
195+阅读 · 2019年10月10日
[综述]深度学习下的场景文本检测与识别
专知会员服务
78+阅读 · 2019年10月10日
MIT新书《强化学习与最优控制》
专知会员服务
278+阅读 · 2019年10月9日
已删除
将门创投
5+阅读 · 2019年6月28日
时序数据异常检测工具/数据集大列表
极市平台
65+阅读 · 2019年2月23日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
机器人开发库软件大列表
专知
10+阅读 · 2018年3月18日
【推荐】用Python/OpenCV实现增强现实
机器学习研究会
15+阅读 · 2017年11月16日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Arxiv
0+阅读 · 2021年5月17日
Arxiv
24+阅读 · 2020年3月11日
Arxiv
3+阅读 · 2018年3月28日
VIP会员
相关VIP内容
专知会员服务
40+阅读 · 2020年9月6日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
79+阅读 · 2020年7月26日
Python分布式计算,171页pdf,Distributed Computing with Python
专知会员服务
108+阅读 · 2020年5月3日
强化学习最新教程,17页pdf
专知会员服务
177+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
195+阅读 · 2019年10月10日
[综述]深度学习下的场景文本检测与识别
专知会员服务
78+阅读 · 2019年10月10日
MIT新书《强化学习与最优控制》
专知会员服务
278+阅读 · 2019年10月9日
相关资讯
已删除
将门创投
5+阅读 · 2019年6月28日
时序数据异常检测工具/数据集大列表
极市平台
65+阅读 · 2019年2月23日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
机器人开发库软件大列表
专知
10+阅读 · 2018年3月18日
【推荐】用Python/OpenCV实现增强现实
机器学习研究会
15+阅读 · 2017年11月16日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Top
微信扫码咨询专知VIP会员