软件开发方法、装置、设备、系统、存储介质及程序产品与流程

摘要: 本技术涉及软件工程,尤其涉及一种软件开发方法、装置、设备、系统、存储介质及程序产品。背景技术:1、随着科技的不断发展,智能体的应用领域越来越广泛。在软件开发领域...
软件开发方法、装置、设备、系统、存储介质及程序产品与流程

本技术涉及软件工程,尤其涉及一种软件开发方法、装置、设备、系统、存储介质及程序产品。

背景技术:

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、根据所述当前运行结果和所述目标文件运行,生成所述软件开发阶段对应的阶段文件,或者生成所述软件开发阶段对应的阶段文件和目标软件;

23、将所述软件开发阶段的阶段状态更新为已完成。

24、在一种可能的实施方式中,所述代码获取阶段的阶段文件包括至少一个代码标识,以及每个代码标识对应的代码和代码类型,代码类型为前端代码或后端代码;

25、所述软件生成阶段的阶段文件包括已修改代码标识;

26、所述将所述软件开发阶段的阶段状态更新为已完成后,所述方法还包括:

27、若所有已修改代码标识对应的代码类型中包括后端代码,则向测试子智能体发送覆盖率检查请求,以使所述测试子智能体获取目标覆盖率,根据所述目标覆盖率和预设覆盖率阈值,生成指示覆盖率测试是否通过的覆盖率测试结果,将所述覆盖率测试结果发送至所述主智能体;

28、接收到所述测试子智能体发送的所述覆盖率测试结果时,判断所述覆盖率测试结果是否指示覆盖率测试通过;

29、若所述覆盖率测试结果指示覆盖率测试通过,则根据所述软件需求文件、所述覆盖率测试结果,以及每个子智能体的阶段文件,生成软件开发报告。

30、在一种可能的实施方式中,所述方法还包括:

31、若所述覆盖率测试结果指示覆盖率测试未通过,向修复子智能体发送软件修复请求,以使所述修复子智能体获取修复测试用例文件,根据修复测试用例文件对目标软件进行测试,得到目标覆盖率后存储,将所述修复测试用例文件发送至所述主智能体;

32、接收到所述软件测试结果和所述修复测试用例文件时,向所述测试子智能体发送覆盖率检查请求,以使所述测试子智能体获取目标覆盖率,根据所述目标覆盖率和预设覆盖率阈值,生成覆盖率测试结果,将所述覆盖率测试结果发送至所述主智能体;

33、接收到所述测试子智能体发送的所述覆盖率测试结果时,判断所述覆盖率测试结果是否指示覆盖率测试通过;

34、若所述覆盖率测试结果指示覆盖率测试未通过,则重复上述步骤,直至若覆盖率测试结果指示覆盖率测试通过,则根据所述软件需求文件、所述覆盖率测试结果、所述修复测试用例文件,以及每个子智能体的阶段文件,生成软件开发报告。

35、在一种可能的实施方式中,所述方法还包括:

36、若所有已修改代码标识对应的代码类型中不包括后端代码,生成覆盖率测试跳过文件并存储;

37、根据所述覆盖率测试跳过文件、所述软件需求文件,以及每个子智能体的阶段文件,生成软件开发报告。

38、在一种可能的实施方式中,所述接收到所述测试子智能体发送的所述覆盖率测试结果时,判断所述覆盖率测试结果是否指示覆盖率测试通过,包括:

39、若在向所述测试子智能体发送覆盖率检查请求后预设时长内,接收到所述测试子智能体发送的所述覆盖率测试结果,则判断所述覆盖率测试结果是否指示覆盖率测试通过。

40、在一种可能的实施方式中,所述方法还包括:

41、若在向所述测试子智能体发送覆盖率检查请求后预设时长内,未接收到所述测试子智能体发送的所述覆盖率测试结果,则获取目标覆盖率,根据所述目标覆盖率和预设覆盖率阈值,生成指示覆盖率测试是否通过的覆盖率测试结果。

42、在一种可能的实施方式中,所述接收到所述修复测试用例文件时,向所述测试子智能体发送覆盖率检查请求,包括:

43、若在向所述修复子智能体发送软件修复请求后预设时长内,接收到所述修复子智能体发送的所述所述修复测试用例文件,则向所述测试子智能体发送覆盖率检查请求。

