当前位置: X-MOL 学术arXiv.cs.SE › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Learning and Suggesting Source Code Changes from Version History: A Systematic Review
arXiv - CS - Software Engineering Pub Date : 2019-09-09 , DOI: arxiv-1909.03571
Leandro Ungari Cayres, Bruno Santos de Lima and Rog\'erio Eduardo Garcia

Context: Software systems are in continuous evolution through source code changes to fixing bugs, adding new functionalities and improving the internal architecture. All these practices are recorded in the version history, which can be reused as an advantage in the development process. Objective: This paper aims to investigate approaches and techniques related to the learning of source code changes, since the change identification step, learning, and reuse in recommending strategies. Method: We conducted a systematic review related to primary studies about source code changes. The search approach identified 2410 studies, up to and including 2012, which resulted in a final set of 39 selected papers. We grouped the studies according to each established research question. This review investigates how source code changes, which were performed in the past of software, can support the improvement of the software project. Results: The majority of approaches and techniques have used repetitiveness behavior of source code changes to identify structural or metrics patterns in software repositories, trough the evaluation of sequences of versions. To extract the structural patterns, the approaches have used programming-by-example techniques to differencing source code changes. In quality metrics analysis, the studies have applied mainly complexity and object-oriented metrics. Conclusion: The main implication of this review is that source code changes as examples, to support the improvement of coding practice during the development process, in which we presented some relevant strategies to guide each step, since identifying until the suggesting of source code changes.

中文翻译:

从版本历史中学习和建议源代码更改:系统回顾

上下文:软件系统通过更改源代码以修复错误、添加新功能和改进内部架构不断发展。所有这些实践都记录在版本历史中,可以作为开发过程中的优势重复使用。目标:本文旨在研究与源代码更改学习相关的方法和技术,因为更改识别步骤、学习和推荐策略中的重用。方法:我们进行了与有关源代码更改的主要研究相关的系统评价。搜索方法确定了 2410 项研究,截至 2012 年(包括 2012 年),最终生成了 39 篇选定论文。我们根据每个既定的研究问题对研究进行分组。这篇评论调查了源代码是如何变化的,在过去的软件中执行,可以支持软件项目的改进。结果:大多数方法和技术都使用源代码更改的重复性行为来识别软件存储库中的结构或度量模式,通过版本序列的评估。为了提取结构模式,这些方法使用了示例编程技术来区分源代码更改。在质量度量分析中,研究主要应用了复杂性和面向对象的度量。结论:本次审查的主要含义是以源代码更改为例,支持开发过程中编码实践的改进,其中我们提出了一些相关策略来指导每个步骤,从识别到源代码更改的提示。可以支持软件项目的改进。结果:大多数方法和技术都使用源代码更改的重复性行为来识别软件存储库中的结构或度量模式,通过版本序列的评估。为了提取结构模式,这些方法使用了示例编程技术来区分源代码更改。在质量度量分析中,研究主要应用了复杂性和面向对象的度量。结论:本次审查的主要含义是以源代码更改为例,支持开发过程中编码实践的改进,其中我们提出了一些相关策略来指导每个步骤,从识别到源代码更改的提示。可以支持软件项目的改进。结果:大多数方法和技术都使用源代码更改的重复性行为来识别软件存储库中的结构或度量模式,通过版本序列的评估。为了提取结构模式,这些方法使用了示例编程技术来区分源代码更改。在质量度量分析中,研究主要应用了复杂性和面向对象的度量。结论:本次审查的主要含义是以源代码更改为例,支持开发过程中编码实践的改进,其中我们提出了一些相关策略来指导每个步骤,从识别到源代码更改的提示。大多数方法和技术都使用源代码更改的重复性行为来识别软件存储库中的结构或度量模式,通过版本序列的评估。为了提取结构模式,这些方法使用了示例编程技术来区分源代码更改。在质量度量分析中,研究主要应用了复杂性和面向对象的度量。结论:本次审查的主要含义是以源代码更改为例,支持开发过程中编码实践的改进,其中我们提出了一些相关策略来指导每个步骤,从识别到源代码更改的提示。大多数方法和技术都使用源代码更改的重复性行为来识别软件存储库中的结构或度量模式,通过版本序列的评估。为了提取结构模式,这些方法使用了示例编程技术来区分源代码更改。在质量度量分析中,研究主要应用了复杂性和面向对象的度量。结论:本次审查的主要含义是以源代码更改为例,支持开发过程中编码实践的改进,其中我们提出了一些相关策略来指导每个步骤,从识别到源代码更改的提示。为了提取结构模式,这些方法使用了示例编程技术来区分源代码更改。在质量度量分析中,研究主要应用了复杂性和面向对象的度量。结论:本次审查的主要含义是以源代码更改为例,支持开发过程中编码实践的改进,其中我们提出了一些相关策略来指导每个步骤,从识别到源代码更改的提示。为了提取结构模式,这些方法使用了示例编程技术来区分源代码更改。在质量度量分析中,研究主要应用了复杂性和面向对象的度量。结论:本次审查的主要含义是以源代码更改为例,支持开发过程中编码实践的改进,其中我们提出了一些相关策略来指导每个步骤,从识别到源代码更改的提示。
更新日期:2020-01-17
down
wechat
bug