
本文共 1823 字,大约阅读时间需要 6 分钟。
开源软件的演化过程对软件维护和演化方面的研究来说,是一个非常宝贵的资源。如何获取特定方法在开源软件演化过程中所经历的修改次数,是软件工程研究者们常需要解决的问题。
这个问题得到了研究团队在 MSRC 2013 中的论文中提出了一种解决方案。该研究团队发布了一个名为 "Benchmarks-DownloadSVNCommits" 的开源项目,该项目可以通过指定两个 commit编号来获取相关信息。为了使用这个工具,我们首先需要从 Apache POI 项目中获取适当的 commit编号。
要实现这一点,我们可以使用 Tortoise SVN 这个工具。具体步骤如下:
接下来,我们可以在 Eclipse 中使用提供的开源项目 "Benchmarks-DownloadSVNCommits" 来实现数据下载。具体代码如下:
public static void testDownloadSVNCommitsApachePOI() throws Exception { String outputFolder = "TestCases/Output/ApachePOI/"; DownloadSVNCommits downloadSVNCommits = new DownloadSVNCommits( "https://svn.apache.org/repos/asf/poi/trunk/", "1685506", "1685522", outputFolder, null, null ); downloadSVNCommits.initializeRepository(); downloadSVNCommits.downloadSVNCommits(); System.out.println("数据已保存在文件夹:" + outputFolder);}
运行 above 代码后,结果将保存在指定的目录下:Benchmarks-DownloadSVNCommits/TestCases/Output/ApachePOI。
接下来,我们需要将这些数据输入到 "Benchmarks-GoldSetGeneratorFromSVNCommits" 项目中。步骤如下:
public static void main(String[] args) throws Exception { String inputFolder = "TestCases/Input/ApachePOI/"; GoldSetGeneratorFromSVNCommits goldSetGenerator = new GoldSetGeneratorFromSVNCommits( "TestCases/Input/ApachePOI/", "1685506.goldSetSVNCommit" ); goldSetGenerator.generateGoldSets(); System.out.println("金质集已生成:" + goldSetGenerator.generatedSets);}
运行后,结果将保存在 Benchmarks-GoldSetGeneratorFromSVNCommits/TestCases/Output/ApachePOI 目录下,其中包括类似 "1685506.goldSetSVNCommit" 的文件。这些文件记录了对应 commit 中的方法修改情况。
通过以上步骤,我们成功地获取了开源软件演化过程中某个方法的修改次数。这只是一种常用的解决方案,您还可以根据具体需求调整工具和实现细节。
发表评论
最新留言
关于作者
