本发明专利技术公开了软件工程领域内的一种基于WordNet的程序可读性分析方法,包括如下步骤:1)按照包名-类名-方法名的项目结构遍历出每个方法体,并且以包名_类名_方法名的形式标注;2)去除警示注释(通常出现在测试用例中,用于警告程序员会出现某种严重后果),TODO注释(是一种程序员认为应该做,而由于某些原因目前还没有做的工作);3)将注释分为短注释和长注释;4)对长注释进行预处理,并且用WordNet提取出注释的主题词;5)对注释映射的代码段用WordNet提取代码的主题词;6)对整个项目生成程序可读性分析树,并形成最终的分析数据,本发明专利技术有利于后期维护人员对陌生项目的理解,可用于软件的维护开发中。
【技术实现步骤摘要】
一种基于WordNet的程序可读性分析方法
本专利技术涉及一种程序分析方法,特别涉及一种程序可读性分析方法,属于软件工程领域。
技术介绍
程序可读性分析是软件开发和维护中用于评估软件易维护性和易修改性的一个重要指标,方便开发人员修改代码和注释必不可少的环节。现有的程序可读性分析一般利用开发语言所提供的开发文档和API对项目中不理解的代码段进行脱离实际情景的解释,或者是在开发前由开发团队拟定的代码编写规范性进行编码的代码书写规范方面的可读性分析。而在实际编程实践中,注释和开发文档才是程序员理解项目的主要突破口。真正难以理解的是不同人员对同一段代码的注释和分析。整个项目不同模块的转移和改变,小段代码的修改和变更,开发人员变动都会造成开发人员难以理解原有代码。这也就使得程序的可读性分析成为了一个项目是否有利于开发人员开发维护和理解的重要环节。所以本专利技术从注释能否描述代码的真正意图进行程序的可读性分析。随着软件的不断演化,代码的不断修改和迁移,原有的注释是否能帮助开发人员准确理解一个项目是一个项目能否进行顺利修改的关键因素。传统的主题模型方法很难对细小的方法体和类文件进行局部的准确性分析,而WordNet所提供的本体库和优秀的同义词匹配和主题词提取技术则为研究程序的可读性分析带来的巨大的好处。WordNet是一种传统的词典信息与现代计算机技术以及心理语言学研究成果有效结合的一个产物。它是由Princeton大学的Miller等心理学家,语言学家和计算机工程师联合于1985年开始设计的一种基于认知语言学的英语词典。它不同于一般的语言词典,而是由25个独立起始概念,其它名词通过上下位关系与这25个独立起始概念构成的25个独立的层次结构,具有强大的根据人类语义进行同义词匹配的能力。本专利技术就是充分利用WordNet根据同义词语义匹配能力找出程序中语义描述不正确以及推荐不应该加注释的地方,并对整个程序进行分析,生成程序可读性分析树。
技术实现思路
本专利技术的目的是提供一种基于WordNet的程序可读性分析方法,以解决程序可读性分析问题,有利于后期维护人员对陌生项目的理解。本专利技术的目的是这样实现的:一种基于WordNet的程序可读性分析方法,包括以下步骤:步骤1)按项目结构遍历出每个方法体,以包名_类名_方法名的形式标注,标注分为对注释的标注和对代码的标注;步骤2)去除警示注释和TODO注释;步骤3)将注释分为短注释和长注释;步骤4)对长注释进行预处理,并且用WordNet提取出注释的主题词;步骤5)对长注释映射的代码段用WordNet提取代码的主题词;步骤6)对整个项目生成程序可读性分析树,并形成最终的分析数据。作为本专利技术的进一步限定,步骤3)中的分类方法如下:短注释提取条件为:无“.”结尾的短语或者词数少于8个words的短句,并且代码长度控制在1到6行;除此之外的注释则为长注释;标记符合短注释条件的代码段及其注释,作为找出的不推荐加注释部分,对于不符合短注释条件的,放入步骤4和长注释一起分析。作为本专利技术的进一步限定,步骤4)的具体方法如下:a)分类:按照方法函数是否有返回值对长注释进行分类,有返回值的称为描述代码意图的注释(vn类),无返回值的称为提供描述信息的注释(v类);b)预处理:对vn类和v类注释进行预处理,分为三个步骤:注释语句处理(Tokenization),去除if条件句,过去时态的语句,vn类注释用WordNet分析时要添加方法体中return的注释段;去除停用词(Stop-wordRemoval),去除注释关键字,如常用的定冠词the、an等;分词(Stemming),将注释语句拆分成单词块,利用WordNet接口将单词转换形态;c)提词:用WordNet对两种类型的注释提取主题词,Vn类注释提取动词和名词,v类注释提取动词。作为本专利技术的进一步限定,步骤5)的具体方法如下:a)Vn类注释映射的代码段抽取方法函数名,参数名,变量名,常数名和返回值名字,利用WordNet和代码书写的驼峰写法进行分词,去除常用定冠词,最后利用wordNet提取出动词和名词;b)V类注释映射的代码段抽取方法的函数名,参数名,变量名,常数名和返回值名字,利用WordNet和代码书写的驼峰写法进行分词,去除常用定冠词,最后利用wordNet提取出动词。作为本专利技术的进一步限定,步骤6)的具体方法如下:按照项目目录,用WordNet对所有的注释-代码进行主题词匹配,匹配成功则为-1型,不成功则为1型或者2型,缺少匹配项的为0型;其中1型注释是针对于v类生成的必须修改的注释,2型注释是针对于vn类生成的必须修改的注释,0型注释归纳为需要注意的注释,并且生成程序可读性分析树,标注包,类下的注释准确率。与现有技术相比,本专利技术的有益效果在于:本方法是基于WordNet的程序可读性分析,可以对整个项目的局部注释-代码可读性以及全局注释-代码可读性进行分析,列举出无法有效描述程序功能的注释-代码段,并且可以以程序可读性分析树的形式,对包、类下的可读性进行数值描述分析,可以有效帮助开发人员了解代码编写中有哪些意图不准确的模块和注释不清的地方;而且该方法不受编程语言,开发架构和开发平台的限制,并且有利于后期维护人员对于陌生项目的理解。附图说明图1是本专利技术总体流程图。图2是分析项目转换类型流程图。图3是方法遍历和注释分类提取流程图。图4是长注释分析前预处理和分类流程图。图5是图4流程中注释语句处理过程的流程图。图6是图4流程中去除停用词过程的流程图。图7是图4流程中分词过程的流程图。图8是利用WordNet生成最终的程序可读性分析树流程。图9是代码预处理流程图。图10是处理的jEdit项目生成的部分程序可读性分析树。具体实施方式下面结合附图对专利技术的技术方案进行详细说明:本专利技术的方法是利用WordNet来支持主题词匹配技术的实现,采用详细的文本预处理和项目整体分析计算分析程序的可读性,如图1所示。方法流程利用基于WordNet的程序可读性分析主要分为三个步骤:注释内容提取主题词,代码内容提取主题词,WordNet匹配技术生成最终的项目分析树。步骤一)注释内容中提取主题词(1)注释中提取出主题词会有多方面的影响,所以要先去除没有意义的注释段,这些注释通常是编译工具自动生成的javadoc注释或者是作为提醒作用的注释,如图3前两个流程所示,这里将javadoc注释关键词(如@param等)封装到DocBean类中,逐行匹配注释中出现的javadoc注释关键词,遇到就删除注释;(2)在实际编写过程中,并不是所有的代码都要写注释,有时候明明可以用方法名表示的代码语义却要用冗余的没有用的注释来解释实在是画蛇添足,这里主要是针对短注释和长注释分析中结果为0的注释_代码进行分析;对此,需要将注释进行长注释和短注释的分类,短注释提取条件为:无”.”结尾的短语或者词数少于8个words的短句,并且代码长度控制在1到6行;具体为根据每个目录节点下的注释进行逐一匹配,标注出符合条件的短注释到ShortMap集合中,其映射的代码段中的方法名放入CodeShortMap集合中;将ShortMap和CodeShortMap集合中的内容分别做分词处理,按照映射关系依次比对,本文档来自技高网...
【技术保护点】
一种基于WordNet的程序可读性分析方法,其特征在于,包括以下步骤:步骤1) 按项目结构遍历出每个方法体,以包名_类名_方法名的形式标注,标注分为对注释的标注和对代码的标注;步骤2)去除警示注释和TODO注释;步骤3)将注释分为短注释和长注释;步骤4)对长注释进行预处理,并且用WordNet提取出注释的主题词;步骤5)对长注释映射的代码段用WordNet提取代码的主题词;步骤6)对整个项目生成程序可读性分析树,并形成最终的分析数据。
【技术特征摘要】
1.一种基于WordNet的程序可读性分析方法,其特征在于,包括以下步骤:步骤1)按项目结构遍历出每个方法体,以包名_类名_方法名的形式标注,标注分为对注释的标注和对代码的标注;步骤2)去除警示注释和TODO注释;步骤3)将注释分为短注释和长注释,分类方法如下:短注释提取条件为:无“.”结尾的短语或者词数少于8个words的短句,并且代码长度控制在1到6行;除此之外的注释则为长注释;标记符合短注释条件的代码段及其注释,作为找出的不推荐加注释部分,对于不符合短注释条件的,放入步骤4和长注释一起分析;步骤4)对长注释进行预处理,并且用WordNet提取出注释的主题词,具体方法如下:a)分类:按照方法函数是否有返回值对长注释进行分类,有返回值的称为描述代码意图的注释Vn类,无返回值的称为提供描述信息的注释V类;b)预处理:对Vn类和V类注释进行预处理,分为三个步骤:注释语句处理(Tokenization),去除if条件句,过去时态的语句,Vn类注释用WordNet分析时要添加方法体中return的注释段;去除停用词(Stop-wordRemoval),去除注释关键字,注释关键字为常用的定冠词th...
【专利技术属性】
技术研发人员:孙小兵,刘杨超,朱俊武,李云,
申请(专利权)人:扬州大学,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。