【技术实现步骤摘要】
一种源代码的智能重构方法及装置
[0001]本专利技术涉及代码重构
,尤其涉及一种源代码的智能重构方法及装置。
技术介绍
[0002]在软件系统开发中过程中,为了给软件系统扩展新的功能,需要不停地堆砌软件系统的源代码,若不及时对源代码进行维护,源代码会朝着越来越混乱的方向演进,因此,为软件系统开发新代码的同时需要对源代码进行重构。
[0003]现有的源代码重构方法需要开发人员手动从软件系统配置库中下载最新源代码并导入至本地的开发工具,在开发工具中逐个剥离源代码中不需要的代码,并检查剩余源代码中是否存在语法错误,若存在语法错误,需要进一步修改语法错误,才能够得到重构后的源代码。可见,现有的源代码重构方法需要开发人员进行大量的手动操作,降低了源代码重构的效率和准确性。
技术实现思路
[0004]本专利技术所要解决的技术问题在于,提供一种源代码的智能重构方法及装置,能够提高源代码重构的效率和准确性。
[0005]为了解决上述技术问题,本专利技术第一方面公开了一种源代码的智能重构方法,所述方法包 ...
【技术保护点】
【技术特征摘要】
1.一种源代码的智能重构方法,其特征在于,所述方法包括:当检测到用户触发的第一源代码重构请求时,根据所述第一源代码重构请求,从代码配置库中将待重构的原始源代码加载至建模开发平台中;当检测到用户针对所述原始源代码的解析结果所触发的第二源代码重构请求时,根据所述第二源代码重构请求,对所述原始源代码进行自动重构操作,得到用户所需的重构后的目标源代码。2.根据权利要求1所述的源代码的智能重构方法,其特征在于,所述根据所述第二源代码重构请求,对所述原始源代码进行自动重构操作,得到用户所需的重构后的目标源代码,包括:根据所述第二源代码重构请求,对所述解析结果进行数据抽取操作,得到所述第二源代码重构请求对应的结构化数据,所述第二源代码重构请求的请求内容包括用户在所述原始源代码的解析结果中所筛选的目标类信息,所述目标类信息包括用户筛选的目标类方法和/或目标类属性;对所述结构化数据进行动态组装操作,得到用户所需的重构后的目标源代码。3.根据权利要求2所述的源代码的智能重构方法,其特征在于,所述方法还包括:将所述原始源代码的解析结果中的所有类信息输出至前端以供用户查看和筛选,所有所述类信息至少包括所述原始源代码包含的所有类对应的类方法和/或所有类对应的类属性;以及,所述方法还包括:在所述自动重构操作的执行过程中,将所述自动重构操作对应的算法的实时执行日志输出至所述前端以供用户查看,所述自动重构操作包括所述数据抽取操作和/或所述动态组装操作。4.根据权利要求1
‑
3中任一项所述的源代码的智能重构方法,其特征在于,所述方法还包括:基于源代码解析领域模型,对所述原始源代码的一个或多个依赖文件进行解析,得到所述原始源代码的解析结果,所述原始源代码的每个类对应一个所述依赖文件;其中,所述基于源代码解析领域模型,对所述原始源代码中的一个或多个依赖文件进行解析,得到所述原始源代码中的解析结果,可以包括:对于所述原始源代码中的每个依赖文件,基于源代码解析领域模型以及该依赖文件对应的抽象语法树,对该依赖文件进行分析,得到该依赖文件的分析结果;根据所述原始源代码的文件依赖关系,将所有所述依赖文件进行分组,得到至少一组依赖文件集合;对于每个所述依赖文件集合,合并该依赖文件集合中所有所述依赖文件的分析结果,得到每个所述依赖文件集合对应的分析结果集合,作为所述原始源代码的解析结果。5.根据权利要求4所述的源代码的智能重构方法,其特征在于,对于所述原始源代码中的每个依赖文件,所述基于源代码解析领域模型以及该依赖文件对应的抽象语法树,对该依赖文件进行分析,得到该依赖文件的分析结果,包括:基于源代码解析领域模型所指示的节点关联关系,确定该依赖文件对应的抽象语法树中至少一个第一类节点和至少一个第二类节点,其中,每个所述第一类节点不存在所依赖
的依赖节点,每个所述第二类节点存在至少一个所依赖的依赖节点...
【专利技术属性】
技术研发人员:许畅,凌晨,诸焕辉,林玉千,孙小博,易文峰,李小强,梁培,章尊志,李忠文,薛煜帅,
申请(专利权)人:南方电网数字平台科技广东有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。