《一种面向对象程序的注释质量评价和注释建议方法.pdf》由会员分享,可在线阅读,更多相关《一种面向对象程序的注释质量评价和注释建议方法.pdf(11页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104123273A43申请公布日20141029CN104123273A21申请号201410355299222申请日20140724G06F17/2720060171申请人扬州大学地址225009江苏省扬州市开发区大学南路88号72发明人孙小兵耿强李云朱俊武74专利代理机构南京苏科专利代理有限责任公司32102代理人董旭东54发明名称一种面向对象程序的注释质量评价和注释建议方法57摘要本发明公开了软件工程领域内的一种面向对象程序的注释质量评价和注释建议方法,包括以下步骤1)遍历目标代码文件,提取代码文件中主类的注释和其所注释的类名、方法的注释和其所注释的方法名,步骤21)。
2、根据关于主类注释的分析规则对主类文件中的注释部分与类名进行质量分析,并对不满足分析规则的注释给出相应的建议;步骤22)根据关于方法注释的分析规则对方法文件中的注释部分与方法名进行质量分析,并对不满足分析规则的注释给出相应的建议;步骤3)根据上述的建议的数量来给出整体的质量评价,本发明根据所计算的结果给出关于头注释和方法注释的建议,提高代码注释的质量,有利于对软件代码质量的完善,可用于软件的维护开发中。51INTCL权利要求书2页说明书4页附图4页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书4页附图4页10申请公布号CN104123273ACN104123273A1/2页。
3、21一种面向对象程序的注释质量评价和注释建议方法,其特征在于,包括以下步骤步骤1)遍历目标代码文件,提取代码文件中主类的注释和其所注释的类名、方法的注释和其所注释的方法名,将主类的注释和其所注释的类名存入主类文件内,将方法的注释和其所注释的方法名存入方法文件内;步骤21)根据关于主类注释的分析规则对主类文件中的注释部分与类名进行质量分析,并对不满足分析规则的注释给出相应的建议;步骤22)根据关于方法注释的分析规则对方法文件中的注释部分与方法名进行质量分析,并对不满足分析规则的注释给出相应的建议;步骤3)根据上述的建议的数量来给出整体的质量评价。2根据权利要求1所述的一种面向对象程序的注释质量评。
4、价和注释建议方法,所述步骤21)的质量分析方法如下A遍历主类文件中的注释部分,检索该注释部分是否存在“作者”,如果不存在,则给出添加作者的建议;B查看该注释部分是否存在对主类的描述,如果不存在,则给出添加描述的建议,如果存在对主类的描述,则分析其相关性;C分析相关性,利用公式LN/M100计算出注释与主类的相关性,其中M表示对类名进行骆驼式命名法后分割出的单词总数,N表示注释中与类名相关的单词的个数,并将L与预先设定的门槛值比较,如果大于门槛值,说明相关性较高,如果低于门槛值,说明相关性较低,并且给出添加更多描述的建议。3根据权利要求1所述的一种面向对象程序的注释质量评价和注释建议方法,所述步。
5、骤22)的质量分析方法如下A)遍历方法文件中的注释部分和方法名,统计有注释的方法名和没有注释的方法名,并利用公式XY/Z100计算有注释的方法名,Y表示有注释的方法的个数,Z表示方法文件中方法的总数,并将X与预先设定的门槛值比较,如果低于门槛值,给出添加更多注释的建议;B)对方法文件中有注释的方法名进行相关性分析,根据骆驼式命名法来分割出方法名中的单词,单词数记Q,再依次对分割出的单词来遍历文件中的注释,注释中含有的单词数记P,利用公式OP/Q100,将O与预先设定的门槛值进行比较,如果低于所设门槛值,则给出添加更多注释的建议,如果高于所设门槛值,说明该段注释描述与该代码文件中的主类相关性较高。
6、;C)对方法文件中没有注释的方法名进行分析,利用WORDNET工具分析方法名的词性组成;如果该方法名的词性的组成不是动词加名词或者不是名称加动词的话,说明该方法需要添加注释,给出添加注释的建议;如果是动词加名词或者是名称加动词则分析其代码行数,如果其代码行数大于所设门槛值,则需要添加一些注释来有利于代码的理解,给出添加注释的建议;如果代码行数小于门槛值,则分析该方法引用其他方法的次数,如果次数大于门槛值,则需要添加一些注释来有利于代码的理解,给出添加注释的建议,如果词数小于门槛值,则可以不加注释。权利要求书CN104123273A2/2页34根据权利要求1所述的一种面向对象程序的注释质量评价和。
7、注释建议方法,所述步骤3)的质量评价方法如下通过统计上述质量分析所给出的建议,然后计算出建议率,利用公式,其中,表示建议率,表示对主类注释建议的总数,括号内的3表示对主类的注释分析一共有三种,表示对有注释的方法建议总数,表示有注释的方法总数,表示没有注释的方法的建议总数,表示没有注释的方法总数,表示对主类注释建议占的比重,表示对有注释的方法建议占的比重,表示对没有注释的方法建议占得比重,将建议率与预先设定的门槛值进行比较,如果大于门槛值,说明该代码文件注释的质量不好,需要好好改进,建议开发人员根据建议修改注释,建议率小于05,说明该代码文件的质量较高;如果所有方法具有注释,即,则。权利要求书C。
8、N104123273A1/4页4一种面向对象程序的注释质量评价和注释建议方法技术领域0001本发明涉及一种软件评价方法,特别涉及一种软件注释质量评价及建议方法,属于软件工程领域。背景技术0002在一个代码文件中,不仅仅有代码,而且还有注释。现在有研究表明,有注释的代码比没有注释的代码更容易理解。且注释是仅次于代码本身的有利于代码理解的第二有用文档。此外,源代码文件在软件维护是重要的,对于整个代码文件来说,查看在源代码文件中的注释对于开发人员对文档和代码的更新是一个比较方便的方法。而且开发人员都认为一个代码文件的质量严重影响了开发人员对这个软件的维护和演化,所以他们都认为代码文件质量很重要。而一。
9、个代码文件的质量不仅仅包括代码的质量,而且还包括代码中注释的质量,同时注释的质量不仅仅包括已有注释的质量,对没有注释却需要注释的也会影响代码文件的质量。对注释质量的评价在软件开发过程和维护过程中都有其作用。在开发过程中,管理人员可通过注释质量去评判各开发人员的代码质量和可理解性,注释质量好的代码能够有效辅助代码的可测试性和可维护性;在软件维护过程中,维护人员可通过注释质量来判断当前程序的易修改性,注释质量好的代码能够有效的帮助维护人员来修改维护这个程序。所以本发明通过对于已有注释和对没有注释却需要注释的两个方面分析来整体的分析这个代码文件注释的质量。0003已有的注释质量的分析往往都是对已有注。
10、释的分析,忽略了对没有注释却需要注释的分析,而且对于有注释,都是计算注释在这代码文件的比例,或者是代码注释的单词个数等等,而本发明是运用信息检索,对代码文件注释与被注释的代码的提取,通过预处理,然后计算其之间的相关性。对于没有注释的,提取每个代码文件的方法名,并在预处理的同时计算其方法的代码行数和调用其他函数的次数,通过分析3个条件来判断是否需要注释。本发明充分利用信息检索技术,通过检索代码和注释部分来计算其相关性,和其是否需要注释,来给出关于注释质量的评价,并给出注释的建议。发明内容0004本发明的目的是提供一种面向对象程序的注释质量评价和注释建议方法,根据所计算的结果给出关于头注释和方法注。
11、释的建议,提高代码注释的质量,有利于对软件代码质量的完善。0005本发明的目的是这样实现的一种面向对象程序的注释质量评价和注释建议方法,包括以下步骤步骤1)遍历目标代码文件,提取代码文件中主类的注释和其所注释的类名、方法的注释和其所注释的方法名,将主类的注释和其所注释的类名存入主类文件内,将方法的注释和其所注释的方法名存入方法文件内;步骤21)根据关于主类注释的分析规则对主类文件中的注释部分与类名进行质量分说明书CN104123273A2/4页5析,并对不满足分析规则的注释给出相应的建议;步骤22)根据关于方法注释的分析规则对方法文件中的注释部分与方法名进行质量分析,并对不满足分析规则的注释给。
12、出相应的建议;步骤3)根据上述的建议的数量来给出整体的质量评价。0006作为本发明的进一步限定,所述步骤21)的质量分析方法如下A遍历主类文件中的注释部分,检索该注释部分是否存在“AUTHOR”,如果不存在,则给出添加作者的建议;B查看该注释部分是否存在对主类的描述,如果不存在,则给出添加描述的建议,如果存在对主类的描述,则分析其相关性;C分析相关性,利用公式LN/M100计算出注释与主类的相关性,其中M表示对类名进行骆驼式命名法后分割出的单词总数,N表示注释中与类名相关的单词的个数,并将L与预先设定的门槛值比较,如果大于门槛值,说明相关性较高,如果低于门槛值,说明相关性较低,并且给出添加更多。
13、描述的建议。0007作为本发明的进一步限定,所述步骤22)的质量分析方法如下A)遍历方法文件中的注释部分和方法名,统计有注释的方法名和没有注释的方法名,并利用公式XY/Z100计算有注释的方法名,Y表示有注释的方法的个数,Z表示方法文件中方法的总数,并将X与预先设定的门槛值比较,如果低于门槛值,给出添加更多注释的建议;B)对方法文件中有注释的方法名进行相关性分析,根据骆驼式命名法来分割出方法名中的单词,单词数记Q,再依次对分割出的单词来遍历文件中的注释,注释中含有的单词数记P,利用公式OP/Q100,将O与预先设定的门槛值进行比较,如果低于所设门槛值,则给出添加更多注释的建议,如果高于所设门槛。
14、值,说明该段注释描述与该代码文件中的主类相关性较高;C)对方法文件中没有注释的方法名进行分析,利用WORDNET工具分析方法名的词性组成;如果该方法名的词性的组成不是动词加名词或者不是名称加动词的话,说明该方法需要添加注释,给出添加注释的建议;如果是动词加名词或者是名称加动词则分析其代码行数,如果其代码行数大于所设门槛值,则需要添加一些注释来有利于代码的理解,给出添加注释的建议;如果代码行数小于门槛值,则分析其引用其他方法的次数,如果次数大于门槛值,则需要添加一些注释来有利于代码的理解,给出添加注释的建议,如果词数小于门槛值,则可以不加注释。0008作为本发明的进一步限定,所述步骤3)的质量评。
15、价方法如下通过统计上述质量分析所给出的建议,然后计算出建议率,利用公式,其中,表示建议率,表示对主类注释建议的总数,括号内的3表示对主类的注释分析一共有三种,表示对有注释的方法建议总数,表示有注释的方法总数,表示没有注释的方法的建说明书CN104123273A3/4页6议总数,表示没有注释的方法总数,表示对主类注释建议占的比重,表示对有注释的方法建议占的比重,表示对没有注释的方法建议占得比重,将建议率与预先设定的门槛值进行比较,如果大于门槛值,说明该代码文件注释的质量不好,需要好好改进,建议开发人员根据建议修改注释,建议率小于05,说明该代码文件的质量较高;如果所有方法具有注释,即,则。000。
16、9与现有技术相比,本发明的有益效果在于,本发明方法是一种代码注释质量的评价和建议,通过对代码文件的头注释(即主类的注释)和方法注释进行质量的分析,根据所规定的分析规则,给出关于该注释质量的分析,如果质量较低,则给出相应的建议,此外,本发明对于没有注释的方法也进行了分析,对于需要注释但开发人员没有给注释的,通过分析,此段代码需要注释的,建议开发人员添加注释,最后,开发人员可根据建议修改自己的注释,从而提高代码注释的质量,有利于提高软件的质量。本发明可用于软件的维护开发中。附图说明0010图1是本发明的操作流程图。0011图2是本发明对DATAJAVA文件的头注释分析流程图。0012图3是本发明中。
17、提取DATAJAVA文件的头注释结果。0013图4是本发明对DATAJAVA文件的头注释的分析结果。0014图5是本发明对DATAJAVA文件的方法注释分析流程图。具体实施方式0015下面结合具体实施例对本发明做进一步描述。0016这里选用DATAJAVA作为代码文件。0017如图1所示的一种面向对象程序的注释质量评价和注释建议方法,包括以下步骤1)如图2所示,遍历DATAJAVA文件,提取代码文件中的HEADERCOMMENTS(即主类的注释)和其所注释的类名,注释如图3所示,然后以图3的格式保存在PROCESSFORHEADERCOMMENTS文件中,对这个文件进行处理。001811)检索。
18、PROCESSFORHEADERCOMMENTS中是否存在AUTHOR(即是否存在作者),代码段DATAJAVA中不存在AUTHOR,所以如图4所示给出建议SUGGESTIONYOUSHOULDADDAUTHORTOTHISDOCUMENT。001912)检索PROCESSFORHEADERCOMMENTS中除了AUTHOR之外有没有其他关于类的描述,通过检索HEADERCOMMENTS中是否存在不以开头的注释,因为DATAJAVA中存在其关于类的描述,所以此处不用给出建议,检测存在后,通过对代码部分的处理,提取HEADERCOMMENTS相关的类名DATA,利用骆驼式命名法将类名分割出1个单。
19、词,再遍历文件中的说明书CN104123273A4/4页7HEADERCOMMENTS,得到类名分割出的单词有1个单词存在HEADERCOMMENTS中,利用公式L1/1100100,大于门槛值50,所以该注释与代码的相关性高,不需要给出建议;SUGGESTIONYOUSHOULDADDMOREDESCRIPTIONABOUTTHISCLASSTOTHISDOCUMENT。00202)如图3所示,遍历DATAJAVA文件,提取代码文件中的MEMBERCOMMENTS(即方法的注释)和其所注释的方法名,在提取注释和方法名的同时,统计有注释的方法个数与总的方法个数,同时在提取单个的方法时,统计其方。
20、法体的代码行数,调用其他方法的次数,一并保存在PROCESSFORMEMBERCOMMENTS文件中,然后对这个文件进行处理。002121)统计出DATAJAVA文件中有注释的方法数14,总方法数14,注释率为100,注释率大于门槛值(50),不需要建议,并进行相关性分析;22)对于有注释的方法,在提取PROCESSFORMEMBERCOMMENTS中代码部分的方法名后,先根据骆驼命名法来处理方法名,然后计算OP/Q100,在DATAJAVA文件中,14个有注释的方法的O值分别为1,1,1,05,0,0,0,0,0,0,0,1,1,0然后与门槛值05比较,O值低于05,因此给出建议SUGGES。
21、TIONYOUSHOULDADDSOMECOMMENTSABOUTFUNCTION。002223)对于没有注释的方法,先提取方法名,再根据骆驼命名法来处理方法名提取关键词,再调用WORDNET工具检测其词性组成,看其词性组成是否为符合动词名词或者名词动词(如果方法名命名不规范直接记为组成不符合),对于不符合的,给出建议,对于符合的再进一步分析SUGGESTIONYOUSHOULDADDSOMECOMMENTSABOUTTHISFUNCTION。002324)提取符合词性组成条件方法的方法体代码行数,并与门槛值(50)比较,如果大于50,则给出建议,如果小于再进一步分析SUGGESTIONYOU。
22、SHOULDADDSOMECOMMENTSABOUTTHISFUNCTION。002425)提取门槛值小于50方法的调用其他方法体的次数,并与门槛值(3)比较,如果大于3,则给出建议,如果小于则说明该方法确实不需要注释SUGGESTIONYOUSHOULDADDSOMECOMMENTSABOUTTHISFUNCTION。00253)通过统计上述两个对不同注释的分析所给出的建议,然后计算出建议率,由于此处所有方法都有注释,因此选用公式,小于05,说明DATAJAVA代码文件的注释质量不错,但也可以根据建议来修改自己的注释进一步提高注释质量。0026本发明并不局限于上述实施例,在本发明公开的技术方案的基础上,本领域的技术人员根据所公开的技术内容,不需要创造性的劳动就可以对其中的一些技术特征作出一些替换和变形,这些替换和变形均在本发明的保护范围内。说明书CN104123273A1/4页8图1说明书附图CN104123273A2/4页9图2说明书附图CN104123273A3/4页10图3图4说明书附图CN104123273A104/4页11图5说明书附图CN104123273A11。