设计文档生成方法及电子设备与流程

摘要: 本技术涉及软件工程,尤其涉及一种设计文档生成方法及电子设备。背景技术:1、随着企业应用系统架构日益复杂,设计文档作为连接代码实现与系统架构的关键纽带,在软件开发...
设计文档生成方法及电子设备与流程

本技术涉及软件工程,尤其涉及一种设计文档生成方法及电子设备。

背景技术:

1、随着企业应用系统架构日益复杂,设计文档作为连接代码实现与系统架构的关键纽带,在软件开发生命周期中承担着不可替代的作用。当前,设计文档的生成主要依赖人工编写,效率低下且成本高昂,尤其在代码量庞大的场景下问题尤为突出。现有辅助工具对代码的理解停留在浅层结构,缺乏对代码中蕴含的业务逻辑的深度剖析能力,生成的文档内容不够完整,无法满足实际开发需求。因此,如何从代码中自动提取信息并生成内容完整的设计文档,已成为亟需解决的技术问题。

2、上述内容仅用于辅助理解本技术的技术方案,并不代表承认上述内容是现有技术。

技术实现思路

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、本实施例通过自底向上的功能逻辑提取和自顶向下的业务架构补充相结合,使底层方法的分析结果能够为上层方法的分析提供依据,同时从整体架构视角出发逐层确定各待生成文档类的业务定位,两者融合确保生成的设计文档同时具备方法级别的功能描述和架构级别的业务描述,既解决了人工编写效率低下、成本高昂的问题,又克服了现有工具对代码理解浅层、文档内容不完整的缺陷,为软件开发和维护提供了可靠的技术支撑。