System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及代码注释,特别是涉及一种基于历史数据库的代码注释的生成方法和装置。
技术介绍
1、代码编写是在计算机领域、软件开发维护过程当中最基础和不可或缺的一环,而代码的注释则是帮助开发者、维护者理解代码的重要组成部分,如果没有代码注释,除了编写该代码的开发者本人外,其他开发者、维护者都需要花费大量时间去理解相应代码,不利于后续开发维护效率;更甚者,即使是编写该代码的开发者本人,时间长了之后也会遗忘相应代码功能,也需要花费大量时间重新去理解代码。基于此,代码注释的重要性不言而喻。
2、然而,在软件实际的开发维护过程中,常常出现代码注释的缺失,或者质量不高,这导致软件的开发维护效率大大降低;而要对这些缺失或质量不高的代码注释进行补齐,就需要人工花费大量的时间去完成这个工作,浪费人力,效率低,且准确性得不到足够的保障。
3、有鉴于此,如何克服现有技术所存在的缺陷,解决当前代码注释工作中效率低、准确性不足的问题,是本
待解决的难题。
技术实现思路
1、针对现有技术中的缺陷或改进需求。本专利技术提供一种基于历史数据库的代码注释的生成方法和装置,通过代码中当前函数的内容在历史数据库中进行匹配筛选,筛选出历史函数的代码注释,并对这些代码注释进行对比筛选,得到最后的待选组代码注释以供最终选择。通过该方法可以筛选出现有历史数据库中最接近当前函数的一部分历史函数,以及其代码注释,以供开发者、维护者选择,能极大的提升开发者、维护者进行代码注释的效率,且在多个历史函数的代
2、本专利技术采用如下技术方案:
3、第一方面,本专利技术提供了一种基于历史数据库的代码注释的生成方法,包括:
4、根据当前函数的内部代码来与历史数据库中的代码进行匹配,根据相似度生成第二组代码注释;
5、查找当前函数内所调用的子函数在历史数据库中出现时的母函数,根据各个母函数的注释一致性来生成第三组代码注释;
6、对第二组代码注释以及第三组代码注释进行对比筛选,得到待选组代码注释以供最终选择。
7、进一步的,所述根据当前函数的内部代码来与历史数据库中的代码进行匹配,根据相似度生成第二组代码注释具体包括:
8、获取当前函数的内部代码;
9、根据当前函数的内部代码在历史数据库中进行匹配,筛选出代码相同或相近的第二组历史函数;代码相近指相似度五成以上;
10、获取第二组历史函数中的代码注释,并按代码相似度高低进行排序,以生成第二组代码注释。
11、进一步的,所述筛选出代码相同或相近的第二组历史函数具体包括:
12、先筛选代码相同的历史函数;若筛选不到,则筛选代码相似度七成以上的历史函数;若筛选不到,则筛选代码相似度五成以上的历史函数。
13、进一步的,在获取当前函数的内部代码时,先获取当前函数的全部代码去进行匹配筛选;若筛选不到,则获取当前函数的部分代码去进行匹配筛选;其中,在获取当前函数的部分代码时,按照由多到少的顺序进行获取。
14、进一步的,设定代码数量权重值,建立代码数量权重值与匹配筛选时获取的当前函数的代码数量之间的映射关系;其中,获取的当前函数的代码数量越多,对应的代码数量权重值越大;获取第二组历史函数中的代码注释时,根据代码数量权重值与代码相似度的乘积确定最终的代码相似度,并按最终的代码相似度对生成的第二组代码注释进行排序。
15、进一步的,所述查找当前函数内所调用的子函数在历史数据库中出现时的母函数,根据各个母函数的注释一致性来生成第三组代码注释具体包括:
16、获取当前函数内所调用的子函数;
17、根据当前函数内所调用的子函数在历史数据库中进行匹配,筛选出调用相同子函数的母函数作为第三组历史函数;
18、获取第三组历史函数中的代码注释,选择其中达到注释一致性预设比例的代码注释作为第三组代码注释,并按注释一致性高低对第三组代码注释进行排序。
19、进一步的,获取当前函数内所调用的子函数数量,根据子函数数量设定不同的筛选档位,其中:第一筛选档位采用当前函数的所有子函数在历史数据库中进行匹配筛选;第二筛选档位采用当前函数的七成子函数在历史数据库中进行匹配筛选;第三筛选档位采用当前函数的五成子函数在历史数据库中进行匹配筛选;
20、设定子函数数量权重值,建立子函数数量权重值与匹配筛选时采用当前函数的子函数数量之间的映射关系;其中,采用当前函数的子函数数量越多,对应的子函数数量权重值越大;
21、获取第三组历史函数中的代码注释时,根据子函数数量权重值与注释一致性的乘积确定最终的注释一致性,并按最终的注释一致性来与注释一致性预设比例进行对比,来得到第三组代码注释。
22、进一步的,设置第三组代码注释的反馈满意度;第三组代码注释的反馈满意度达到70%以上时,选择第三筛选档位,采用当前函数的五成子函数在历史数据库中进行匹配筛选;第三组代码注释的反馈满意度达到50%以下时,选择第一筛选档位,采用当前函数的所有子函数在历史数据库中进行匹配筛选;第三组代码注释的反馈满意度在50%到70%之间时,选择第二筛选档位,采用当前函数的七成子函数在历史数据库中进行匹配筛选。
23、进一步的,所述对第二组代码注释以及第三组代码注释进行对比筛选,得到待选组代码注释以供最终选择具体包括:
24、选取在第二组代码注释以及第三组代码注释中均相同的代码注释加入到待选组代码注释中;若无或未填满待选组代码注释,
25、按第二组代码注释优先、第三组代码注释最后的顺序从各组代码注释中轮流提取代码注释加入到待选组代码注释中;
26、所述第二组代码注释优先、第三组代码注释最后的顺序从各组代码注释中轮流提取代码注释加入到待选组代码注释中时,获取待选组代码注释的选择反馈结果,按照选择反馈结果来动态调整第二组代码注释、第三组代码注释的提取优先级。
27、另一方面,本专利技术提供了一种基于历史数据库的代码注释的生成装置,具体为:包括至少一个处理器和存储器,至少一个处理器和存储器之间通过数据总线连接,存储器存储能被至少一个处理器执行的指令,指令在被处理器执行后,用于完成第一方面中的基于历史数据库的代码注释的生成方法。
28、与现有技术相比,本专利技术的有益效果在于:通过代码中当前函数的内容在历史数据库中进行匹配筛选,筛选出历史函数的代码注释,并对这些代码注释进行对比筛选,得到最后的待选组代码注释以供最终选择。通过该方法可以筛选出现有历史数据库中最接近当前函数的一部分历史函数,以及其代码注释,以供开发者、维护者选择,能极大的提升开发者、维护者进行代码注释的效率,且在多个历史函数的代码注释的提示下,也能对开发者、维护者形成一个提醒效果,以免其遗漏代码中本文档来自技高网...
【技术保护点】
1.一种基于历史数据库的代码注释的生成方法,其特征在于,包括:
2.根据权利要求1所述的基于历史数据库的代码注释的生成方法,其特征在于,所述根据当前函数的内部代码来与历史数据库中的代码进行匹配,根据相似度生成第二组代码注释具体包括:
3.根据权利要求2所述的基于历史数据库的代码注释的生成方法,其特征在于,所述筛选出代码相同或相近的第二组历史函数具体包括:
4.根据权利要求2所述的基于历史数据库的代码注释的生成方法,其特征在于,在获取当前函数的内部代码时,先获取当前函数的全部代码去进行匹配筛选;若筛选不到,则获取当前函数的部分代码去进行匹配筛选;其中,在获取当前函数的部分代码时,按照由多到少的顺序进行获取。
5.根据权利要求4所述的基于历史数据库的代码注释的生成方法,其特征在于,设定代码数量权重值,建立代码数量权重值与匹配筛选时获取的当前函数的代码数量之间的映射关系;其中,获取的当前函数的代码数量越多,对应的代码数量权重值越大;获取第二组历史函数中的代码注释时,根据代码数量权重值与代码相似度的乘积确定最终的代码相似度,并按最终的代码相
6.根据权利要求1所述的基于历史数据库的代码注释的生成方法,其特征在于,所述查找当前函数内所调用的子函数在历史数据库中出现时的母函数,根据各个母函数的注释一致性来生成第三组代码注释具体包括:
7.根据权利要求6所述的基于历史数据库的代码注释的生成方法,其特征在于,获取当前函数内所调用的子函数数量,根据子函数数量设定不同的筛选档位,其中:第一筛选档位采用当前函数的所有子函数在历史数据库中进行匹配筛选;第二筛选档位采用当前函数的七成子函数在历史数据库中进行匹配筛选;第三筛选档位采用当前函数的五成子函数在历史数据库中进行匹配筛选;
8.根据权利要求7所述的基于历史数据库的代码注释的生成方法,其特征在于,设置第三组代码注释的反馈满意度;第三组代码注释的反馈满意度达到70%以上时,选择第三筛选档位,采用当前函数的五成子函数在历史数据库中进行匹配筛选;第三组代码注释的反馈满意度达到50%以下时,选择第一筛选档位,采用当前函数的所有子函数在历史数据库中进行匹配筛选;第三组代码注释的反馈满意度在50%到70%之间时,选择第二筛选档位,采用当前函数的七成子函数在历史数据库中进行匹配筛选。
9.根据权利要求1所述的基于历史数据库的代码注释的生成方法,其特征在于,所述对第二组代码注释以及第三组代码注释进行对比筛选,得到待选组代码注释以供最终选择具体包括:
10.一种基于历史数据库的代码注释的生成装置,其特征在于:
...【技术特征摘要】
1.一种基于历史数据库的代码注释的生成方法,其特征在于,包括:
2.根据权利要求1所述的基于历史数据库的代码注释的生成方法,其特征在于,所述根据当前函数的内部代码来与历史数据库中的代码进行匹配,根据相似度生成第二组代码注释具体包括:
3.根据权利要求2所述的基于历史数据库的代码注释的生成方法,其特征在于,所述筛选出代码相同或相近的第二组历史函数具体包括:
4.根据权利要求2所述的基于历史数据库的代码注释的生成方法,其特征在于,在获取当前函数的内部代码时,先获取当前函数的全部代码去进行匹配筛选;若筛选不到,则获取当前函数的部分代码去进行匹配筛选;其中,在获取当前函数的部分代码时,按照由多到少的顺序进行获取。
5.根据权利要求4所述的基于历史数据库的代码注释的生成方法,其特征在于,设定代码数量权重值,建立代码数量权重值与匹配筛选时获取的当前函数的代码数量之间的映射关系;其中,获取的当前函数的代码数量越多,对应的代码数量权重值越大;获取第二组历史函数中的代码注释时,根据代码数量权重值与代码相似度的乘积确定最终的代码相似度,并按最终的代码相似度对生成的第二组代码注释进行排序。
6.根据权利要求1所述的基于历史数据库的代码注释的生成方法,其特征在于,所述查找当前函数内所调用的子函数在历...
【专利技术属性】
技术研发人员:邹禹,叶志钢,张本军,
申请(专利权)人:武汉绿色网络信息服务有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。