[发明专利]一种程序代码编程模式著作权归属检测模型及著作权归属检测方法有效
申请号: | 201210508663.5 | 申请日: | 2012-12-03 |
公开(公告)号: | CN103020494A | 公开(公告)日: | 2013-04-03 |
发明(设计)人: | 王甜甜;王克朝;苏小红;马培军 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F21/12 | 分类号: | G06F21/12 |
代理公司: | 哈尔滨市松花江专利商标事务所 23109 | 代理人: | 高会会 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 程序代码 编程 模式 著作权 归属 检测 模型 方法 | ||
技术领域
本发明涉及一种编程模式及程序代码著作权归属检测方法。
背景技术
程序代码编程模式及著作权归属检测方法在教育领域和软件开发领域,如程序代码抄袭检测,软件版权侵犯、著作权纠纷的判定,以及软件维护,都有着重要的应用。
现今在计算机教学中,尤其是在程序类课程设计中,大量存在着抄袭他人作业或者作品的行为。在完成上机编程任务或者在编程训练考核中,被考核者抄袭他人程序代码后,稍作修改甚至不做任何修改便拿来作为自主设计作品提交;或者在网络上搜索他人已有的算法代码,“复制-粘贴”到自己的程序中,这些学生程序设计中存在的抄袭现象是产生雷同代码的一个重要原因。
除了学生程序设计中存在的抄袭现象产生的雷同代码之外,软件企业中的未经授权的代码重用也受到密切关注。由于一些软件功能之间存在的共通性,使得某些软件企业也存在程序代码的非授权使用的现象,因此大型软件系统中时有发生的抄袭、雷同现象,导致了软件侵权案的不断发生,给正当软件公司造成了严重的影响和危害。
无论是针对学生程序还是企业开发的软件,采用人工的方法去查找雷同代码,采用很费时,特别是程序非常多、或程序规模很大时,很难度量抄袭行为性质以及程度。判定程序代码的著作权归属,即判定程序代码的真正作者,就更加困难了。因此,提供自动的程序代码代码的雷同检测及著作权归属判定具有重要的意义。
同一个作者,或同一个企业的软件开发人员,由于编程习惯或软件开发实践(如重用通用的框架、遵循特定的编程模式、以及拷贝-粘贴代码),在解决同一类问题时,通常在编程过程中遵循特定的编程模式(如关键字、程序结构、处理思路等),因此,在同一种编程语言解决类似问题时,会产生类似的程序代码。软件维护中,开发人员修改了一段代码,同样需要对与该代码有相同编程模式的程序代码片段进行相似的修改,而开发人员很可能忽略了这些代码片段。自动查找相似编程模式则可以有效缓解上述问题。
雷同代码由于存在抄袭现象,因此也具有相似的编程模式,挖掘两个代码集合中的相似的编程模式,则可以检测出这两个代码集合中的雷同代码。此外,如果能够自动挖掘已知作者来源的程序代码集合中的编程模式,则可以为著作权归属判定提供有效依据。如果给定代码与某个作者的编程模式一致,则可能是该作者的代码。
综上所述,如果能够自动提取程序代码中的编程模式,则可为程序代码的雷同检测、软件维护、以及程序代码的著作权归属判定奠定基础。
目前已有很多关于自然语言雷同文本的方法和工具,如Turnitin,但是这些方法和工具因忽视了程序代码的编程语法,而不适合于分析程序代码。
目前也有一些检测程序代码中的雷同代码的方法和工具。主要方法有属性计数法和结构度量方法。
属性计数法计算每一个程序的n个不同的软件度量指标(如控制流、结构、数据依赖、嵌套深度、控制结构等),以便于将程序映射到一个n维的笛卡尔空间,然后考虑彼此邻近的程序组可能为雷同程序。该方法存在的不足之处是:抛弃了太多的程序结构信息,导致错误率太高,难于分析大规模程序;也无法有效检测增加或删除了部分语句的相似代码。
结构度量方法,如SIM,JPlag和MOSS等系统,在检测雷同代码时考虑了程序的结构信息。但存在以下不足之处:通常检测每一对程序的相似度来发现剽窃行为的,而不能有效定位出大规模程序集合中雷同的程序代码片段;SIM,JPlag具有较高的计算复杂度无法分析大规模程序代码。
无论是属性计数法还是结构度量(structure metrics)方法,均无法自动提取程序中的编程模式,均不考虑每个作者(程序开发人员或软件公司)的历史数据(已知作者来源的程序代码),即使检测出雷同代码,也无法进一步判断雷同代码的著作权归属,即代码的真正作者。因此现在的程序代码雷同检测方法和工具存在不能有效提取大规模程序集合中的编程模式,以及不考虑每个作者的历史数据,无法判定程序代码的著作权归属的问题。
发明内容
本发明的目的是要解决现在的程序代码雷同检测方法和工具存在不能有效提取大规模程序集合中的编程模式,以及不考虑每个作者的历史数据,无法判定程序代码的著作权归属的问题,从而提出一种程序代码编程模式著作权归属检测模型及著作权归属检测方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210508663.5/2.html,转载请声明来源钻瓜专利网。