没有合适的资源?快使用搜索试试~ 我知道了~
沙特国王大学学报基于IR的疑似抄袭源代码对奥斯卡·卡纳利姆印度尼西亚马拉纳塔基督教大学信息技术学院阿提奇莱因福奥文章历史记录:2017年12月20日收到2018年1月16日修订2018年1月31日接受2018年2月2日在线发布保留字:抽象方法线性化源代码抄袭软件工程信息检索A B S T R A C T根据一些工作,低级别的方法是一个有效的和高效的解决方案,检测源代码剽窃。它不依赖于源代码标记,而是比较给定代码的可执行形式;该形式只包含语义保留标记,并且可以抵抗各种剽窃攻击。然而,据我们所知,关于静态线性化抽象方法的问题(即,将每个抽象方法调用替换为其各自的调用方法内容,而不考虑调用语义)尚未得到全面处理。在处理面向对象的源代码时,这种问题在一定程度上会产生不准确的剽窃检测结果。本文的目的是解决这样的问题本地每剽窃嫌疑对。它将产生所有可能的线性化对的替代品,并选择正确的一个通过IR的相似性。根据我们对不匹配令牌的反向数量、假阳性数量和过程数量的评估,此外,还观察到,在所提出的技术中使用的每个IR机制对于选择正确的线性化形式具有其自身的独特益处。©2018作者制作和主办:Elsevier B.V.代表沙特国王大学这是一CC BY-NC-ND许可下的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。1. 介绍基于底层结构的方法是一种基于可执行形式的源代码剽窃检测方法。它不是直接比较源代码令牌序列(Karnalim,2016 a),而是编译两个源代码,并根据得到的低级令牌序列量化相似度。根据几项工作(Karnalim,2016 a,2017 a,b; Rabbani和Karnalim,2017),这种方法在有效性和效率方面优于依赖于源代码令牌序列相似性在范围方面,一些LLA(Karnalim,2016 a,2017 a,b)能够处理面向对象的代码;他们考虑面向对象的方面,如类,方法和属性。然而,一些面向对象的问题仍然被简单地处理,*地址:Prof. Drg.苏里亚Sumantri街65号,万隆,西爪哇40164,印度尼西亚。电子邮件 地址:it.maranatha.edu由沙特国王大学负责的同行评审。制作和主办:Elsevier剽窃检测结果不准确。其中一个问题是关于抽象方法调用的线性化:在不考虑整个程序语义的情况下,每个抽象方法调用都应该被线性化,而其中一些抽象方法调用可能会由于多态性而被派生为多本 文 提 出 了 一 种 解 决 上 述 问 题 的 技 术 。 与 以 前 的 技 术(Karnalim,2016a,2017a,b)不同,我们提出的技术保持了线性抽象方法调用的语义我们提出的技术适用于每一个剽窃嫌疑对双重。首先,它将以组合方式列出所有可能的线性化方案。然后,它将选择正确的线性化对的基础上最高的信息检索的相似度。2. 相关作品源代 码剽窃 是指使 用现有 作品 而不适 当引用 原作者 的行为(Cosma和Joy,2008)。由于高提交频率(Kustanto和Liem,2009)和检测困难(Rabbani和Karnalim,2017),这是计算机科学(CS)专业的一个新问题因此,为了解决这个问题,已经提出了几种源代码剽窃检测方法(Lancaster和Culwin,2004)。一般来说,检测源代码抄袭的方法有三种:基于属性的,结构化的,https://doi.org/10.1016/j.jksuci.2018.01.0121319-1578/©2018作者。制作和主办:Elsevier B.V.代表沙特国王大学这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表沙特国王大学学报杂志首页:www.sciencedirect.com328O. Karnalim/沙特国王大学学报的方法和混合方法(Al-Khanjari等人,2010年)。首先,基于属性的方法基于源代码属性(例如,分支的数量和代码行)确定相似性。为了确定疑似剽窃对,该方法通常具有信息检索(IR)(Flores等人,2016;Ganguly等人,2017; Cosma和Joy,2012)或机器学习(Ohmann和Rahal,2015; Bandara和Wijayarathna,2011)技术。第二,基于结构的方法确定基于源代码结构的相似性;每个源代码被转换为中间表示,并相互比较,以确定涉嫌剽窃的对。第三,混合方法结合了前两种方法,以提高有效性(ElBachirMenai和Al-Hassoun,2010年; Engels等人,2007)或效率(Burrows和Tahaghoghi,2007; Mozgoghi等人,2007年)。在这些方法中,基于结构的方法是源代码剽窃检测领域中使用最广泛的方法。这种方法已被用于许多研究(Duric和Gasevic,2013;Karnalim,2017 a,c; Lim等人,2011; Fu等人,2017年; Zhao等人,2015; Brixtel等人,2010),而一些研究是关于主要源代码plagia-rism检测系统的开发(Prechelt等人,2002; Schleimer等人,2003;Wise,1996)。我们认为这种现象是自然的,因为基于结构的方法比基于属性的方法更有效(Duric和Gasevic,2013; Prechelt等人,2002),混合方法是不切实际的实现(它需要同时实现基于属性和基于结构的方法)。基于低级结构的方法(LLA)是一种基于结构的方法,它基于低级标记序列(即可执行文件的标记序列)的相似性尽管它的实际用途很少,考虑到只有少数研究讨论它,但一些作品(Karnalim,2016 a,2017 a,b;Rabbani和Karnalim,2017)证明了LLA比依赖于源代码令牌序列相似性的流行方法更有效和高效。确实,使用LLA将输入限制为仅可编译的源代码。然而,我们认为这样的限制不是一个大问题;大多数本科生被鼓励提交可编译的源代码。此外,如果需要处理不可编译的,可以使用基于源代码标记序列的方法作为除LLA之外的替代方法(Rabbani和Karnalim,2017)。当基于其目标编程语言进行分类时,现有的LLA可以分为两类:.NET目标和Java目标的LLA。NET目标的LLA专注于.NET编程语言,如 C# , 依 靠 通 用 中 间 语 言 ( CIL ) 来 确 定 相 似 性 ( Rabbani 和Karnalim,2017)。到目前为止,有三个关于. NET目标LLA的现有作 品 ( Juricic, 2011;Juri cicetal. , 2011;Rabbani 和 Karnalim , 2017 ) , 其 中 它 们 之 间 最 显 着 的 区 别 是 关 于 应 用 的 相 似 性 算 法 。Levenstein距离、Rabin-Karp Greedy-String-Tiling g和自适应局部比对在Juricic′(2011),Juricic′etal. (2011),以及Rabbani和Karnalim(2017)。另一方面,面向Java的LLA专注于Java编程语言,依靠字节码来确定相似性(Karnalim,2016a)。关于面向Java的LLA,现有的工作有四个:Ji et al.(2008)中提出的工作。它是第一个面向Java编程语言的LLA。Karnalim(2016a)中提出的工作。它是从吉延伸出来的等人(2008)通过结合几个附加特征(诸如指令泛化、指令解释和递归处理)来实现。Karnalim(2017年a)提出的工作。它是Karnalim(2016a)的继承者,具有三个额外的特性:基于流的令牌加权、参数删除启发式算法和调用方法删除。Karnalim(2017年a)提出的工作。它是Karnalim(2016a)的继承者,具有线性化抽象方法调用的朴素机制由于LLA利用自适应字符串匹配算法来确定相似性,因此每个LLA在比较之前将给定的可执行程序线性化为令牌序列是很自然的。其中一些(Juricic' ,2011年;Juri cic'等人,2011;Rabbani和Karnalim ,2017)通过将整个可执行文件的令牌视为一个长序列而天真地将其线性化,而其他人(Karnalim,2016 a,2017 a,b ; Ji等人,2008年,他将其局部线性化。我们认为,后者的线性化技术将产生更准确的结果,因为它考虑了更多的上下文特征。在将给定的可执行文件线性化为每个方法的本地令牌序列当一个抽象方法调用被线性化时,它会引起一个问题对给定的可执行文件应用伪执行可以解决这个问题。然而,我们认为应用这种执行是相当不切实际的;为每个编程任务提供程序输入(这是伪执行所需的)是不方便的。此外,用于进行伪执行的处理时间对于复杂源代码可能很高;其处理时间与程序在真实环境中如何工作成比例。已经做了几次尝试来线性化LLA中的抽象方法调用。最简单的技术是忽略任何抽象方法调用(Karnalim,2016a,2017b)。另一种技术是连接所有线性化替代方案,作为抽象方法调用的替代(Karnalim,2017 a)。确实,这两种技术在某种程度上都解决了抽象方法调用的线性化问题。然而,我们认为,他们的方法可能会产生误导性的plagia-ism检测结果,他们间接地改变了给定的令牌序列的语义。信息检索是一种基于给定信息需求从集合中获取相关信息的技术(Croft et al.,2010年)。它经常用于减少处理时间,同时保持结果的准确性。从软件工程的角度来看,它已被用于几个任务。首先,它减少了用于剽窃检测的待比较源代码的数量(Burrows和Tahaghoghi,2007; Mozgoghi等人,2007年)。第二、它检索相关的软件工件(例如源代码Stolee等人,2016; Vinayakarao等人,2017; Karnalim,2018; Lu等 人, 2015 和 可执 行文 件 Karnalim 和 Mandala ,2014;Karnalim,2016 b)。第三,它通过提供相关信息(Thummalapenta和Xie,2007;Lemos等人,2007年; Ye和Fischer,2002年)或关于如何 使 用 API 或 库 的 源 代 码 示 例 ( Holmes 和 Murphy , 2005年;Sindhgatta,2006年; Niu等人,2017年)。第四,它使用户能够跟踪开发的软件(Borg et al., 2014年)。3. 方法针对相关工作中定义的缺口,提出了一种有效的线性化技术,本文提出首先,它将以组合方式生成关于每个抽象方法调用的派生方法的内容的所有可能的线性化对替代方案(每个调用的一个方法内容生成一个替代方案)。后来,最好的替代方案将使用信息检索(IR)机制进行详细定义,●●●●O. Karnalim/沙特国王大学学报329×⁄×主义这些阶段中的每一个分别被称为生成和选择阶段。生成阶段生成所有可能的线性化对替代品。这些替代方案是通过传播给定的令牌序列以组合方式导出的,这些令牌序列关于用它们各自的派生方法的内容替换抽象方法调用。出于效率原因,此阶段将同时接受来自原始代码和抄袭代码的所有方法范围内的低级标记序列对。一般来说,这一阶段由四个子阶段组成(见图1)。 1)、1. 对于每个代码(无论是原始代码还是抄袭代码),抽象方法及其各自的派生方法将使用Karnalim(2017 a)提出的方法进行登记。这种方法将类/接口关系重新建模为图,使用拓扑排序(Sedgewick和Wayne,2011)以升序对它们进行排序,并从排序的类/接口实体(从第一个实体到最后一个实体)中为每个抽象方法登记派生方法。这个子阶段的进一步例子可以在Karnalim(2017 a)中看到。2. 声明方法中的每个抽象方法调用将被其派生方法的内容替换。如果一个抽象方法有多个派生方法,给定的序列将被传播到多个序列替代方案,其中每个替代方案将被独占地分配一个派生方法的内容。例如,假设我们有一个带有两个抽象方法调用的序列;第一个有两个派生方法,而第二个有三个派生方法。给定的序列将被传播到23个序列替代者,因为每次调用都将传播给定的序列或Fig. 1. 拟议方法的生成阶段。序列替代关于其衍生方法的数量。3. 将生成每个线性化序列的类似索引的表示。它以键值格式存储所有标记及其出现频率。从该子阶段产生的表示将被传递到选择阶段,以减少比较时间。4. 每个序列备选项将与来自另一个令牌序列的每个备选项配对。它将产生N M个线性化对替代; N和M分别指第一和第二序列的替代数。例如,如果一个序列有6个序列备选项,另一个序列有4个备选项,则它将生成6个4对备选项,这些备选项将被传递到选择阶段。选择阶段确定哪一个线性化对备选方案是正确的。与生成阶段不同,它是按方法对局部进行的。一般来说,这一阶段包括两个子阶段(见图1). (2):1. 将使用IR机制测量每个线性化对备选的相似度;来自该对的一个序列将基于它们的类似索引的表示充当对另一个序列的查询。在这项工作中提出了两种IR机制:平滑布尔和向量空间模型检索。平滑布尔检索是指布尔检索(Croft等人,2010),返回近似的相似度,而不是布尔值。这种相似性是由(1)引起的; A和B是来自两个序列的不同标记。另一方面,向量空间模型检索是指基于出现比例确定相似性的广泛使用的检索模型(Croft等人, 2010年)。2. 将基于最高的基于IR的相似度选择正确的线性化对。如果这种程度是由两个或两个以上的选择,第一个测量对选择将被选为结果。SIM卡A;B2ω jAnBj=jAjjBj1值得注意的是,我们提出的技术也可以应用于解决类似的问题,在源代码级别,通过一些修改,它可以线性化抽象方法调用源代码令牌序列。此外,它还可以用来指控剽窃;线性化的标记序列可以用来解决哪些源代码部分被怀疑是剽窃片段。4. 评价4.1. 评价标准本评估中使用的数据集由261个方法范围的源代码对组成。这些对中的每一个都被专门分配给基于其实施的剽窃攻击的受控数据集和经验控制数据集利用所提出的方法的特点。它由24个主要的方法对,剽窃攻击理论上有利于提出的方法的有效性和效率。为了提供更清晰的分析,每对的原始代码都被定义得尽可能简单。在前半部分,原始代码是一个main方法,它只打印一次Hello World。另一方面,原始代码是从前半部分案例中抄袭来的。本数据集中考虑了六种剽窃攻击使用标准方法调用(SMI)替换语句。抄袭代码是通过将Hello World打印语句替换为方法调用生成的;●330O. Karnalim/沙特国王大学学报图二. 拟议方法的甄选阶段。方法是print语句。此攻击将生成1个病例(C01)。使用抽象方法调用(AMI)替换语句。抄袭代码是通过用抽象方法调用替换Hello Worldprint语句生成的;给定的抽象方法已经派生为有一个print语句。此攻击将生成1对(C02)。在深度结构(AMID)中定义抽象方法。剽窃代码的生成方式与AMI类似,只是给定的抽象方法被传递给了N个类。此攻击将生成4对(C 03-C06)。每对将被分配一个唯一的N,分别从2到5开始。AMI,其中给定的抽象方法在广度结构(AMIB)中定义。剽窃代码的生成方式与AMI类似,只是给定的抽象方法被派生为N个具体方法,其中只有一个方法具有正确的print语句。此攻击将生成4对(C07-C10)。每对将被分配一个唯一的N,从2到5分别。AMI,其中给定的抽象方法在深度和广度结构(AMIDB)中定义。抄袭代码的生成方式与AMID类似,只是每次传递都会生成2个派生类。此攻击将生成2对(C11和C12)。每对将被分配一个唯一的N,分别从1到2开始。N将以类似于AMID的方式工作。逐字复制(VC)。抄袭代码是完全按照原始代码复制的。原始代码本身将分别取自之前攻击(C 01-C12)生成的剽窃代码。此攻击将生成12对(C13-C24)。与受控数据集不同,经验数据集代表真实的剽窃案例;每个剽窃方法都是从代码中删除设计模式而不改变其流程的一部分(高级剽窃攻击的实现它由237 个方法对组成,这些方法对来自Karnalim(2017 a)提出的数据集。在我们的评估中将考虑四种方法。所有这些都是通过在其提取阶段结束时添加抽象方法线性化机制,从Karnalim(2017 b)提出的未加权LLA中导出的。前两种方法使用我们提出的技术,每种方法都专门分配一个建议的IR机制。这些方法被标记为平滑布尔检索组合方法(SRC),向量空间模型-检索组合方法(VRC)。另一方面,最后两种方法是评估我们所提出的方法的影响的基线。这些方法被标记为朴素方法(NA)和组合方法(CA)。首先,NA使用Karnalim(2017 a)提出的技术。它连接所有派生方法的内容,作为抽象方法调用的替代。据我们所知,这种方法是唯一的工作,解决完全类似的问题,我们的。其次,CA只使用我们提出的技术的生成阶段为了确定正确的线性化对,它使用Karnalim(2017 b)的深入比较阶段(通常在选择正确的线性化对后使用);具有最高相似度的对将被视为正确的这种方法是用来衡量选择阶段的好处,从我们提出的技术。所有的方法都将在三个指标方面进行评估:不匹配的令牌的反向数量,假阳性的数量,以及进程的数量首先,错误匹配标记的反向数它是基于(2)计算的,其中MT(A,B)是指不匹配的令牌的数量。该指标通常用于有关LLA的相关工作(Karnalim,2016 a,2017 a,b),用于测量有效性(尽管使用了不同的术语);较高的RMT表示较高的相似度。RMTA;BMTA;Bω-12其次,假阳性的数量测量了有多少不正确的线性化对选择是由特定的方法产生的。NA将所有备选方案合并为一个既不是真阳性也不是假阳性的大序列。因此,预计NA将从该指标的评价中排除最后,进程的数量衡量了特定方法完成任务所需的时间它将根据一个简化的时间复杂度方程(TCE)计算,用于在一个方法范围的低级别对中线性化抽象方法,后一个阶段是为了公平性目的而涉及的;因为已知后一个阶段由CA专门使用以确定正确的线性化对。确实,执行时间可以通过经验计算。然而,我们认为这种方法不适合我们的数据集;每种方法只生成少量的过程,并且经验时间测量对于这种方法可能是●●●●●O. Karnalim/沙特国王大学学报331XXXXX涉及入路的TCE定义如下:NA的TCE(参见(3))是基于TCE定义的,用于使用(4)中的RK-GST算法比较两个令牌序列;lim(A)和lim(B)。(B)是由NA生成的线性化标记序列。CA的TCE(参见(5))以与NA中类似的方式定义,除了它尝试所有线性化对备选而不是将令牌关联到两个长序列; N指线性化对备选的数量。SRC的TCE(见(6))是通过对三个核心步骤(索引、检索和比较)的TCE求和来定义的。首先,索引步骤将每个线性化序列替代转换为索引形式;其TCE可以在(7)中看到,其中na和nb分别指两个序列的线性化序列替代的数量。其次,检索步骤使用平滑布尔检索选择正确的线性化对备选;其TCE(其基于执行这种检索的时间复杂度)可以在(8)中看到,其中n指线性化对备选的数量。第三,比较步骤旨在比较来自正确线性化对备选方案的两个令牌序列(即Ac和Bc)。VRC的TCE(见(9))以与SRC类似的方式定义,不同之处在于其检索步骤基于向量空间模型。VRC的检索步骤的TCETNA;B T S linA;linB 3TSA; B max jA j; j B34nTCA;B TS Ai;Bi 51/1TSA;B TIA;B TSRA:B TS Ac;Bc 6纳纳TIA;B jAi jjBij7图三. 与受控数据集不匹配的令牌的反向数量。在经验数据集上。然而,图中并未明确显示。 4,因为给出的图没有直接显示结果RMT。在所涉及的方法中,NA是RMT方面最有效的方法。如图3所示,它在C 07-C12上产生的RMT低于其他方法。此外,根据图4,它甚至在经验数据集上获得最少的第一排名。这种无效性是由NA的线性化技术造成的;它将不相关的方法内容连接到给定的序列,减少了所得到的RMT。相比之下,CA是RMT最有效的方法。它总是分配有最高的RMT,用于控制。trolled数据集(见图) 3),并获得经验数据集上最多的第一等级(见图3)。 4). 这样的发现是自然的,因为CA尝试所有可能的组合,以产生最准确的结果。参见图 4,有趣的是,在来自经验数据集的一些情况下,CA被分配为第二等级;由于改变了原始令牌序列的语义,它巧合地优于NA。然而,这一发现不能被称为CA在某种程度上,基于IR的相似性可以用作基于序列的最小匹配相似性的替代(Prechelt等人,2002)(即Karnalim使用的深入比较算法,2017 c)来选择正确的线性化对; SRC和1/1n1/1VRC(利用基于IR的相似性)生成与CA(利用基于序列的最小匹配相似性)TSRA;BmaxjAij;jBi81/1TVA;BT IA;B TVRA:B TS Ac;Bc 9nTVRA; B jAi jjBi jmin jAi j; jBij101/1由于大量的案例,经验数据集会产生大量的结果,因此仅基于秩分布而不是实际值来分析经验结果。对于每种情况,所涉及的方法将根据目标评估指标以特定顺序进行排名(不匹配令牌的反向数量为降序,其他两个指标为升序)。如果几种方法生成相似的度量,则这些方法将被分配相同的等级。4.2. 关于不匹配的令牌根据对照数据集上的RMT结果(见图1), 3),很明显,没有任何方法产生零RMT。进一步的观察表明,这些情况下的原始代码和抄袭代码并不完全相似;抄袭代码要么使用额外的指令,要么从原始代码中删除一些指令。值得注意的是,这种现象也适用于在大多数情况下,从控制和经验数据集(见图1和2)。第3和第4段)。当相互比较时,基于IR的方法在大多数情况下显示出相似的特征(见图1和图2)。第3和第4段)。它们只在两个条件下不同:当两个标记序列共享相似的标记比例时,以及当来自一个序列的标记是另一个序列的子集时。前一个条件将有利于VRC(使用向量空间模型检索),而后者将有利于SRC(使用平滑布尔检索)。见图4。基于与经验数据集不匹配的令牌的反向数量的秩分布。●●●●332O. Karnalim/沙特国王大学学报× ð ðj j j jÞÞ图五. 对照数据集的假阳性数量。4.3. 关于假阳性由于所涉及的方法没有考虑抽象方法调用的语义,因此当将两个相同的序列与多于一个线性化对备选项进行比较时,预期它们会产生假阳性;所有线性化对备选项将被分配以最高可能的相似度,而不考虑所使用的相似性机制。图5显示了C19- C24上的这种问题。在所涉及的方法中,CA产生的假阳性数量最多,它生成所有的替代品,而不提供一个适当的启发式选择正确的。图5明确显示了C 07-C12和C19-C24上的这种问题。此外,这种问题也在图6上示出,其中CA被分配有最少数量的第一秩。CA仅能够在具有一个线性化对备选方案的情况下产生无假阳性;这种现象导致在经验数据集上分配给CA的许多第一等级(参见图6)。重要的是要注意CA的误报数量可能会变得非常大。例如,在一个关于抽象工厂的主要方法来自经验数据集的案例中见图6。基于对经验数据集的假阳性数的反转的秩分布。与CA不同,基于IR的方法(即SRC和VRC)产生的假阳性数量较低;可以清楚地看到,图5和6.他们的IR技术能够将正确的配对与其他替代品区分开来,只要该配对产生最高的基于IR的相似度。然而,重要的是要注意,基于IR的方法并不总是能够选择正确的线性化对替代方案;它们的基于IR的相似性不考虑令牌顺序,而这种顺序可能是唯一可以区分正确线性化对的东西。对经验数据集结果的人工观察表明,SRC和VRC分别有14和15例当与SRC相比时,VRC在更多经验情况下被指定为第一等级(见图6);在某些情况下,正确的线性化对仅在令牌比例(即VRC的独有特征)时才可区分4.4. 关于进程数量的评价尽管其简单的TCE,NA产生大量的过程中的情况下,涉及许多派生的方法;它产生长的比较的令牌序列作为天真的线性化的结果,导致更多的过程中的比较阶段。从图7中可以清楚地看到C 07-C12的缺点; NA产生最高数量的进程。然而,对受控数据集和经验数据集的进一步观察表明,这种回退的影响是微不足道的; NA的结果过程数量在大多数情况下仍然与基于IR的方法(即SRC和VRC)相当。与NA类似,CA也在涉及许多派生方法的情况下生成大量过程然而,这样的问题的原因是存在巨大的生成对替换而不是长的比较待标记序列。CAM N个比较,其中每个比较需要最大A;B3个过程(M和N是两个序列的替代品数量,而A和B是每个对替代品的比较令牌序列)。这个缺点可以明显地看出见图7。 控制数据集的进程数。O. Karnalim/沙特国王大学学报333图8.第八条。基于对经验数据集处理次数的反演的秩分布在图7的C19-C24上,其中最高数量的进程由CA生成。最后,通过一个实例说明了基于经验数据的抽象工厂的主要方法,CA需要193万亿个进程,而其他方法最多需要16.3亿个尽管它们的缺点在图7中示出,但是当处理仅具有一个线性化对替代方案的情况时,NA和CA比基于IR的方法更快;两种方法都不涉及替代选择阶段,从而导致更少的过程。从图8给出的经验数据集的结果中可以清楚地看到这种好处; NA和CA在大多数情况下都被分配了第一等级,因为这些情况下每个都只有一对备选方案。与SRC相比,VRC采用的过程数量最多;它在受控数据集上生成的过程略多(见图7),并且在经验数据集上分配的等级较低(见图7)。8)。这是很自然的,因为VRC当从实际执行时间对整个经验数据集感知时,CA花费最长的处理时间(47 h),其次是NA(2 h),VRC(5 min)和SRC(5 min)。因此,可以说,CA是最不切实际的方法,而VRC和SRC是最实用的方法。5. 结论和今后的工作在本文中,提出了一种基于IR的技术,用于线性化涉嫌剽窃的源代码对中的抽象方法调用。根据我们的评估,可以得出四个结论。首先,所提出的技术导致更准确的plagiarism结果。它产生的不匹配令牌的反向数量(即准确度测量)高于最先进的技术(Karnalim,2017 a)。此外,它确实保持了令牌序列的语义,并且在大多数情况下与组合技术(尝试所有可能的线性化对替代方案)一样有效。其次,所提出的技术是有效的,以消除假阳性,只有少数假阳性共享相似或更高的IR为基础的相似度比正确的。第三,所提出的技术是更有效的处理时间的情况下,众多的派生方法。最后,每一种信息检索机制都有其自身的优点,有利于抽象方法的线性化。对于未来的工作,我们计划加强我们的研究结果,通过评估提出的方法对真正的剽窃案件采取面向对象的编程课程。此外,我们还计划引入基于属性的方法,以提高所提出的方法的准确性6. 对有效性的一般来说,两个有效性的威胁应该考虑到这项工作的结果。首先,这一结果不能普遍适用于所有面向对象环境中抽象方法的攻击。我们试图通过在受控数据集中招募可能的攻击来减轻这种威胁。此外,我们还使用先进的面向对象技术的源代码,以利用经验数据集的更多可能的攻击。然而,仍然有可能有些攻击没有被我们的数据集所涵盖。其次,由于我们提出的技术尚未在真实环境中使用,因此其特性在真实环境中可能不同。我们试图通过利用与真实环境相关的评估指标来减轻这种威胁。然而,来自真实环境的外部因素仍然可能影响所提出的技术的特性。确认这项工作得到了印度尼西亚Maranatha基督教大学的支持。引用Al-Khanjari , Z.A. , Fiaidhi , J.A. , Al-Hinai , R.A. , Kutti , N.S. , 2010.PlagDetect : 一 个 Java 编 程 剽 窃 检 测 工 具 。 ACM Inroads 1 ( 4 ) , 66.https://doi.org/10.1145/1869746.1869766.网址http://dl.acm.org/citation.cfm?doid=1869746。1869766班达拉大学,Wijayarathna,G.,2011.基于机器学习的源代码剽窃检测工具。Int. J. Mach.学习. Comput. 1(4),337-343.Borg,M.,Runeson,P.,Ardö,A.,2014.从十年中恢复:信息检索方法到软件可追溯性 的 系 统 映 射 。 经 验 软 件 工 程 19 ( 6 ) ,1565-1616.https://doi.org/10.1007/s10664-013-9255-y网站。网址http://link.springer.com/10.1007/s10664-013-9255-y。布里克斯特尔河Fontaine,M.,Lesner,B.,巴赞角,罗布斯河2010.语言无关克隆检测在剽窃检测中的应用. 2010年第10届IEEE源代码分析和操纵工作会议。IEEE,pp.77-86. https://doi.org/10.1109/SCAM.2010.19 网 站 。 网 址 http://ieeexplore.ieee 。org/document/5601829/.Burrows,S.,Tahaghoghi,S.M.M.,Zobel,J.,2007.针对大型代码库的高效剽窃检测。软件:实际有效期37(2),151-175 。https://doi.org/10.1002/spe.750.网址http://doi.wiley.com/10.1002/spe.750。Cosma,G.,乔伊,M.,2008年对源代码剽窃的定义IEEE Trans. Edu.51(2),195-200。https://doi.org/10.1109/TE.2007.906776网站。网址ieeexplore.ieee.org/document/4455461/。Cosma,G.,乔伊,M.,2012.一种利用潜在语义分析的源代码剽窃检测和调查方法。IEEE Trans.Comput. 61(3)、379394. https://doi.org/10.1109/TC.2011.223 网 站 。 网 址 http://ieeexplore.ieee 。org/document/6086533/.Croft,W.B.,Metzler,D.,Strohman,T.,2010年。 搜索引擎:信息检索实践。艾迪森-韦斯利Duric,Z.,Gasevic,D.,2013.一个用于剽窃检测的源代码相似度系统。Comput. J. 56(1),70-86。https://doi.org/10.1093/comjnl/bxs018网站。网址academic.oup.com/comjnl/article-lookup/doi/10.1093/comjnl/bxs018..El Bachir Menai,M.,Al-Hassoun,N.S.,2010. Java编程作业中的相似性检测。2010年 第 五 届 计 算 机 科 学 教 育 国 际 会 议 。 IEEE , pp.356-361.https://doi.org/10.1109/ICCSE.2010.5593613。网址http://ieeexplore.ieee.org/document/5593613/。Engels,S.,Lakshmanan,V.,Craig,M.,Engels,S.,Lakshmanan,V.,Craig,M.,2007.使用基于特征的神经网络进行剽窃检测。ACM SIGCSE Bull. 39(1),34.https://doi.org/10.1145/1227504.1227324网站。网址http://portal.acm.org/citation.cfm?doid=1227504.1227324。Flores,E.,莫雷诺湖Rosso,P.,2016年。使用集成模型检测源代码重用第四届西班牙信息检索会议论文集- CERI '16。ACM Press,New York,New York,USA,pp. 1-7. https://doi.org/10的网站。1145/2934732.2934738。网址http://dl.acm.org/citation.cfm?doid=2934732。2934738Fu,D.,徐,Y.,余,H.,杨,B.,2017. WASTK:一种用于源代码剽窃检测的加权抽象 语 法 树 核 方 法 。 Sci. 程 序 .2017 年 , 1-8 。 网 址 : http ://doi.org/10.1155/2017/7809047网址https://www.hindawi.com/journals/sp/2017/7809047/.Ganguly,D.,琼斯,G.J.F.,Ramírez-de-la Cruz,A.,Ramírez-de-la Rosa,G. ,Villatoro-Tello , E. , 2017. 检 索 和 分 类 源 代 码 剽 窃 的 实 例 。 Inf. Retrieval J. ,1https://doi.org/10.1007/s10791-017-9313-y网址link.springer.com/10.1007/s10791-017-9313-y。霍 姆 斯 河 , 巴 西 - 地 墨 菲 , G. , 2005. 使 用 结 构 上 下 文 推 荐 源 代 码 示 例 。 In :Proceedings. 2005年第27届软件工程国际会议ICSE 2005年。IEEE,pp.117比125 https://doi.org/10.1109/ICSE。2005.1553554。URLhttp://ieeexplore.ieee.org/document/1553554/网站。Ji,J.-H、喔,G.,Cho,H.-G.,2008年基于字节码分析的java程序剽窃检测技术2008年第 三 届 融 合 与 混 合 信 息 技 术 国 际 会 议 。 IEEE , pp.1092-1098.https://doi.org/10.1109/ICCIT.2008.267网站。网址http://ieeexplore.ieee 。org/document/4682179/.334O. Karnalim/沙特国王大学学报Juricic' ,V. 2011年。使用低级语言检测源代码相似性。在:第33届信息技术接口国际会议,杜布罗夫尼克. http://ieeexplore.ieee.org/document/5974090/网站。Juricic',V., Juri c',T.,Tkalec,M.,2011年。基于中间语言的剽窃检测方法性能评价。未来的Inf.科学, 355Karnalim,O.,2016年a。使用字节码方法检测编程入门课程作业中的源代码剽窃。第 十 届 信 息 通 信 技 术 与 系 统 国 际 会 议 ( ICTS ) 。 IEEE , pp. 63-68.https://doi.org/10.1109/ICTS.2016.7910274网站。http://ieeexplore.ieee.org/document/7910274/网站。卡尔纳利姆岛2016年b。基于语义相关的扩展向量空间模型在java档案搜索引擎中的应用 。 《 技 术 信 息 和 系 统 信 息 杂 志 》 1 ( 2 ) 。 网 址http://jutisi.maranatha.edu/index.php/jutisi/article/view/372。Karnalim,O.,2017年a。面向对象环境下源代码抄袭检测的抽象线性化方法。第八届软件工程与服
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功