[发明专利]一种Git仓库文件注解系统的注解传递方法有效
| 申请号: | 201910039534.8 | 申请日: | 2019-01-16 |
| 公开(公告)号: | CN109857390B | 公开(公告)日: | 2022-05-31 |
| 发明(设计)人: | 张卫丰;袁聚懋 | 申请(专利权)人: | 南京邮电大学 |
| 主分类号: | G06F8/30 | 分类号: | G06F8/30 |
| 代理公司: | 南京纵横知识产权代理有限公司 32224 | 代理人: | 董建林 |
| 地址: | 210003 江苏*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 git 仓库 文件 注解 系统 传递 方法 | ||
本发明公开一种Git仓库文件注解系统的注解传递方法,首先对需要进行传递的项目进行静态分析,将需要分析的代码全部加载到缓存转换为中间表示;然后连接数据库将该项目的注解全部加载进来;接下来将注解和变量或者函数进行绑定,主要是通过对比注解和代码的位置来确立对应关系;最后通过数据流将已有的注解传递给相关的变量或函数,然后将传递来的注解更新到数据库中,通过Git仓库文件注解系统可以查看到传递后的注解;该方法主要是通过数据流分析将已有的注解传递到相关的地方,提高代码中注解的覆盖率,减少开发人员的重复工作。
技术领域
本发明属于互联网和软件工程领域,具体涉及一种Git仓库文件注解系统的注解传递方法。
背景技术
在软件开发和维护过程中,工作人员往往花费大约一半的时间来理解代码。大多数开发人员都认为阅读他人的代码并不容易。代码注释是软件开发和维护的重要组成部分,为了能够让读者(代码完成后若干长时间后的开发者本人、新接手代码的同行、协同工作的伙伴、调用代码的人)清晰地理解代码的意图,在代码中会人工加入一些不执行的说明语句。通常注释比源代码更直接、更具描述性和可理解性。优质的代码注释不仅能覆盖软件系统中的核心业务逻辑,还能避免产生代码冗余、破坏代码的整体结构,从而有效保障软件的可理解能力和可维护性。
但在软件的开发、维护过程中,注释并没有得到太多的关注。具体表现在:开源项目中通常注释比较匮乏;注释没有随着代码的演化而不断更新;注释与代码可能存在不一致;不规范注释和冗余注释;等等。这些现状导致了源代码可读性和程序可维护性的下降.究其原因,一方面是由于对注释的重视程度不够,另一方面也是由于在代码和注释之间频繁切换,开发者的确需要花费更多的时间和精力。
虽然代码中已经有了功能注释和逻辑注释,但是在团队协作开发过程中,负责人在审核提交代码的时候,可能需要在不改变源代码的情况下对部分代码添加一些注解,同时,开发者也可以对代码添加一些注解,这些注解可以包括大量文字的知识点解析、伪算法讲解和图片,还可以跨越多个文件的多处代码进行整合注解等。目前,比较流行的GitHub或者GitLab代码托管平台本身没有提供注解传递的功能,无法满足我们的需求。
发明内容
本发明的目的是针对现有技术存在的问题,提供一种Git仓库文件注解系统的注解传递方法,通过数据流分析将已有的注解传递到相关的地方,提高代码中注解的覆盖率,减少开发人员的重复工作。
为实现上述目的,本发明采用的技术方案是:
一种Git仓库文件注解系统的注解传递方法,包括以下步骤:
S1,将项目代码转化为中间表示;
由于无法对项目的源码直接进行分析或运行,故需要先构建语法树,解析代码并构建所有源码之间的关系;因此,先通过静态分析框架将项目代码转化为框架形式的中间表示,再构建完整的函数调用关系图,最终将每个变量和函数都转化为框架形式的中间表示,并按照程序的逻辑进行组织;
S2,加载所述项目代码的所有注解,在数据库中将所述项目代码的所有注解加载到程序的内部缓存中;
S3,将所述注解与中间表示进行绑定,通过对比所述注解的位置信息和中间表示的位置信息,将位置信息相同的变量和注解进行绑定;
S4,通过数据流传递注解,通过数据流将已进行绑定的注解传递给其他的变量或函数;
S5,更新传递后的注解到数据库,将注解传递到其它的变量或函数进行绑定后,遍历项目的所有代码,将传递的注解加入一个Set集合中,再将Set集合中的所有注解插入到数据库中。
具体地,步骤S1中,在构建完整的函数调用关系图之后,还需要设定一个虚拟的函数入口,用于动态地调用所有的分析方法;所述分析方法包括将中间表示与注解进行绑定的方法和通过数据流传递注解的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910039534.8/2.html,转载请声明来源钻瓜专利网。