44、在一种可能的实施方式中,所述方法还包括:

45、若在向所述修复子智能体发送软件修复请求后预设时长内,未接收到所述修复子智能体发送的所述修复测试用例文件,则根据获取所述修复子智能体的当前运行结果,根据所述当前运行结果获取修复测试用例文件,根据修复测试用例文件对目标软件进行测试,得到目标覆盖率;

46、将所述修复测试用例文件和所述目标覆盖率存储,并向所述测试子智能体发送覆盖率检查请求。

47、第二方面,本技术实施例提供一种软件开发方法,应用于软件开发过程中的每个软件开发阶段对应的子智能体,所述软件开发阶段为需求摘要提取阶段、代码获取阶段、技术方案生成阶段或软件生成阶段,所述方法包括:

48、接收主智能体发送的文件存储路径;

49、根据所述文件存储路径获取目标文件;

50、根据所述目标文件运行,生成所述软件开发阶段对应的阶段文件,或者生成所述软件开发阶段对应的阶段文件和目标软件;

51、将所述软件开发阶段对应的阶段文件发送至所述主智能体。

52、第三方面,本技术实施例提供一种软件开发装置,包括:

53、获取模块,用于获取软件需求文件;

54、发送模块,用于对于软件开发过程中的每个软件开发阶段,在所述软件开发阶段的预设触发条件成立时,根据所述软件需求文件或接收到的阶段文件,确定所述软件开发阶段对应的目标文件;将所述目标文件的文件存储路径发送至所述软件开发阶段对应的子智能体;所述软件开发阶段为需求摘要提取阶段、代码获取阶段、技术方案生成阶段或软件生成阶段;所述子智能体用于根据所述目标文件运行生成所述软件开发阶段对应的阶段文件;

55、接收模块,用于对于每个软件开发阶段,接收所述软件开发阶段对应的子智能体发送的所述软件开发阶段对应的阶段文件。

56、第四方面,本技术实施例提供一种软件开发装置,包括:

57、接收模块,用于接收主智能体发送的文件存储路径;

58、处理模块,用于:

59、根据所述文件存储路径获取目标文件;

60、根据所述目标文件运行,生成阶段文件,或者生成阶段文件和目标软件;所述阶段文件和所述目标软件对应软件开发过程中的软件开发阶段,所述软件开发阶段为需求摘要提取阶段、代码获取阶段、技术方案生成阶段或软件生成阶段;

61、发送模块,用于将所述阶段文件发送至所述主智能体。

62、第五方面,本技术实施例提供一种电子设备,包括:

63、处理器,存储器,通信接口;

64、所述存储器用于存储所述处理器的可执行指令;

65、其中,所述处理器配置为经由执行所述可执行指令来执行第一方面任一项所述的软件开发方法。

66、第六方面,本技术实施例提供一种电子设备,包括:

67、处理器,存储器,通信接口;

68、所述存储器用于存储所述处理器的可执行指令;

69、其中,所述处理器配置为经由执行所述可执行指令来执行第二方面所述的软件开发方法。

70、第七方面,本技术实施例提供一种软件开发系统,包括:

71、主智能体和软件开发过程中的每个软件开发阶段对应的子智能体;

72、所述主智能体用于执行第一方面任一项所述的软件开发方法;

73、所述子智能体用于执行第二方面所述的软件开发方法。

74、第八方面,本技术实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一项,或者第二方面所述的软件开发方法。

75、第九方面,本技术实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时用于实现第一方面任一项,或者第二方面所述的软件开发方法。

76、本技术实施例提供的软件开发方法、装置、设备、系统、存储介质及程序产品,通过主智能体获取到软件需求文件后,在软件开发过程中的各个软件开发阶段的预设触发条件成立时,根据软件需求文件和接收到的阶段文件确定对应的目标文件,再将该目标文件的文件存储路径发送至该软件开发阶段对应的子智能体。子智能体会根据文件存储路径获取到目标文件,进而运行生成阶段文件,或生成阶段文件和目标软件,将阶段文件发送至主智能体。本方案通过主智能体与子智能体协同生成目标软件,减少单一处理主体持续维护大量全流程上下文所带来的负担,并实现阶段输入输出的有序衔接与状态记录,进而提高软件开发的效率、软件与用户需求的匹配度、可控性与可追溯性。