论文部分内容阅读
随着计算机产业的不断发展,计算机软件所带来的巨大经济效益和社会效率,使得软件的价值越来越被人们所重视。如何保护软件的知识产权,维护软件开发者的合法权益,是值得研究的问题。源代码同源性鉴别技术能够为软件的知识产权提供很好的凭证。所谓源代码同源性鉴别是指比较两个或多个软件系统的源代码,找出它们的相同或相似之处,为软件知识产权提供有力的证据。目前,源代码同源性鉴别技术主要分为两大类,一类是源代码文本层面的鉴别技术,另一类是源代码语法结构层面的鉴别技术。基于文本的鉴别技术,其原理是比较源文件的字符,从而得到源文件的相似度,该技术实现简单,针对低级的代码抄袭手段,检测效果良好,已有很多成熟的工具。基于语法结构的鉴别技术,其思想是将源代码的语法结构抽象为语法树,通过比较语法树得到源文件的相似度,是一种深层次的鉴别技术,能够检测出比较复杂的代码抄袭,但由于其实现复杂,目前可利用工具较少。同源性的综合度量是一个比较新的领域,如何有效合理地综合利用多种同源性鉴别技术的分析结果是值得研究的课题。综合评价的技术分为定量和定性两种,都有各自适用的场景。本文在充分的理论研究和大量的实验基础上,设计了一种源代码同源性鉴别系统。该系统实现了基于文本和基于抽象语法树这两个层次的同源性鉴别,并提出利用多元线性回归分析和层次分析两种综合度量算法,从定量和定性角度,对两种同源性鉴别技术的分析结果进行综合度量,使得鉴别结果更加完善。