Code changes constitute one of the most important features of software evolution. Studying them can provide insights into the nature of software development and also lead to practical solutions - recommendations and automations of popular changes for developers. In our work, we developed a tool called PythonChangeMiner that allows to discover code change patterns in the histories of Python projects. We validated the tool and then employed it to discover patterns in the dataset of 120 projects from four different domains of software engineering. We manually categorized patterns that occur in more than one project from the standpoint of their structure and content, and compared different domains and patterns in that regard. We conducted a survey of the authors of the discovered changes: 82.9% of them said that they can give the change a name and 57.9% expressed their desire to have the changes automated, indicating the ability of the tool to discover valuable patterns. Finally, we interviewed 9 members of a popular integrated development environment (IDE) development team to estimate the feasibility of automating the discovered changes. It was revealed that independence from the context and high precision made a pattern a better candidate for automation. The patterns received mainly positive reviews and several were ranked as very likely for automation.


翻译:代码变化是软件演变的最重要特点之一。 研究代码变化可以使人们深入了解软件开发的性质,并导致产生实用的解决办法―― 开发者流行变化的建议和自动化。 我们在工作中开发了一个名为PythonChangeMiner的工具,可以发现Python项目历史中的代码变化模式。 我们验证了该工具,然后用它来发现来自四个不同软件工程领域的120个项目数据集中的模式。 我们从结构与内容的角度对一个以上项目中出现的模式进行了人工分类,并比较了这方面的不同领域和模式。 我们对所发现的变化的作者进行了一次调查:82.9%的人说,他们可以给变化取一个名称,57.9%的人表示他们希望这些变化自动化,这表明工具能够发现有价值的模式。 最后,我们与一个广受欢迎的综合发展环境(IDE)开发团队的9名成员进行了面谈,以评估将所发现的变化自动化的可行性。我们发现,从上下文和高度精确性来看,使得一个模式更适合自动化。 收到的模式主要是积极的审查,一些成员被排在自动化的排名中排在非常可能的排名中。

0
下载
关闭预览

相关内容

Automator是苹果公司为他们的Mac OS X系统开发的一款软件。 只要通过点击拖拽鼠标等操作就可以将一系列动作组合成一个工作流,从而帮助你自动的(可重复的)完成一些复杂的工作。Automator还能横跨很多不同种类的程序,包括:查找器、Safari网络浏览器、iCal、地址簿或者其他的一些程序。它还能和一些第三方的程序一起工作,如微软的Office、Adobe公司的Photoshop或者Pixelmator等。
专知会员服务
17+阅读 · 2020年9月6日
专知会员服务
59+阅读 · 2020年3月19日
Keras François Chollet 《Deep Learning with Python 》, 386页pdf
专知会员服务
144+阅读 · 2019年10月12日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
【哈佛大学商学院课程Fall 2019】机器学习可解释性
专知会员服务
99+阅读 · 2019年10月9日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
已删除
将门创投
14+阅读 · 2019年5月29日
人工智能 | ISAIR 2019诚邀稿件(推荐SCI期刊)
Call4Papers
6+阅读 · 2019年4月1日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
【推荐】用Tensorflow理解LSTM
机器学习研究会
36+阅读 · 2017年9月11日
Arxiv
0+阅读 · 2021年10月5日
Arxiv
0+阅读 · 2021年10月5日
Arxiv
0+阅读 · 2021年10月1日
Arxiv
14+阅读 · 2020年12月17日
Arxiv
49+阅读 · 2020年12月16日
AutoML: A Survey of the State-of-the-Art
Arxiv
67+阅读 · 2019年8月14日
VIP会员
相关资讯
已删除
将门创投
14+阅读 · 2019年5月29日
人工智能 | ISAIR 2019诚邀稿件(推荐SCI期刊)
Call4Papers
6+阅读 · 2019年4月1日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
【推荐】用Tensorflow理解LSTM
机器学习研究会
36+阅读 · 2017年9月11日
相关论文
Arxiv
0+阅读 · 2021年10月5日
Arxiv
0+阅读 · 2021年10月5日
Arxiv
0+阅读 · 2021年10月1日
Arxiv
14+阅读 · 2020年12月17日
Arxiv
49+阅读 · 2020年12月16日
AutoML: A Survey of the State-of-the-Art
Arxiv
67+阅读 · 2019年8月14日
Top
微信扫码咨询专知VIP会员