一种代码功能流程图生成方法及装置与流程

文档序号:32337155发布日期:2022-11-26 08:26阅读:211来源:国知局
一种代码功能流程图生成方法及装置与流程

1.本发明涉及代码数据处理技术领域,具体涉及一种代码功能流程图生成方法及装置。


背景技术:

2.在实际的任务实施和功能运行过程中,各种角色人员均需了解代码的逻辑,如:开发人员、测试人员和团队负责人等。然而看懂代码逻辑需要一定的编程基础,除开发人员外,其他人员大多不具备此项能力。为了更直观的展示代码逻辑,让更多的人可以理解代码逻辑,需要用户,即编程人员根据自己编译的代码手动绘制代码功能流程图,由此占用了用户大量的时间和精力,且效率低下。


技术实现要素:

3.针对现有技术中的问题,本发明实施例提供一种代码功能流程图生成方法及装置,能够至少部分地解决现有技术中存在的问题。
4.一方面,本发明提出一种代码功能流程图生成方法,包括:
5.解析已完成编译的第一代码,得到代码注释内容和代码语句指令;所述第一代码预先按照代码实现功能标记有对应的代码注释内容;
6.遍历所述代码注释内容在第一代码中的位置,并依次生成流程框架节点,根据所述代码语句指令的语义生成连接对应流程框架节点之间的有向连接线;
7.根据遍历所述代码注释内容在第一代码中的位置的顺序依次将所述代码注释内容填充至所述流程框架节点,得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图。
8.其中,在所述得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图的步骤之后,所述代码功能流程图生成方法还包括:
9.备份所述代码功能流程图,将备份的代码功能流程图转换为第二代码的代码注释内容,将所述第二代码的代码注释内容逐条与所述第一代码的代码注释内容进行内容相似度比较;
10.获取内容相似度比较结果大于预设阈值的部分代码注释内容,将所述部分代码注释内容对应的所述代码功能流程图中部分流程框架节点进行标记,并在所述代码功能流程图中显示带有标记的部分流程框架节点。
11.其中,所述代码功能流程图生成方法还包括:
12.响应用户在显示带有标记的部分流程框架节点的代码功能流程图中执行的修改处理动作,对所述代码功能流程图进行修改;
13.响应用户触发的修改完成动作,存储此时的代码功能流程图。
14.其中,在所述解析已完成编译的第一代码,得到代码注释内容和代码语句指令的步骤之前,所述代码功能流程图生成方法还包括:
15.对用户的身份权限信息进行验证,若确定验证通过,则获取所述用户已完成编译的第一代码。
16.一方面,本发明提出一种代码功能流程图生成装置,包括:
17.解析单元,用于解析已完成编译的第一代码,得到代码注释内容和代码语句指令;所述第一代码预先按照代码实现功能标记有对应的代码注释内容;
18.遍历单元,用于遍历所述代码注释内容在第一代码中的位置,并依次生成流程框架节点,根据所述代码语句指令的语义生成连接对应流程框架节点之间的有向连接线;
19.生成单元,用于根据遍历所述代码注释内容在第一代码中的位置的顺序依次将所述代码注释内容填充至所述流程框架节点,得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图。
20.其中,在所述得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图的步骤之后,所述代码功能流程图生成装置还用于:
21.备份所述代码功能流程图,将备份的代码功能流程图转换为第二代码的代码注释内容,将所述第二代码的代码注释内容逐条与所述第一代码的代码注释内容进行内容相似度比较;
22.获取内容相似度比较结果大于预设阈值的部分代码注释内容,将所述部分代码注释内容对应的所述代码功能流程图中部分流程框架节点进行标记,并在所述代码功能流程图中显示带有标记的部分流程框架节点。
23.其中,所述代码功能流程图生成装置还用于:
24.响应用户在显示带有标记的部分流程框架节点的代码功能流程图中执行的修改处理动作,对所述代码功能流程图进行修改;
25.响应用户触发的修改完成动作,存储此时的代码功能流程图。
26.其中,在所述解析已完成编译的第一代码,得到代码注释内容和代码语句指令的步骤之前,所述代码功能流程图生成装置还用于:
27.对用户的身份权限信息进行验证,若确定验证通过,则获取所述用户已完成编译的第一代码。
28.再一方面,本发明实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下方法:
29.解析已完成编译的第一代码,得到代码注释内容和代码语句指令;所述第一代码预先按照代码实现功能标记有对应的代码注释内容;
30.遍历所述代码注释内容在第一代码中的位置,并依次生成流程框架节点,根据所述代码语句指令的语义生成连接对应流程框架节点之间的有向连接线;
31.根据遍历所述代码注释内容在第一代码中的位置的顺序依次将所述代码注释内容填充至所述流程框架节点,得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图。
32.本发明实施例提供一种计算机可读存储介质,包括:
33.所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如下方法:
34.解析已完成编译的第一代码,得到代码注释内容和代码语句指令;所述第一代码预先按照代码实现功能标记有对应的代码注释内容;
35.遍历所述代码注释内容在第一代码中的位置,并依次生成流程框架节点,根据所述代码语句指令的语义生成连接对应流程框架节点之间的有向连接线;
36.根据遍历所述代码注释内容在第一代码中的位置的顺序依次将所述代码注释内容填充至所述流程框架节点,得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图。
37.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如下方法:
38.解析已完成编译的第一代码,得到代码注释内容和代码语句指令;所述第一代码预先按照代码实现功能标记有对应的代码注释内容;
39.遍历所述代码注释内容在第一代码中的位置,并依次生成流程框架节点,根据所述代码语句指令的语义生成连接对应流程框架节点之间的有向连接线;
40.根据遍历所述代码注释内容在第一代码中的位置的顺序依次将所述代码注释内容填充至所述流程框架节点,得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图。
41.本发明实施例提供的代码功能流程图生成方法及装置,解析已完成编译的第一代码,得到代码注释内容和代码语句指令;所述第一代码预先按照代码实现功能标记有对应的代码注释内容;遍历所述代码注释内容在第一代码中的位置,并依次生成流程框架节点,根据所述代码语句指令的语义生成连接对应流程框架节点之间的有向连接线;根据遍历所述代码注释内容在第一代码中的位置的顺序依次将所述代码注释内容填充至所述流程框架节点,得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图,能够提高代码功能流程图获取效率,进一步能够充分、全面和直观地展示代码表示的代码功能信息。
附图说明
42.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
43.图1是本发明一实施例提供的代码功能流程图生成方法的流程示意图。
44.图2是本发明实施例提供的代码功能流程图生成方法的说明示意图。
45.图3是本发明另一实施例提供的代码功能流程图生成方法的说明示意图。
46.图4是本发明一实施例提供的代码功能流程图生成装置的结构示意图。
47.图5为本发明实施例提供的计算机设备实体结构示意图。
具体实施方式
48.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并
不作为对本发明的限定。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互任意组合。
49.图1是本发明一实施例提供的代码功能流程图生成方法的流程示意图,如图1所示,本发明实施例提供的代码功能流程图生成方法,包括:
50.步骤s1:解析已完成编译的第一代码,得到代码注释内容和代码语句指令;所述第一代码预先按照代码实现功能标记有对应的代码注释内容。
51.步骤s2:遍历所述代码注释内容在第一代码中的位置,并依次生成流程框架节点,根据所述代码语句指令的语义生成连接对应流程框架节点之间的有向连接线。
52.步骤s3:根据遍历所述代码注释内容在第一代码中的位置的顺序依次将所述代码注释内容填充至所述流程框架节点,得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图。
53.在上述步骤s1中,装置解析已完成编译的第一代码,得到代码注释内容和代码语句指令;所述第一代码预先按照代码实现功能标记有对应的代码注释内容。装置可以是执行该方法的计算机设备等,例如为服务器和终端等。本技术技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
54.代码注释内容可以是用户在编译第一代码过程中输入的,用户标识代码功能的文字内容,可以理解的是,第一代码中的各位置分别对应的代码内容分别对应有代码注释内容,代码注释内容可以包括代码功能文字说明等。
55.代码语句指令主要包括代码判断语句,例如if、then、else等;代码跳转语句,例如switch等。
56.在所述解析已完成编译的第一代码,得到代码注释内容和代码语句指令的步骤之前,所述代码功能流程图生成方法还包括:
57.对用户的身份权限信息进行验证,若确定验证通过,则获取所述用户已完成编译的第一代码。身份权限信息可以包括用户使用编程工具和编程环境需要进行的身份权限信息,防止不是编程本人获取到已完成编译的第一代码。
58.对用户的身份权限信息进行验证,可以包括验证用户名和验证密码。
59.若确定验证不通过,则无法获取所述用户已完成编译的第一代码。
60.在上述步骤s2中,装置遍历所述代码注释内容在第一代码中的位置,并依次生成流程框架节点,根据所述代码语句指令的语义生成连接对应流程框架节点之间的有向连接线。通常第一代码是逐行编译的,因此,可以逐行遍历代码注释内容在第一代码中的位置,相应的,第一代码中的位置可以用所在行数表示,举例说明如下:
61.在第一代码的第10行出现第1个代码注释内容,在第一代码的第25行出现第2个代码注释内容,在第一代码的第30行出现第3个代码注释内容,在第一代码的第55行出现第4个代码注释内容,以此类推得到所有代码注释内容所在第一代码的行数。
62.参照上述举例,第1个流程框架节点对应第一代码的第10行,第2个流程框架节点对应第一代码的第25行,第3个流程框架节点对应第一代码的第30行,第4个流程框架节点对应第一代码的第55行。
63.如果代码语句指令的语义为if、then、else,且分别对应于第一代码的第10行至第30行,则生成由第1个流程框架节点指向第2个流程框架节点的有向连接线,生成由第1个流
程框架节点指向第3个流程框架节点的有向连接线。
64.如果第一代码的第55行接续的是第2个代码注释内容,则生成由第2个流程框架节点指向第4个流程框架节点的有向连接线,如果代码语句指令的语义为switch且指向第1个代码注释内容,则生成由第4个流程框架节点指向第1个流程框架节点的有向连接线,上述说明如图2所示。
65.在上述步骤s3中,装置根据遍历所述代码注释内容在第一代码中的位置的顺序依次将所述代码注释内容填充至所述流程框架节点,得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图。如图3所示,将第1个代码注释内容填充至第1个流程框架节点,将第2个代码注释内容填充至第2个流程框架节点,以此类推,得到如图3所示的代码功能流程图。
66.在所述得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图的步骤之后,所述代码功能流程图生成方法还包括:
67.备份所述代码功能流程图,将备份的代码功能流程图转换为第二代码的代码注释内容,将所述第二代码的代码注释内容逐条与所述第一代码的代码注释内容进行内容相似度比较;即备份如图3所示的代码功能流程图,原代码功能流程图记为图a,备份的代码功能流程图记为图b,对图b进行转换,得到第二代码的代码注释内容,可以利用上述将第一代码转换为代码功能流程图的逆过程实现对图b进行转换,得到第二代码的代码注释内容,由于技术缺陷、数据缺失等原因,会使得第二代码的代码注释内容与第一代码的代码注释内容之间存在一定的差异,可以根据实际情况确定用于相似度判断比较的预设阈值。
68.获取内容相似度比较结果大于预设阈值的部分代码注释内容,将所述部分代码注释内容对应的所述代码功能流程图中部分流程框架节点进行标记,并在所述代码功能流程图中显示带有标记的部分流程框架节点。内容相似度比较结果大于预设阈值,就说明该部分代码注释内容或者流程框架节点极有可能存在问题,参照图3,如果上述部分代码注释内容为第3个代码注释内容和第4个代码注释内容,则将图a中的第3个流程框架节点和第4个流程框架节点进行标记,标记方式不作具体限定。
69.在图a中显示带有标记的第3个流程框架节点和第4个流程框架节点。
70.所述代码功能流程图生成方法还包括:
71.响应用户在显示带有标记的部分流程框架节点的代码功能流程图中执行的修改处理动作,对所述代码功能流程图进行修改;通过上述步骤可以快速和方便地辅助用户定位生成流程图可能存在问题,参照上述说明,用户可以对代码功能流程图进行修改。
72.响应用户触发的修改完成动作,存储此时的代码功能流程图。用户修改完成后,可以点击确认和保存按钮实现存储此时的代码功能流程图。
73.本发明实施例提供的代码功能流程图生成方法,解析已完成编译的第一代码,得到代码注释内容和代码语句指令;所述第一代码预先按照代码实现功能标记有对应的代码注释内容;遍历所述代码注释内容在第一代码中的位置,并依次生成流程框架节点,根据所述代码语句指令的语义生成连接对应流程框架节点之间的有向连接线;根据遍历所述代码注释内容在第一代码中的位置的顺序依次将所述代码注释内容填充至所述流程框架节点,得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图,能够提高代码功能流程图获取效率,进一步能够充分、全面和直观地展示代码表示的代码功能信息。
74.进一步地,在所述得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图的步骤之后,所述代码功能流程图生成方法还包括:
75.备份所述代码功能流程图,将备份的代码功能流程图转换为第二代码的代码注释内容,将所述第二代码的代码注释内容逐条与所述第一代码的代码注释内容进行内容相似度比较;可参照上述说明,不再赘述。
76.获取内容相似度比较结果大于预设阈值的部分代码注释内容,将所述部分代码注释内容对应的所述代码功能流程图中部分流程框架节点进行标记,并在所述代码功能流程图中显示带有标记的部分流程框架节点。可参照上述说明,不再赘述。
77.进一步地,所述代码功能流程图生成方法还包括:
78.响应用户在显示带有标记的部分流程框架节点的代码功能流程图中执行的修改处理动作,对所述代码功能流程图进行修改;可参照上述说明,不再赘述。
79.响应用户触发的修改完成动作,存储此时的代码功能流程图。可参照上述说明,不再赘述。
80.进一步地,在所述解析已完成编译的第一代码,得到代码注释内容和代码语句指令的步骤之前,所述代码功能流程图生成方法还包括:
81.对用户的身份权限信息进行验证,若确定验证通过,则获取所述用户已完成编译的第一代码。可参照上述说明,不再赘述。
82.需要说明的是,本发明实施例提供的代码功能流程图生成方法可用于金融领域,也可用于除金融领域之外的任意技术领域,本发明实施例对代码功能流程图生成方法的应用领域不做限定。
83.图4是本发明一实施例提供的代码功能流程图生成装置的结构示意图,如图4所示,本发明实施例提供的代码功能流程图生成装置,包括解析单元401、遍历单元402和生成单元403,其中:
84.解析单元401用于解析已完成编译的第一代码,得到代码注释内容和代码语句指令;所述第一代码预先按照代码实现功能标记有对应的代码注释内容;遍历单元402用于遍历所述代码注释内容在第一代码中的位置,并依次生成流程框架节点,根据所述代码语句指令的语义生成连接对应流程框架节点之间的有向连接线;生成单元403用于根据遍历所述代码注释内容在第一代码中的位置的顺序依次将所述代码注释内容填充至所述流程框架节点,得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图。
85.具体的,装置中的解析单元401用于解析已完成编译的第一代码,得到代码注释内容和代码语句指令;所述第一代码预先按照代码实现功能标记有对应的代码注释内容;遍历单元402用于遍历所述代码注释内容在第一代码中的位置,并依次生成流程框架节点,根据所述代码语句指令的语义生成连接对应流程框架节点之间的有向连接线;生成单元403用于根据遍历所述代码注释内容在第一代码中的位置的顺序依次将所述代码注释内容填充至所述流程框架节点,得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图。
86.本发明实施例提供的代码功能流程图生成装置,解析已完成编译的第一代码,得到代码注释内容和代码语句指令;所述第一代码预先按照代码实现功能标记有对应的代码注释内容;遍历所述代码注释内容在第一代码中的位置,并依次生成流程框架节点,根据所
述代码语句指令的语义生成连接对应流程框架节点之间的有向连接线;根据遍历所述代码注释内容在第一代码中的位置的顺序依次将所述代码注释内容填充至所述流程框架节点,得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图,能够提高代码功能流程图获取效率,进一步能够充分、全面和直观地展示代码表示的代码功能信息。
87.进一步地,在所述得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图的步骤之后,所述代码功能流程图生成装置还用于:
88.备份所述代码功能流程图,将备份的代码功能流程图转换为第二代码的代码注释内容,将所述第二代码的代码注释内容逐条与所述第一代码的代码注释内容进行内容相似度比较;
89.获取内容相似度比较结果大于预设阈值的部分代码注释内容,将所述部分代码注释内容对应的所述代码功能流程图中部分流程框架节点进行标记,并在所述代码功能流程图中显示带有标记的部分流程框架节点。
90.进一步地,所述代码功能流程图生成装置还用于:
91.响应用户在显示带有标记的部分流程框架节点的代码功能流程图中执行的修改处理动作,对所述代码功能流程图进行修改;
92.响应用户触发的修改完成动作,存储此时的代码功能流程图。
93.进一步地,在所述解析已完成编译的第一代码,得到代码注释内容和代码语句指令的步骤之前,所述代码功能流程图生成装置还用于:
94.对用户的身份权限信息进行验证,若确定验证通过,则获取所述用户已完成编译的第一代码。
95.本发明实施例提供代码功能流程图生成装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
96.图5为本发明实施例提供的计算机设备实体结构示意图,如图5所示,所述计算机设备包括:存储器501、处理器502及存储在存储器501上并可在处理器502上运行的计算机程序,所述处理器502执行所述计算机程序时实现如下方法:
97.解析已完成编译的第一代码,得到代码注释内容和代码语句指令;所述第一代码预先按照代码实现功能标记有对应的代码注释内容;
98.遍历所述代码注释内容在第一代码中的位置,并依次生成流程框架节点,根据所述代码语句指令的语义生成连接对应流程框架节点之间的有向连接线;
99.根据遍历所述代码注释内容在第一代码中的位置的顺序依次将所述代码注释内容填充至所述流程框架节点,得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图。
100.本实施例公开一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如下方法:
101.解析已完成编译的第一代码,得到代码注释内容和代码语句指令;所述第一代码预先按照代码实现功能标记有对应的代码注释内容;
102.遍历所述代码注释内容在第一代码中的位置,并依次生成流程框架节点,根据所述代码语句指令的语义生成连接对应流程框架节点之间的有向连接线;
103.根据遍历所述代码注释内容在第一代码中的位置的顺序依次将所述代码注释内
容填充至所述流程框架节点,得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图。
104.本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如下方法:
105.解析已完成编译的第一代码,得到代码注释内容和代码语句指令;所述第一代码预先按照代码实现功能标记有对应的代码注释内容;
106.遍历所述代码注释内容在第一代码中的位置,并依次生成流程框架节点,根据所述代码语句指令的语义生成连接对应流程框架节点之间的有向连接线;
107.根据遍历所述代码注释内容在第一代码中的位置的顺序依次将所述代码注释内容填充至所述流程框架节点,得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图。
108.本发明实施例与现有技术中的技术方案相比,解析已完成编译的第一代码,得到代码注释内容和代码语句指令;所述第一代码预先按照代码实现功能标记有对应的代码注释内容;遍历所述代码注释内容在第一代码中的位置,并依次生成流程框架节点,根据所述代码语句指令的语义生成连接对应流程框架节点之间的有向连接线;根据遍历所述代码注释内容在第一代码中的位置的顺序依次将所述代码注释内容填充至所述流程框架节点,得到包含有填充内容的流程框架节点和所述有向连接线的代码功能流程图,能够提高代码功能流程图获取效率,进一步能够充分、全面和直观地展示代码表示的代码功能信息。
109.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序第一代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
110.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
111.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
112.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
113.在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的
具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
114.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1