研究文章|开放获取
Yun,通Li Wei Wang Wei局域网,乡里, ”Structure-Driven方法信息摘要软件变更影响分析”,科学的规划, 卷。2018年, 文章的ID5494209, 16 页面, 2018年。 https://doi.org/10.1155/2018/5494209
Structure-Driven方法信息摘要软件变更影响分析
文摘
信息检索技术的一个重要应用是软件变更影响分析。现有的信息摘要修改影响分析方法选择一个方法将语料库的源代码转换成向量这一过程称为索引。单一的方法是选择从两个主要方法,称为bag-of-words和字嵌入模型,各有其特定的优点和缺点。bag-of-words模型记录在源代码中每一个字,但忽略了语料库的上下文信息。这个词嵌入模型记录单词的上下文信息,但失去了细节。为了解决这个问题,我们提出一个信息摘要structure-driven方法改变影响分析(名为SDM-CIA)。SDM-CIA集成bag-of-words和字嵌入模型基于软件的结构。我们的实验使用标准基准测试显示,当与现有的方法相比,SDM-CIA提高精度性能,召回性能、f值的性能,和MRR性能平均为3.65%,3.82%,3.6%,和10.28%,分别。我们的实验证实SDM-CIA的有效性。
1。介绍
软件维护的主要活动是修改软件源代码单元(1]。这些修改称为变化。变更影响分析(CIA)之间的映射关系的过程就是识别变更请求和相应的源代码单元,这使得它可以在源代码中找到新的和改变功能随时间(2]。程序员要做的改变影响分析作出任何更改之前的源代码(1];然后,他们可以决定哪些源代码应该修改。王尔德et al。3)最早提出了中央情报局的方法,称为软件侦察。经过20多年的发展,它已成为基本的技术在许多领域,包括组件检索(4,软件重用5,需求可追溯性分析(6]。
目前的中央情报局的方法(3,7- - - - - -9)基于信息检索基础上的假设标识符,评论,和字符串字面值在源代码中包含语义信息与软件的相关功能。在典型的使用,开发人员提交一个查询,在自然语言描述了变更请求。使用查询和源代码单元之间的语义相似性计算的检索算法,该算法识别源代码单元实现变更请求。计算需要的源代码和查询的转换成数值向量表示。这个过程称为索引。索引方法分为两类:基于bag-of-words模型(10),这些基于字嵌入模型(11,12]。bag-of-words模型很容易执行,完全保留了每个单词的出现在源代码中。然而,这个模型建立在可交换性的前提下,忽略了单词的上下文信息。其他研究人员(8,13)认为源代码包含上下文信息和通过实验证明了这一点。嵌入模型记录这个词的上下文信息有效,但需要很多参数的设置,大大影响模型的性能(8]。事实上,正确设置参数需要开发人员的技能和经验。这个词嵌入模型对环境非常敏感,但与传统的文本数据,源代码语法并不总是严格。因此,这个词嵌入模型并不总是准确描述源代码的向量空间。现有中央情报局的方法使用一个索引方法,bag-of-words或字嵌入与各自的优势和劣势,并不能准确地描述相似性源代码单元和查询。
为了解决这个问题,我们提出一个信息摘要structure-driven方法改变影响分析(SDM-CIA)。SDM-CIA文本中情局的方法是基于信息检索技术。SDM-CIA集成bag-of-words模型和词嵌入模型基于软件的结构。
本文的主要贡献如下:(1)我们建议SDM-CIA,集成了两个不同的索引模型的想法变化影响分析过程。SDM-CIA一体化进程的依赖程度的内聚和耦合的源代码的结构。通过使用两种索引方法的优势互补,实现更好的性能比现有的算法,使用一个方法。(2)我们通过实验验证软件源代码的结构信息可以帮助CIA方法的估计性能。
我们的论文有以下结构。部分2提供背景资料对现有方法和相关工作。部分3描述我们的提议SDM-CIA方法。部分4描述我们的评估和结果对五动用SDM-CIA开源包。在第5部分中,我们讨论长效磺胺的适用性高中央情报局在目前我们工作的结论,为进一步研究提供了方向。
2。背景
现有的中情局技术分为四类(2):静态(14,15),动态(16,17),文本(18,19),和混合20.,21]。
静态方法分析结构信息,如控制或数据流的依赖关系,指出程序员可能相关的代码(22]。
动态方法检查软件系统的执行,他们常常需要记录的执行跟踪软件(2]。
文本方法利用模式匹配(23)、信息检索(IR) [7,8),或自然语言处理(NLP) [19]。模式匹配是检查一个给定的行为序列的源代码的成分的存在模式,通常包括一个文本搜索的源代码(2]。红外技术本质上是统计方法(2];他们需要用户提交的查询文本描述了变更请求。红外技术变换源代码文本和查询文本向量,然后计算源代码文本之间的相似之处和查询(变更请求)的向量空间。用户可以决定哪些源代码是相关的查询基于相似之处。NLP的方法也可以利用一个查询,但是他们分析词类的词用于源代码(2]。
一些研究人员(20.,21]组合两个或更多类型的方法,因为这使他们意识到更好的中情局性能比单独的技术;这种方法被称为混合方法。例如,我们可以使用静态和文本方法来帮助确定哪些执行痕迹是有用的在使用动态方法(21,24]。
文本方法是占主导地位的方法因为它的可用性和低开销25]。近年来,机器学习的发展和深度学习先进的信息检索研究。摘要方法与发展,信息已成为当前研究的焦点中情局技术(7]。
2.1。信息摘要变化影响分析
如图1,中央情报局使用信息检索的过程包括三个一般步骤:预处理、索引、和计算相似度。
步骤1:预处理。这个步骤包括创建文档的每个源代码单元(方法)在源代码中紧随其后的是关键词的提取从每个单元对应的文档,与关键字包括标识符,评论,和字符串字面值。Abebe et al。26)一个标识符定义为一个类的名称,属性,方法,或参数。评论通常使用需求映射到代码或描述的代码(27]。此外,在评论中版权声明不包括关键字。阻止,然后执行分词算法和障碍移除所有文件。分词特殊或组合形式的词分为单词(例如,“openFile”分为“开放”和“文件”)。阻止标识不同形式的常见的同源词,匹配相同的关键字(例如,“插入”,“插入”都是“插入”)的形式。障碍消除条毫无意义的文字从语料库。无意义的字不包含语义知识,如“,”“,”“,”等等。提取后,分词、遏制和清除障碍,文档的集合形成了语料库。
假设我们有软件组成的两个类,每个类组成的两个方法,如图2。在这个例子中,我们有四个软件单元(方法)。执行提取时,我们为每个方法在软件创建一个文档并提取标识符,评论,和从每个方法相应的文档字符串。提取后,我们可以得到四个文件,如图3(一个)。单词的医生1提取方法”OpenFile(文件名),“医生2从“CloseFile(),“医生3从“DivisionOperation()”,医生4来自“输出()。“然后,我们进行分词,阻止和障碍。在这个例子中是分词,OpenFile”分为“开放”和“文件”,“CloseFile”将在“关闭”和“文件”,等等。阻止一步,“命名”,是“名字,”和“部门”和“因子”都是“红利。“字”,“是”和““停止词,所以他们从文档中删除的障碍清除步骤。最后,我们可以获得语料库,它由四个文档,如图3 (b)。
(一)
(b)
步骤2:索引。索引将语料库转换为数值向量,每个文档。这些向量称为源代码向量。当开发人员描述一个变更请求提交一个查询时,查询也变成了一个向量。
bag-of-words模型可以直接查询转换成一个查询向量,但这个词嵌入Doc2vec基于多层神经网络模型,并将这个词和文档向量层。有两种方法可以将查询转换为doc2vec查询向量:(1)把培训查询文档,把它在文档向量层。(2)火车查询中的每个单词,获得许多词向量的向量层。然后计算这个词的平均向量向量作为查询向量。
科里et al。8)两种方法的性能进行了评价,得出的结论是,第二种方法实现更好的性能。因此,我们选择第二种方法索引查询,计算如下。
定义1:在doc2vec查询向量。为一个查询多个单词组成的, ,wi第i个词的查询。使用doc2vec火车的话 ,我们获得许多词向量{}。我们计算的查询向量
假设我们想要改变软件的软件打开文件函数如图2,我们可以提交一个查询是“打开文件。“我们的语料库索引,查询通过使用最基本的bag-of-words模型。然后,我们可以获得一个矩阵如表所示1。矩阵中的每一行是一个向量,给出了相应的文档和查询。每一列代表一个字。矩阵中的元素代表一个词的出现在相应的文档数量。例如,“开放”这个词出现在医生的两倍1的值,所以文档向量的第一个元素1是2。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
步骤3:计算相似度。接下来,该算法计算相似性查询向量,每个源代码向量,然后相应等级的相似之处。源代码向量和的最大相似性查询向量是最可能相关的变更请求。计算每个文档向量和查询向量之间的余弦距离,我们可以得到的相似之处。使用Sim卡(医生我、查询)代表文档之间的相似度我向量和查询向量,然后我们可以获得相似之处如下:Sim卡(医生1、查询)= 0.74Sim卡(医生2、查询)= 0.39Sim卡(医生3、查询)= 0.0Sim卡(医生4、查询)= 0.0。医生1向量的最大相似性查询向量,文档和文档1从方法提取OpenFile(文件名)。“因此,我们可以得出这样的结论:“OpenFile(文件名)”是最有可能的方法,涉及到我们的变更请求”打开的文件”。
2.2。相关的工作
马库斯et al。9最早提出信息摘要2004年变化影响分析(CIA)方法。第一次,他们成功地利用信息检索技术变化影响分析的软件源代码。他们最基本的定义过程的信息摘要变化影响分析三个步骤,包括预处理、索引和计算相似度。自那时以来,许多研究人员进行了进一步的研究,但他们的作品仍建立在三步过程由马库斯等。本文的工作也是建立在马库斯定义的基本过程等,但是我们找到了一个更好的指标和计算相似度的方法;因此,我们可以取得更好的性能变化影响分析。
因为索引是最重要的步骤在中央情报局的过程中,研究人员花了最多的时间在这一步。马库斯et al。9)利用潜在语义索引(LSI)。轻量级的大规模集成电路识别和消除同义词的影响和减少向量的维数在同一时间。比格斯et al。7)使用潜在狄利克雷分配(LDA)索引源代码,实现更好的性能基准。然而,大规模集成电路和LDA使用bag-of-words模型,假定关键词没有上下文信息(10]。因此,交换的位置关键字不会导致检测源代码的功能的变化。2015年,科里et al。8]介绍了doc2vec,基于嵌入模型(这个词12),在中央情报局的研究和实现更好的性能比LDA方法测试。这个词嵌入模式11,12]不仅压缩源代码向量的维度,也记录了上下文关键字之间的关系。它索引语料库基于关键词的共生关系。最著名的例子,它的性能是它可以得出结论,类似于“king-queen男女。”,因为这个词嵌入方法是基于深度学习模型,它需要设置等参数向量维数,数量的训练时期,许多培训窗口,学习速度,等等。所有这些参数都需要用户对深度学习背景知识。同时,语法和格式的源代码从自然语言文本中有很大的不同。在源代码语料库,同现关键词之间的关系并不一定意味着是相似的,这是不同于在自然语言。因此,嵌入模型有一定的局限性,来自这个词描述相似性源代码完全基于关键词的共生关系。
马库斯和比格斯的研究(7,9)是基于单个bag-of-words索引模型,和科里的研究8)是基于一个字嵌入索引模型。每个使用一个索引方法,但不同的索引方法有特定的性能优缺点。这些差异意味着当前源代码方法不能准确地描述不同单位,这限制了软件变更影响分析的性能。因此,本文我们的工作是我们在SDM-CIA结合两种不同的索引方法;这种组合可以消除一些局限性所带来的单一索引的方法。SDM-CIA可以取得更好的性能比这些中情局与相同的输入和预处理方法。
2.3。Bag-of-Words和字嵌入模型
2.3.1。Bag-of-Words模型
bag-of-words模型是一个简化索引方法使用信息检索(IR) [10]。在这个模型中,文本(比如一个句子或一个文档)表示为一个无序的集合的话,无视语法,甚至词序。bag-of-words模型生成,稀疏向量像[1 0 2 0…0,0,1],其中每个维度表示一个词的频率在语料库。向量记录只有关键词的频率没有任何上下文信息。
例如,如果我们想指数两个句子,我们进行如下:(一)点击“打开”按钮可以打开一个文件。(b)单击“关闭”按钮可以关闭该文件。
总共有八个不同的单词在这两个句子,我们可以建立一个字典这两个句子:{“点击”:1、“的”:2,“开放”:3,“按钮”:4,“能”:5,““:6,“文件”:7,“关闭”:8}。
使用字典的索引,每个句子都由一个八维向量表示:(一)(1、1、2、1,1,1,1,0],(b)(1、2 0 1 1 0,1,2),
在每个维度代表一个词在句子的频率。这个向量表示不保留原句子中的词的顺序。
有三个典型bag-of-words模型在红外技术:术语Frequency-Inverse文档频率(TF-IDF),潜在语义索引(LSI) [28),和潜在狄利克雷分配(LDA) (29日]。在SDM-CIA,我们选择TF-IDF bag-of-words模型。TF-IDF是最基本的bag-of-words方法。TF-IDF执行没有空间减少,记录关键字出现在索引的最大数量。其他bag-of-words模型,如大规模集成电路和LDA TF-IDF的基础都是建立在,他们都减少向量的维数很低的范围内。维减少可能导致一些单词的信息被丢失。因此,我们选择在SDM-CIA TF-IDF。
TF-IDF索引模型,旨在反映是多么重要的一个字一个文档集合或文集。term-weighting方案,它可以为bag-of-word矩阵中的每个元素分配一个重量。两个统计数字的乘积,频率和逆文档频率。项频率给定的次数项在文档中出现。总的来说,这是除以文档的长度: 在哪里是这个词出现的次数我在文档中j,文档中的术语的总数吗j。逆文档频率表示通用术语的重要性我集合: 在哪里集合中的文档的数量,而分母是文件包含这个词的数量吗我。通过这种方式,我们可以找到TF-IDF重量如下:
最后,bag-of-word矩阵中的每个元素将乘以相应的 。
2.3.2。字嵌入模型
这个词嵌入模型生成短的实际价值向量(0.723,0.051,…,0.231 - 0.321,0.4231,0.448),记录单词之间的同现关系映射在一个低维空间描述语料库[12]。转换保存上下文信息为代价的许多独立的关键词,这是输了。
字嵌入模型包括,例如,word2vec [11],doc2vc [12],autoencoder [30.]。Doc2vec新词嵌入方法使用深度学习技术(8]。它是目前最受欢迎的索引模型在自然语言处理和文本信息检索研究。此外,研究人员(8)已经验证的有效性doc2vec在中情局的想法。因此,我们选择在SDM-CIA doc2vec。
doc2vec一词嵌入模型基于多级神经网络组成的几个隐藏层除了单输入和输出层。输入层由一个有序序列标识符从代码中提取。多个隐藏层用来捕捉每个遇到的上下文,复杂的模式的代表词上下文发生在语料库。输出层由一个向量为每个术语,它已被证实携带语义(8]。doc2vec可以改变一个段落或文档向量,并基于word2vec模型,可以将文字转换为向量(12]。我们可以用doc2vec语料库的文档转换成向量。转换保护环境,但它将失去许多单词的信息语料库。
3所示。建议的方法
在本节中,我们提出我们的建议structure-driven信息摘要变化影响分析方法(SDM-CIA)。如图4,黑匣子突出我们SDM-CIA之间的主要差异和传统的想法中情局的方法。预处理是不变的。的差异是相似的索引和计算步骤。
想法中情局方法依赖于量化源代码之间的语义相似性单元和一个查询。索引过程将源代码和查询转换成向量,向量空间和距离决定了相似。如前所述,单个索引方法的优点和缺点。我们的目标是整合两种方法来实现更好的性能。
3.1。模块结构
一些研究人员(31日,32)证明,在多个向量空间距离的线性组合仍然是一个距离。对于一个给定的源代码向量米我和查询向量问距离(相似性)的线性组合可以描述为在不同的空间和距离计算如下:
在这个公式,之间的距离是和在向量空间(不同的)k,是相应的重量。最重要的问题是找到适当的体重 ,这是很难直接计算。因此,我们把问题计算向量空间的最优结构,也就是我们所说的术语structure-driven。
我们的目标是高内聚和低耦合的最基本结构原理当我们组织软件源代码模块。源代码在同一个模块中应该有高内聚,但在不同的模块源代码应该低耦合。如果软件的源代码是严格组织高内聚和低耦合的原则,那么我们可以认为它有良好的结构。结构良好的软件应该有以下两个特点。首先,源代码在同一单位实现了同一个函数,这个源代码应该常见的关键词标识符,评论,和字符串字面值。第二,源代码实现不同的功能,在不同的单位和这个源代码应该有不同的关键词标识符,评论,和字符串字面值。因此,最好的相似度(距离)计算方法应符合这种结构性原则。中情局的想法的方法,计算相似性(距离)在向量空间,和所有源代码单元转化为向量空间中向量。这样,源代码向量空间中向量的分布也应该反映出源代码单元的结构。当我们评估源代码向量的分布,我们可以使用内部距离和外部的距离。
为了清楚地介绍SDM-CIA方法,我们需要引入一些定义,如下:
定义2:模块。在软件源代码由良好的组织结构中,一个模块是一组源代码单元执行相关功能。软件系统由许多模块组成。例如,在面向对象的软件系统中,每个类都是一个模块组成的多种方法,每一种都是一个源代码单元。
定义3:内部距离。给定一个软件系统源代码单元分布在不同的模块,在索引中的所有源代码单元索引空间,我们可以计算内部模块间的距离“interDis”使用以下公式: 在哪里米模块的总数(类)的软件;计算源代码单元之间的平均距离模块j;之间的距离吗l单位和源代码hth源代码单元模块j;和h≤n;和是组合公式。组合是一个无序的集合不同的元素,通常规定的大小和从一个给定的集合, 。 计算每一对之间的距离的总数n总源代码单元模块j。一般来说,如果一个模块由两个以上的源代码单元,然后我们有n> 2。但是,如果有一些模块包括两个或一个源代码单元,即n= 2,我们使用来代替的公式。如果n= 1,我们用1代替的公式。
定义4:外部的距离。很多源代码单元组成的一个系统属于不同模块,在索引中的所有源代码单元索引空间,我们计算外部模块之间的距离 在哪里模块在软件的总数;是模块的中心向量我计算的 ; 代表了j单元模块的源代码我;和n是源代码的数量单位的模块我。
图5是一个定义的图形表示形式1、2、3和4,使用软件系统有两个模块。在面向对象的系统中,每个模块都是一个类,用点表示模块1中的方法和表示方法的十字星模块2。模块2中的虚线边界之间的距离代表模块2的两种方法。我们计算每一对之间的距离的方法模块2的意思是所有的距离。距离的意思是内部模块2的距离。正方形和三角形代表模块1和模块2的中心向量,分别。三角形之间的距离和距离是外部这两个模块。
3.2。Structure-Driven信息摘要软件变更影响分析的方法
考虑由两类组成的软件系统(模块),与每一个类(源代码单元)组成的许多方法。我们为每个源代码单元创建一个文档的软件,然后从每个源代码单元中提取关键字对应的文档。这些文档组成的语料库软件。然后我们两个不同的模型适用于语料库索引,索引索引模型1和模型2。源代码生成的二维向量分布如图6(一)和6 (b)和表示索引空间1和索引空间2。在这个例子中,在索引空间分布1比在普通索引空间2。源代码在索引空间向量1密切结合软件的结构,对每个模块源代码单元干净地分离。相比之下,源代码在索引空间向量的分布2是混乱的,有一个很大的重叠向量的两个模块的源代码。在这种情况下,我们看到索引空间描述了软件的源代码1比2索引空间,这表明索引模型1更适合这个软件的源代码。因此,当考虑在这两个索引空间的距离,我们应该给更多的重量来在太空中1和减少重量来在太空中2。通过这种方式,我们可以使用模块的内部距离和外部距离来计算重量在线性组合公式。
(一)
(b)
因此,我们提出一个想法中情局structure-driven方法。我们首先计算重量基于线性组合之间的一致性程度,索引空间中的向量分布和软件源代码的结构。然后,我们计算源代码之间的相似性查询单位和基于线性组合公式。我们计算的一致性程度距离使用内部和外部模块在软件源代码的距离。
我们测量软件的内聚和耦合程度使用内部和外部的距离根据公式 exterDis和interDis内部和外部的距离,分别。源代码语料库索引后,我们计算向量的Dis的源代码。大说的值对应于更好的描述的语料库。因此,如果索引模型生成的向量1有更大的比生成的索引模型2说,我们考虑索引模型1比2索引模型。因此,当集成计算的相似性(距离)两个索引模型,比 。因为距离的线性组合是一个相对权重,权重需要满足的约束
基于之前的想法,我们建议SDM-CIA方法如下。预处理后,我们使用bag-of-words模型和词分别嵌入模型指数语料库和查询。之后,我们计算查询向量之间的相似之处和源代码两个索引向量空间。我们使用Sim卡1和Sim卡2表示bag-of-words的相似性和字嵌入索引空间,分别。因此,和 ,在哪里代表查询向量之间的相似度pth源代码bag-of-words索引空间的矢量和代表查询向量之间的相似度pth源代码向量嵌入这个词索引空间。我们使用和代表源代码bag-of-words和字嵌入索引空间向量,分别。所有的源代码单元分为k模块由软件本身的结构和 ,在哪里代表所有源代码的向量pth模块在bag-of-words索引空间,代表所有源代码的向量pth模块嵌入这个词索引空间。算法1介绍了SDM-CIA方法的相似度计算算法。
|
步骤1。线1和2的算法计算出内部分别在两个索引空间的距离,和这一步使用内部距离公式定义3。
步骤2。线3和4计算外部同样的距离。这个步骤使用定义4中的外部距离公式;和是中心向量的 ,和是中心向量的 。
步骤3。第5行计算权重线性组合基于内部和外部的距离距离。
步骤4。行6,计算最终的相似性(距离)基于线性组合公式。
最后,我们使用相似等级的源代码单元。源代码单元与最大相似性最大的可能映射到变更请求。
4所示。案例研究
我们设计了一个案例研究来评估我们的方法的有效性。特别是,我们希望获得以下研究问题的答案(rq)。(1)RQ1:我们的方法取得更好的性能比现有的想法中情局方法基于单个索引模型?(2)RQ2:我们能预测美国中央情报局的表现方法基于内部和外部的距离向量索引空间?
回答RQ1,我们需要与现有的方法比较我们的方法的性能。介绍了在节2.2中情局,三种典型的索引方法已经用于研究。代表中央情报局研究对应这三种索引方法嵌入模型这个词doc2vec发表的科里et al。8],发表的bag-of-words LDA模型比格斯et al。7),bag-of-words马库斯等人发表的大规模集成电路模型。9]。这三个研究都是第一次使用相应的索引方法在中情局的想法,和他们都使用相同的预处理技术。因此,我们将我们的方法与这三个想法中情局方法基于三种单一索引模型。
4.1。实验系统
保证客观性的案例研究中,我们使用了软件维护的任务发布的基准Poshyvanyk [2)进行测试。表2提出了基准的细节,包括五个软件产品及其相关的变化。基准中的每个软件包可能有多个变化,和每个变更对应几个软件单元。例如,我们可以修改文件功能和编辑功能在同一jEdit的版本更新。有两个变化在这个更新版本。修改文件函数可能需要修改两个或三个方法,和修改编辑功能可能需要修改更多的方法。所有的变化存在于每个产品的官方问题跟踪系统。每个变化都有一个ID号和两个组件:(1)描述:自然语言描述的变更请求,我们作为一个查询(2)黄金:源代码的记录单元相关的变更请求,我们使用来验证我们的方法的结果
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
评估我们的方法需要高质量的源代码按照下列要求:(1)源代码应该有良好的语义,即。源代码中,关键字有意义。毫无意义的词汇是指非传统的单词没有明确的含义,如单一字母,变量或方法名称如“c2,”“平方米”,等等。我们清点的数量毫无意义的词在每个软件包的源代码。如表所示1,在总毫无意义的词的比例是4.56%到7.43%。因此,超过百分之九十的关键词在源代码中有良好的语义。我们得出这样的结论:基准的源代码是高质量的。(2)源代码应该组织根据高内聚和低耦合的原则。特殊的团队管理基准产品的变化,确保源代码结构的质量。如果产品的结构基准是高质量的,RQ2的答案将是肯定的。因此,我们可以间接证实产品的质量的软件结构RQ2的答案。
4.2。性能指标
我们还需要一个测量来评估我们的方法的性能。
许多研究人员(2,21,33)的精度和召回作为指标来评价中情局的性能。这些指标计算相关元素的一部分生成的方法。他们被定义为 在哪里是所有正确的源代码文件的集合相关的变更请求,然后呢是中情局源代码文件的检索方法。在计算精度和召回指标时,我们使用的源代码文件的前5%从结果排名列表作为中情局的结果。然而,由于精度和召回是互惠的,他们无法反映中情局技术的综合性能(2]。因此,我们也采用f值测量性能。f值的低平均精度和召回,一个f值达到最佳值1(完美的精度和召回)和坏在0。f值被定义为
同时,中央情报局本质上是信息检索,因此我们使用一个信息检索指标来评估性能。类似于相关研究(8,33,34),我们使用第一个相关文档的排名作为衡量有效性。等级代表源代码实体开发人员的数量将会查看之前有关。MRR达到最佳值在0。1和最严重的平均排名倒数(MRR)被定义为 在哪里查询和集吗是给定查询的有效性测量吗 。大MRR值显示更好的性能。
为了不失一般性,我们使用所有四个指标来评估我们的案例研究方法的性能。
4.3。评估过程
(1)预处理。预处理是一样的现有的想法中情局方法,包括提取、分词、字阻止,和障碍移除。(2)索引。我们执行TF-IDF doc2vec语料库索引,分别。我们生成的源代码在两个索引向量空间。Dtfidf代表TF-IDF索引空间的向量,Dd2v代表doc2vec索引空间的向量。然后,我们需要执行TF-IDF和doc2vec索引的查询。重要的是要注意,当我们执行doc2vec索引查询,我们使用定义1中的方法。索引查询TF-IDF和doc2vec之后,我们有两个查询向量和 。(3)相似度计算。计算之间的余弦距离和每个向量Dtfidf,我们获得的相似之处Sim卡tfidf。计算之间的余弦距离并且每个向量Dd2v,我们获得的相似之处Sim卡d2v。我们计算和排名最后的相似性,给出了算法1。我们使用了黄金集验证性能并记录结果。
4.4。实验结果
图7介绍了综合结果SDM-CIA和基线技术不同值的精度和召回指标。图8介绍了使用f值度量结果。图9介绍了使用MRR度量结果。下面我们进一步讨论这些结果。
(一)
(b)
(c)
(d)
(e)
(一)
(b)
(c)
(d)
(e)
(一)
(b)
(c)
(d)
(e)
在数据7- - - - - -9,大规模集成电路表示的方法马库斯et al。9),LDA表示比格斯的方法等。7],Doc2vec表示科里的方法等。8]。我们现在回到RQ1。
4.1.1。讨论RQ1
数据7(一)- - - - - -7 (e)表明,我们的方法得到更好的精度和召回性能对JabRef jEdit, muCommander,和ArgoUML项目,实现平均精度提高3.65%,平均3.82%召回改进而最有效的方法。在Eclipse中,我们的表现是一样的方法从科里et al。16]。这是因为在计算精度和召回指标,我们的算法只使用源代码文件的前5%的排名结果中央情报局(14]。约有120000在Eclipse中方法的源代码,源代码前5%相当于大约6000单位。因为只有几个源代码单元实际上是每个变更请求,相关的大量源代码单元的结果使测量精度和召回的区别可以忽略不计。
如图8,我们发现我们的方法总是比方法使用一个索引方法根据f值。数据8(一个)- - - - - -8 (d)表明,我们的方法提高f值高达8.92% (JabRef), 0.24% (jEdit), 1.59% (muCommander)和3.83%(之一)相比,现有方法在每种情况下最有效。在Eclipse中,我们的表现是一样的科里的方法等。8]。这是因为当我们计算f值时,我们使用了精度和召回作为输入变量。然而,我们的方法的精度和召回表现在科里的方法相同的Eclipse。因此,我们获得的相同的F-measure性能与科里的方法在Eclipse。即便如此,我们的方法仍然取得了平均提高3.6%,f值相比性能最有效的方法使用一个索引模型。
如图9,我们发现我们的方法总是比方法使用一个索引方法根据平均排名倒数(MRR)。数据9(一个)- - - - - -9 (e)表明,我们的方法改善高达12.03% (JabRef), 7.56% (jEdit), 5.64% (muCommander), 8.36%(之一),17.8% (eclipse) MRR相比,现有方法在每种情况下最有效。我们的方法实现MRR平均提高10.28%的性能提升相比,最有效的方法使用一个索引模型。
SDM-CIA的表现不是很独特的测量精度,召回和f值。主要原因是有五个软件产品在我们的基准,每个数千或数万源代码组成的单元。然而,对于基准的变化,有更少的(1 - 5)源代码单元是真正相关的改变。在计算精度、召回和f值,我们需要使用源代码的前5%单位从排名结果,因为软件产品的规模在基准太大。我们把从排名前5%的源代码单元,这可能是一个非常大的数字。特别是,当计算的精确公式 ,Dr将是一个非常大的数字,而非常小。这将呈现精度一个很小的数字。因此,的差异精度之间不同的方法将会非常小。
这也是为什么我们选择排名的前5%作为美国中央情报局的结果。现有的研究(21,35)建议以排名前5% -15%为中情局的结果。结果我们收集越多,精度越小,这将导致不同的方法之间的性能差异越来越小。因此,我们选择在我们的实验中至少5%。
与精度相比,召回和f值,MRR将是一个更客观的衡量评价中情局的性能。许多其他的研究人员(7,8,33,34MRR)用于评价中情局的性能的方法。我们也使用这种方法在我们的实验中,结果表明,我们的方法实现平均提高10.28%,MRR性能相对最有效的方法使用一个索引模型。这可能代表了比其他方法更好的性能。
10/24/11。讨论RQ2
表3介绍了性能结果从TF-IDF和doc2vec权重计算出自己的线性组合。中央情报局性能反映了对应的索引模型。重量表示向量的内聚和耦合程度在相应的索引空间。中情局TF-IDF的性能比doc2vec JabRef, jEdit, muCommander之一,所以结合体重有利于TF-IDF这些包。然而,doc2vec中情局的表现比TF-IDF Eclipse,所以体重有利于doc2vec组合。因此,我们可以估计中央情报局的性能的方法基于内部和外部的距离向量的空间索引。从表3,我们可以看到源代码向量的内聚和耦合程度与中情局的性能是一致的。因此,我们得出这样的结论:这些软件包的结构都是高质量的。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5。结论
在本文中,我们提出了一个structure-driven信息摘要变化影响分析的方法。我们的方法集成bag-of-words和字嵌入模型在索引和相似性计算步骤。我们的实证结果使用标准指标组成的五个开源软件包证明我们的方法精度达到更好的性能,还记得,f值,MRR指标比现有的方法,使用一个索引方法。
几个因素影响实证案例研究的结果的有效性和限制我们的能力来概括我们的研究结果:(1)我们执行与五个Java软件系统的案例研究。我们的方法的适用性其他语言编写的软件还有待验证。(2)我们没有讨论的影响参数对索引方法;我们使用默认设置。而其他研究探索参数设置,这不是我们自己的研究的目的。(3)我们评估我们的方法只使用高品质的源代码。我们的方法可能会失败在使用低质量的软件。
在未来,我们将开发相关领域的信息检索方法。此外,我们计划进行更多的实验使用更多种类的开源项目来验证该方法的普遍性。
数据可用性
软件产品的源代码和改变数据用于支持这项研究的结果已经存入照片库(2)(http://www.cs.wm.edu/semeru/data/benchmarks/)。
的利益冲突
作者宣称没有利益冲突。
确认
这项工作是由中国国家自然科学基金支持下批准号。61462092,61379032,61662085,云南省自然科学基金重点项目批准号下2015 fa014,数据驱动的软件工程研究创新团队批准号下的云南2017 hc012,西下的人才培训计划的基础光批准号W8090311,下的云南大学研究生科研创新基金批准号YDY17094。
引用
- 郑胜耀江、c . McMlillan和r . Santelices”变化影响分析程序员做调试吗?”经验软件工程,22卷,不。2、631 - 669年,2017页。视图:出版商的网站|谷歌学术搜索
- b .说,m .雷夫尔m .聚集,d . Poshyvanyk”功能源代码的位置:分类和调查,“软件学报:进化和过程,25卷,不。1,53 - 95年,2013页。视图:出版商的网站|谷歌学术搜索
- n .王尔德j·a·戈麦斯t阵风et al .,“旧代码,用户功能定位”软件维护学报1992年IEEE国际会议奥兰多,页200 - 205,美国1992年11月。视图:谷歌学术搜索
- w·t·李,s . p . Ma和y y蔡”检索web服务组件使用UML建模和扩张,”信息科学与工程》杂志上,33卷,不。1,17-36,2017页。视图:谷歌学术搜索
- m . Linaresvasquez a Holtzhauer, d . Poshyvanyk“自动检测类似的Android应用程序,”24日学报》国际会议程序理解,页1 - 10、奥斯汀、TX,美国,2016年5月。视图:谷歌学术搜索
- m . k . Hossen h . Kagdi, d . Poshyvanyk”合并源代码作者、维护者和变化倾向分类变更请求,”22日学报》国际会议程序理解,页130 - 141,海得拉巴,印度,2014年5月。视图:谷歌学术搜索
- l·r·比格斯c . Bocovich r .同志b·p·艾迪·l·h·Etzkorn和n . a .卡夫“配置基于潜在狄利克雷分配功能位置,”经验软件工程,19卷,不。3、465 - 500年,2014页。视图:出版商的网站|谷歌学术搜索
- c·s·科里,k . Damevski和n . a .卡夫“探索深度学习的使用功能位置,”学报2015年国际会议上软件维护和演化不莱梅,页556 - 560年,德国,2015年9 ~ 10月。视图:谷歌学术搜索
- a . Marcus a . Sergeyev诉Rajich et al .,”一个概念信息检索方法的位置在源代码,”11日工作会议在逆向工程学报》上,页214 - 223,代尔夫特,荷兰,2004年11月。视图:谷歌学术搜索
- r . y . Zhang Jin, z h .周”理解bag-of-words模型:统计框架。”国际期刊的机器学习和控制论,1卷,不。1 - 4,43-52,2010页。视图:出版商的网站|谷歌学术搜索
- g . t . Mikolov k . Chen Corrado et al .,“有效的估计在向量空间表示,”这个词学报学习国际会议上表示美国亚利桑那州斯科茨代尔,页1-13,,2013年5月。视图:谷歌学术搜索
- t . Mikolov Sstskever, k . Chen等人”的分布式表示单词和短语及其组合,”先进的神经信息处理系统26卷,第3119 - 3111页,2013年。视图:谷歌学术搜索
- r . s . Alsuhaibani c·d·纽曼,m . l .羽衣甘蓝等。“Heuristic-based源代码标识符和注释,词性标注的”IEEE学报》5日研讨会上挖掘非结构化数据(泥)德国不莱梅,页1 - 6,2015年9月。视图:谷歌学术搜索
- 许,“可配置的软件模块化的变化影响分析,”学报2016年IEEE国际会议软件维护和演化罗利,页468 - 472年,数控,美国,2016年10月。视图:谷歌学术搜索
- g . Scanniello a马库斯·d·帕斯卡尔,链接分析算法用于静态概念地点:实证评估Kluwer学术出版商,波士顿,MA,美国,2015年。
- 美国普,”戴维Binkley改变历史影响使用动态分析,”学报》第49 ACM技术计算机科学教育研讨会上美国马里兰州巴尔的摩,p。275年,,2018年2月。视图:谷歌学术搜索
- m . Sahu和d . p . Mohapatra”计算的动态切片功能——面向程序使用执行跟踪文件,”ACM SIGSOFT软件工程,42卷,不。2、硕士论文,2017页。视图:出版商的网站|谷歌学术搜索
- m . Borg k . Wnuk b Regnell, p . Runeson”支持变化影响分析使用推荐系统:一个工业案例研究在安全性至关重要的背景下,“IEEE软件工程,43卷,不。7,675 - 700年,2016页。视图:出版商的网站|谷歌学术搜索
- j .字体和c . Cetina“改善功能位置通过将自然语言的查询转换为需求,”20学报》国际系统和软件产品线的会议,第369 - 362页,北京,中国,2016年9月。视图:谷歌学术搜索
- t·萨维奇,m .雷维尔,d . Poshyvanyk“平3:功能位置和文本跟踪工具,”软件工程学报》第32国际会议,页255 - 258,开普敦,南非,2010年5月。视图:谷歌学术搜索
- t . w . Wang, y他et al .,“涟漪效应的混合方法分析软件进化的活动,“计算机研究与发展》杂志上,53卷,不。3、503 - 516年,2016页。视图:谷歌学术搜索
- 州,m·p·罗毕拉德“拓扑”软件依赖关系的分析,ACM事务上的软件工程方法,17卷,不。4,1-36,2008页。视图:出版商的网站|谷歌学术搜索
- m . Petrenko诉Rajlich, r . Vanciu”部分领域理解在软件演化和维护中,”学报》16日IEEE国际会议程序理解,页13-22,阿姆斯特丹,荷兰,2008年1月。视图:谷歌学术搜索
- b说,m .雷维尔,d . Poshyvanyk”集成信息检索、执行和链接分析算法来提高软件的功能位置,”经验软件工程,18卷,不。2、277 - 309年,2013页。视图:出版商的网站|谷歌学术搜索
- a . Panichella b .说,r . Oliveto et al .,“参数化和组装的想法SE任务使用遗传算法,解决方案”23日学报》国际会议软件分析,进化,再造(理智)Suita,页314 - 325年,大阪,日本,2016年3月。视图:谷歌学术搜索
- s . l . Abebe s Haiduc a . Marcus et al .,“分析源代码词汇的演变,”学报》13日欧洲会议软件维护和重建凯泽斯劳滕,页189 - 198年,德国,2009年。视图:谷歌学术搜索
- b . l . Vinz和l . h . Etzkorn”协同计划方法的理解,”学报14 IEEE国际会议程序理解(ICPC 06年),页69 - 73年,雅典,希腊,2006。视图:谷歌学术搜索
- s . Deerwester s t·杜·g·w·Furnas t . k .蓝和r . Harshman表示,“索引通过潜在语义分析,”美国信息科学学会杂志》上第41卷。。6,391 - 407年,1990页。视图:出版商的网站|谷歌学术搜索
- d·m·布莱a . y . Ng,乔丹,“潜在狄利克雷分配”机器学习研究杂志》上,3卷,第1022 - 993页,2003年。视图:谷歌学术搜索
- 黄c . y . Liou j . c和w·c·杨”建模使用Elman网络感知,”这个词Neurocomputing,卷71,不。16 - 3150 - 3157,2008页。视图:出版商的网站|谷歌学术搜索
- 和l . y . j .郭s t . Wang,“学习的一个线性组合的距离最大边际理论的基础上,“CAAI智能交易系统,10卷,不。6,843 - 850年,2015页。视图:谷歌学术搜索
- s . t . j . Wang Wang和z h·邓”小说的文本聚类算法基于特征加权距离和软子空间学习,”中国电脑杂志,35卷,不。8,1655 - 1665年,2012页。视图:出版商的网站|谷歌学术搜索
- m . Chochlov m .英语,和j·巴克利,”历史,功能位置,文本分析方法”信息与软件技术卷,88年,第126 - 110页,2017年。视图:出版商的网站|谷歌学术搜索
- d . Poshyvanyk y . g . Gueheneuc a . Marcus g . Antoniol诉Rajlich,“功能位置使用概率的方法执行场景和信息检索的基础上,“IEEE软件工程,33卷,不。6,420 - 432年,2007页。视图:出版商的网站|谷歌学术搜索
- j .小林s江,y,“故障定位技术的进步,”计算机科学与技术的前沿》杂志上,1卷,不。2、139 - 176年,2012页。视图:谷歌学术搜索
版权
版权©2018云他et al。这是一个开放分布式下文章知识共享归属许可,它允许无限制的使用、分配和复制在任何媒介,提供最初的工作是正确引用。