从版本历史中学习和建议Source Code变更的系统评价
Learning and Suggesting Source Code Changes from Version History: A Systematic Review
摘要:
内容:软件系统通过修改源代码来修复漏洞、增加新功能和改进内部架构,不断发展。所有这些实践都记录在版本历史中,可以在开发过程中重用。目的:本文旨在研究与源代码更改学习相关的方法和技术,从更改识别步骤,学习和重用推荐策略。方法:我们对有关源代码变更的主要研究进行了系统回顾。检索方法确定了2410项研究,截至2012年(含2012年),最终获得了39篇选定论文。我们根据每个既定的研究问题对研究进行了分组。本综述调查了在过去的软件中执行的源代码更改如何支持软件项目的改进。结果如下:大多数方法和技术都使用源代码更改的重复性行为来识别软件存储库中的结构或度量模式,通过对版本序列的评估。为了提取结构模式,这些方法使用了示例编程技术来区分源代码的变化。在质量度量分析中,研究主要应用了复杂性度量和面向对象度量。结论:本文的主要含义是以源代码更改为例,支持开发过程中编码实践的改进,其中我们提出了一些相关策略来指导每一步,从识别到建议源代码更改。
英文摘要:
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.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。