CN117369864A - 一种基于人工智能的集成化软件开发处理方法及系统 - Google Patents

一种基于人工智能的集成化软件开发处理方法及系统 Download PDF

Info

Publication number
CN117369864A
CN117369864A CN202311652917.5A CN202311652917A CN117369864A CN 117369864 A CN117369864 A CN 117369864A CN 202311652917 A CN202311652917 A CN 202311652917A CN 117369864 A CN117369864 A CN 117369864A
Authority
CN
China
Prior art keywords
integrated element
element component
integrated
software service
training
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202311652917.5A
Other languages
English (en)
Other versions
CN117369864B (zh
Inventor
孙文刚
黄伟
庄永杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Photon Yuedong Technology Co ltd
Original Assignee
Shenzhen Photon Yuedong Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Photon Yuedong Technology Co ltd filed Critical Shenzhen Photon Yuedong Technology Co ltd
Priority to CN202311652917.5A priority Critical patent/CN117369864B/zh
Publication of CN117369864A publication Critical patent/CN117369864A/zh
Application granted granted Critical
Publication of CN117369864B publication Critical patent/CN117369864B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0499Feedforward networks

Abstract

本申请实施例涉及人工智能技术领域,具体涉及一种基于人工智能的集成化软件开发处理方法及系统,提供了一种系统性的方法来收集、整合和分析软件服务构建和版本管理的信息,形成了一个全面且深入的联动集成开发知识向量。这不仅可以帮助更有效地监控和优化软件构建过程,更好地跟踪和管理版本更新,而且还能为提供重要的参考信息来指导软件服务的发布处理。如此,能够改善传统技术难以高质量地实现软件应用的开发和发布的技术问题。

Description

一种基于人工智能的集成化软件开发处理方法及系统
技术领域
本申请涉及人工智能技术领域,特别涉及一种基于人工智能的集成化软件开发处理方法及系统。
背景技术
集成化软件开发处理(Integrated Software Development Process)是一种综合的软件开发方法,它涵盖了软件开发生命周期中的所有阶段,包括需求分析、设计、编码、测试和维护等。这种方法强调各个阶段之间的紧密联系和无缝衔接,以提高开发效率并保证软件质量。
在集成化软件开发过程中,使用了诸如版本控制系统、持续集成/持续部署工具(CI/CD)、单元测试框架、代码审查工具、项目管理工具等,使得开发者可以更专注于实现业务逻辑,而非被琐碎的开发环节所困扰。此外,这种开发方式也鼓励团队之间的协作和交流,因为从项目的开始到结束,所有的步骤都是互相连接的。团队成员需要共享信息,确保他们对整个项目有一个共同的理解,以便在项目进行过程中做出正确的决策。总体来说,集成化软件开发处理的目标是通过优化和自动化一些日常任务,来减少错误、提高效率,并最终产生高质量的软件产品。
发明内容
为改善相关技术中存在的技术问题,本申请提供了一种基于人工智能的集成化软件开发处理方法及系统。
第一方面,本申请实施例提供了一种基于人工智能的集成化软件开发处理方法,应用于集成化软件开发处理系统,所述方法包括:
获得目标软件服务对应的初始软件服务构建记录,所述初始软件服务构建记录包括所述目标软件服务的打包细节数据和所述目标软件服务相关的最少一个初始版本元数据;
获得所述目标软件服务对应的次级软件服务构建记录,所述次级软件服务构建记录包括所述目标软件服务相关的最少一个次级版本元数据,所述初始版本元数据和所述次级版本元数据表征所述目标软件服务的版本变化,所述初始软件服务构建记录和所述次级软件服务构建记录是通过相异的持续集成系统生成的;
依据所述目标软件服务的打包细节数据,获得所述目标软件服务的软件开发构建向量;
将所述目标软件服务的软件开发构建向量与所述目标软件服务相关的每个版本元数据的描述知识进行集成,得到所述目标软件服务对应的联动集成开发知识向量;所述联动集成开发知识向量用于指导目标软件服务的发布处理。
在一些方案中,所述获得所述目标软件服务对应的次级软件服务构建记录之后,所述方法还包括:
针对所述目标软件服务相关的每个版本元数据,获得与所述版本元数据相关的最少一条镜像环境配置信息,所述镜像环境配置信息包括与所述目标软件服务不同的其他软件服务对应的软件服务构建记录、容器服务实例对应的容器服务实例日志或与所述版本元数据不同的其他版本元数据中的最少一项;
所述将所述目标软件服务的软件开发构建向量与所述目标软件服务相关的每个版本元数据的描述知识进行集成,得到所述目标软件服务对应的联动集成开发知识向量,包括:
将所述目标软件服务的软件开发构建向量、所述目标软件服务相关的版本元数据的描述知识以及每条镜像环境配置信息对应的镜像环境配置要素进行集成,得到所述目标软件服务对应的联动集成开发知识向量。
在一些方案中,所述获得与所述版本元数据相关的最少一条镜像环境配置信息,包括:
获得与所述版本元数据直接相关的镜像环境配置信息,将当前获得到的镜像环境配置信息确定为第1阶镜像环境配置信息,与所述版本元数据直接相关的镜像环境配置信息包括匹配所述版本元数据的其他软件服务对应的软件服务构建记录、匹配所述版本元数据的容器服务实例对应的容器服务实例日志或所述版本元数据的关联版本元数据中最少一项;
获得与第u阶镜像环境配置信息直接相关的镜像环境配置信息,将当前获得到的镜像环境配置信息确定为第u+1阶镜像环境配置信息,直至获得到第Q阶镜像环境配置信息,u为大于0且小于Q的整数,Q为大于1的整数。
在一些方案中,所述第u阶镜像环境配置信息为与所述目标软件服务不同的其他软件服务对应的软件服务构建记录,与所述第u阶镜像环境配置信息直接相关的镜像环境配置信息包括与所述目标软件服务不同的其他软件服务所对应的版本元数据或目标容器服务实例对应的容器服务实例日志中的最少一项,与所述目标软件服务不同的其他软件服务对所述目标容器服务实例实施过目标加载行为;
或者,所述第u阶镜像环境配置信息为容器服务实例对应的容器服务实例日志,与所述第u阶镜像环境配置信息直接相关的镜像环境配置信息包括所述容器服务实例所对应的版本元数据或对所述容器服务实例实施过目标加载行为的软件服务对应的软件服务构建记录中的最少一项;
或者,所述第u阶镜像环境配置信息为第三版本元数据,与所述第u阶镜像环境配置信息直接相关的镜像环境配置信息包括匹配所述第三版本元数据的软件服务对应的软件服务构建记录、匹配所述第三版本元数据的容器服务实例对应的容器服务实例日志或所述第三版本元数据的关联版本元数据中的最少一项,所述第三版本元数据与所述初始版本元数据和所述次级版本元数据皆相异。
在一些方案中,所述方法还包括:
构造所述目标软件服务对应的目标软件服务集成元素组件、所述目标软件服务相关的每个版本元数据对应的版本集成元素组件以及所述每条镜像环境配置信息对应的镜像环境配置集成元素组件;
将所述目标软件服务集成元素组件与每个版本集成元素组件相连,将每个版本集成元素组件与直接相关的镜像环境配置信息所对应的镜像环境配置集成元素组件相连,将直接相连的每两个镜像环境配置信息对应的镜像环境配置集成元素组件相连,得到集成网络映射拓扑;
所述将所述目标软件服务的软件开发构建向量、所述目标软件服务相关的版本元数据的描述知识以及每条镜像环境配置信息对应的镜像环境配置要素进行集成,得到所述目标软件服务对应的联动集成开发知识向量,包括:
将所述集成网络映射拓扑中所述目标软件服务集成元素组件对应的集成元素组件描述知识与第一相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述目标软件服务集成元素组件优化后的集成元素组件描述知识,所述目标软件服务对应的集成元素组件描述知识为所述目标软件服务的软件开发构建向量,所述第一相关集成元素组件为所述集成网络映射拓扑中与所述目标软件服务集成元素组件直接相连或间接相连的集成元素组件,所述目标软件服务集成元素组件优化后的集成元素组件描述知识用于表征所述目标软件服务对应的联动集成开发知识向量。
在一些方案中,所述将所述集成网络映射拓扑中所述目标软件服务集成元素组件对应的集成元素组件描述知识与第一相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述目标软件服务集成元素组件优化后的集成元素组件描述知识,包括:
将多个第一相关集成元素组件对应的集成元素组件描述知识进行集成,将集成后的知识向量与所述目标软件服务集成元素组件对应的集成元素组件描述知识进行聚合,得到第一集成元素组件聚合向量;
对所述第一集成元素组件聚合向量进行向量投影,将向量投影结果确定为所述目标软件服务集成元素组件优化后的集成元素组件描述知识。
在一些方案中,所述多个第一相关集成元素组件包括v阶相关集成元素组件,每个第r阶相关集成元素组件与一个第r-1阶相关集成元素组件直接相连,每个第1阶相关集成元素组件与所述目标软件服务集成元素组件直接相连,r为大于1且不大于v的整数,v为大于1的整数;
所述将多个第一相关集成元素组件对应的集成元素组件描述知识进行集成,将集成后的知识向量与所述目标软件服务集成元素组件对应的集成元素组件描述知识进行聚合,得到第一集成元素组件聚合向量,包括:
对于每个第r-1阶相关集成元素组件,将与所述第r-1阶相关集成元素组件直接相连的第r阶相关集成元素组件对应的集成元素组件描述知识,与所述第r-1阶相关集成元素组件对应的集成元素组件描述知识进行集成,将集成后的知识向量确定为所述第r-1阶相关集成元素组件优化后的集成元素组件描述知识,直至获得到每个所述第1阶相关集成元素组件优化后的集成元素组件描述知识;
将所述第1阶相关集成元素组件优化后的集成元素组件描述知识进行集成,将集成后的知识向量与所述目标软件服务集成元素组件对应的集成元素组件描述知识进行聚合,得到所述第一集成元素组件聚合向量。
在一些方案中,所述将所述集成网络映射拓扑中所述目标软件服务集成元素组件对应的集成元素组件描述知识与第一相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述目标软件服务集成元素组件优化后的集成元素组件描述知识,包括:
基于深度残差网络,将所述集成网络映射拓扑中所述目标软件服务集成元素组件对应的集成元素组件描述知识与第一相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述目标软件服务集成元素组件优化后的集成元素组件描述知识。
在一些方案中,所述方法还包括:
获得训练集成网络映射拓扑,所述训练集成网络映射拓扑包括多个集成元素组件,所述多个集成元素组件包括训练软件服务集成元素组件以及版本集成元素组件,存在联系的任两个集成元素组件之间相连;
将所述训练集成网络映射拓扑中的任一版本集成元素组件,确定为训练集成元素组件,获得训练表征信息,所述训练表征信息表征所述训练软件服务集成元素组件与所述训练集成元素组件之间是否相连;
依据所述深度残差网络,将所述训练集成网络映射拓扑中所述训练软件服务集成元素组件对应的集成元素组件描述知识与第二相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述训练软件服务集成元素组件优化后的集成元素组件描述知识,所述第二相关集成元素组件为所述训练集成网络映射拓扑中与所述训练软件服务集成元素组件直接相连或间接相连的集成元素组件;
依据所述深度残差网络,将所述训练集成网络映射拓扑中所述训练集成元素组件对应的集成元素组件描述知识与第三相关集成元素组件对应的集成元素组件描述知识进行集成,得到训练集成元素组件优化后的集成元素组件描述知识,所述第三相关集成元素组件为所述训练集成网络映射拓扑中与所述训练集成元素组件直接相连或间接相连的集成元素组件;
依据所述训练软件服务集成元素组件优化后的集成元素组件描述知识及所述训练集成元素组件优化后的集成元素组件描述知识,获得表征预测结果,所述表征预测结果反映判别出的所述训练软件服务集成元素组件与所述训练集成元素组件之间相连的概率;
依据所述表征预测结果及所述训练表征信息,对所述深度残差网络进行调试。
在一些方案中,所述方法还包括:
获得训练集成网络映射拓扑,所述训练集成网络映射拓扑包括多个集成元素组件,所述多个集成元素组件包括多个训练软件服务集成元素组件以及版本集成元素组件,存在联系的任两个集成元素组件之间相连;
依据所述训练集成网络映射拓扑中集成元素组件之间的相连关系,获得所述训练集成网络映射拓扑中每两个训练软件服务集成元素组件之间的同源集成元素组件个数,所述同源集成元素组件个数表征所述两个训练软件服务集成元素组件共同相连的集成元素组件的个数;
针对所述训练集成网络映射拓扑中的每个训练软件服务集成元素组件,依据所述深度残差网络,将所述训练软件服务集成元素组件对应的集成元素组件描述知识与第二相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述训练软件服务集成元素组件优化后的集成元素组件描述知识,所述第二相关集成元素组件为所述训练集成网络映射拓扑中与所述训练软件服务集成元素组件直接相连或间接相连的集成元素组件;
基于每两个训练软件服务集成元素组件优化后的集成元素组件描述知识,获得第一共性评分,所述第一共性评分反映判别出的所述两个训练软件服务集成元素组件对应的训练软件服务之间的类似性;
依据所述每两个训练软件服务集成元素组件对应的同源集成元素组件个数以及对应的第一共性评分,对所述深度残差网络进行调试。
在一些方案中,所述方法还包括:
依据所述目标软件服务对应的联动集成开发知识向量,获得所述目标软件服务的关联软件服务;
获得与所述关联软件服务匹配的容器服务实例;
向所述目标软件服务下发所述容器服务实例
第二方面,本申请还提供了一种集成化软件开发处理系统,包括处理器和存储器;所述处理器和所述存储器通信连接,所述处理器用于从所述存储器中读取计算机程序并执行,以实现上述的方法。
第三方面,本申请还提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现上述的方法。
可见,本申请实施例提供了一种系统性的方法来收集、整合和分析软件服务构建和版本管理的信息,形成了一个全面且深入的联动集成开发知识向量。这不仅可以帮助更有效地监控和优化软件构建过程,更好地跟踪和管理版本更新,而且还能为提供重要的参考信息来指导软件服务的发布处理。如此,能够改善传统技术难以高质量地实现软件应用的开发和发布的技术问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并于说明书一起用于解释本申请的原理。
图1是本申请实施例提供的一种基于人工智能的集成化软件开发处理方法的流程示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与本申请的一些方面相一致的装置和方法的例子。
需要说明的是,本申请的说明书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例所提供的方法实施例可以在集成化软件开发处理系统、计算机设备或者类似的运算装置中执行。以运行在集成化软件开发处理系统上为例,集成化软件开发处理系统可以包括一个或多个处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器,可选地,上述集成化软件开发处理系统还可以包括用于通信功能的传输装置。本领域普通技术人员可以理解,上述结构仅为示意,其并不对上述集成化软件开发处理系统的结构造成限定。例如,集成化软件开发处理系统还可包括比上述所示更多或者更少的组件,或者具有与上述所示不同的配置。
存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的一种基于人工智能的集成化软件开发处理方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至集成化软件开发处理系统。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括集成化软件开发处理系统的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
基于此,请参阅图1,图1是本申请实施例所提供的一种基于人工智能的集成化软件开发处理方法的流程示意图,该方法应用于集成化软件开发处理系统,进一步可以包括步骤110-步骤140。
步骤110、获得目标软件服务对应的初始软件服务构建记录,所述初始软件服务构建记录包括所述目标软件服务的打包细节数据和所述目标软件服务相关的最少一个初始版本元数据。
在步骤110中,目标软件服务是本申请实施例想要构建或更新的特定软件。例如,它可能是一个Web应用程序、一个数据库系统、一个API接口等。
初始软件服务构建记录是关于目标软件服务最初版本的详细记录。这可能包括软件服务最初版本的开发时间、开发人员、使用的编程语言和框架、功能描述等。例如,对于一个Web应用程序,初始构建记录可能会记录它是在何时由哪个团队使用Java和Spring Boot框架开发的,以及它具有用户注册、登录和信息浏览等功能。
打包细节数据是关于如何将目标软件服务的源代码打包为可部署的软件包的详细信息。例如,对于Java Web应用程序,打包细节可能包括使用Maven或Gradle进行构建、使用的构建命令、需要的环境变量等。
初始版本元数据是关于目标软件服务初始版本的额外信息,通常包含版本号、发布日期、开发者、修订历史等。例如,一个Web应用程序的初始版本元数据可能包括版本号v1.0,发布日期2020年1月1日,主要开发者的姓名等。
假设有一个在线购物网站作为目标软件服务,首先从持续集成系统中获取该服务的初始构建记录,包括它是由谁、在何时、使用什么技术栈(如Java和Spring Boot)开发的,以及它具有哪些功能(如商品浏览、购物车、在线支付等)。也会获取打包细节数据,例如使用Maven进行构建、需要JDK 1.8环境等。此外,还会获得初始版本元数据,例如初始版本号v1.0,发布日期2020年1月1日等。
步骤120、获得所述目标软件服务对应的次级软件服务构建记录,所述次级软件服务构建记录包括所述目标软件服务相关的最少一个次级版本元数据,所述初始版本元数据和所述次级版本元数据表征所述目标软件服务的版本变化,所述初始软件服务构建记录和所述次级软件服务构建记录是通过相异的持续集成系统生成的。
在步骤120中,次级软件服务构建记录是关于目标软件服务后续版本(即次级版本)的详细记录。与初始软件服务构建记录类似,这可能包括软件服务此版本的开发时间、开发人员、使用的编程语言和框架、功能描述等。例如,对于一个Web应用程序,次级构建记录可能会记录某一次升级增加了商品评论功能,由哪个团队在何时进行的开发。
次级版本元数据是关于目标软件服务后续版本的额外信息,通常包含版本号、发布日期、开发者、修订历史等。例如,一个Web应用程序的次级版本元数据可能包括版本号v1.1,发布日期2020年2月1日,主要开发者的姓名等。
版本变化是指软件从一个版本升级到另一个版本的过程中所做的修改,这些修改可能包括新功能的添加、旧功能的改进或删除、bug的修复等。版本变化通常通过比较不同版本的元数据以及软件构建记录来获得。
持续集成系统是用于自动化软件开发过程中的构建和测试的工具,例如Jenkins系统。Jenkins是一个流行的开源持续集成工具,它可以配置各种构建任务,自动执行如代码编译、单元测试、静态代码分析等步骤,然后生成构建记录。
继续以在线购物网站为例,假设在初始版本发布后,开发团队增加了商品评论功能并修复了一些bug。这个新版本的软件服务构建记录就是次级软件服务构建记录,它会记录新增的商品评论功能和修复的bug等信息。同时,也会获取此次升级的版本元数据,如版本号v1.1,发布日期2020年2月1日,主要开发者的姓名等。可以通过比较初始版本和次级版本的元数据以及构建记录,来了解版本变化,例如,可以知道新版本增加了商品评论功能,并修复了一些bug。所有这些信息都是通过Jenkins这样的持续集成系统自动收集和生成的。
步骤130、依据所述目标软件服务的打包细节数据,获得所述目标软件服务的软件开发构建向量。
在步骤130中,软件开发构建向量是一个在多维度上描述软件构建过程的向量。向量的每个维度可以代表一个特定的构建属性,如编译时间、测试覆盖率、错误数量等。例如,对于一个Web应用程序,一个可能的构建向量可能包括以下维度:源代码行数、依赖库数量、单元测试覆盖率、静态代码分析警告数、构建时间等。
以在线购物网站为例,可以根据目标软件服务的打包细节数据计算出软件开发构建向量。例如,假设的打包细节数据显示,构建过程中使用了Maven进行编译和打包,运行了1000个单元测试,覆盖率为80%,产生了10个静态代码分析警告,构建总时间为5分钟。那么,的软件开发构建向量可能就是[1000,80%,10,5]。这个向量为提供了关于软件构建过程的详细信息,可以通过它来了解软件构建过程的各个方面,如测试情况、代码质量、构建效率等。
步骤140、将所述目标软件服务的软件开发构建向量与所述目标软件服务相关的每个版本元数据的描述知识进行集成,得到所述目标软件服务对应的联动集成开发知识向量;所述联动集成开发知识向量用于指导目标软件服务的发布处理。
在步骤140中,描述知识是对软件版本元数据的解释或详细描述,可能包括每个版本所增加的功能、修复的bug、更改的设计等信息。例如,对于一个Web应用程序,v1.1版本的描述知识可能包括添加了商品评论功能,修复了购物车不能清空的问题等。
进一步地,描述知识可以看作是版本元数据的特征信息。它包含了关于软件版本的具体变化和特点的详细描述,提供了对版本元数据更深层次的理解。例如,一个Web应用程序的版本元数据可能包括版本号、发布日期和主要开发者等基本信息,而描述知识则可能会进一步包含该版本增加了哪些新功能、优化了哪些性能、修复了哪些bug等信息。这些都是版本元数据的重要特征,因为它们直接影响到软件的功能和性能。比如,在之前的在线购物网站的例子中,版本元数据可能告诉新版本是v1.1,发布日期是2020年2月1日。而描述知识则可能会补充说,这个新版本添加了商品评论功能,并且修复了购物车不能清空的问题。这样,就可以了解到这个版本相比之前的版本有何改进和提升。在软件开发和维护过程中,描述知识非常重要,因为它可以帮助开发团队和用户了解每个版本的具体变化,从而更好地使用和改进软件。
集成指的是将不同的信息源(如软件开发构建向量和版本元数据的描述知识)结合起来,形成一个统一的视图或模型。集成可以通过各种方式进行,例如简单地将信息拼接在一起,或者使用更复杂的算法(如机器学习模型)进行集成。
联动集成开发知识向量是一个结合了软件开发构建向量和描述知识的复合向量。这个向量可以提供关于软件服务版本变化、构建过程、新功能等全方位的信息,有助于更好地理解和管理软件服务。
继续以在线购物网站为例,假设已经获得了软件开发构建向量[1000,80%,10,5]和v1.1版本的描述知识添加了商品评论功能,修复了购物车不能清空的问题。可以将这两部分信息集成在一起,形成一个联动集成开发知识向量。具体来说,可能会将描述知识转化为一个编码(如使用NLP技术进行文本编码),然后与软件开发构建向量拼接在一起。得到的联动集成开发知识向量可以用于指导目标软件服务的发布处理,例如,它可以告诉是否需要进行更多的测试,或者新功能是否可能影响构建时间等。
应用步骤110-步骤140,首先,步骤110与步骤120使能够获得初始和次级版本的软件服务构建记录和元数据,这为提供了软件服务从最初到现在的详细变化情况。可以通过比较不同版本的构建记录和元数据,来了解版本间的差异和变化,这对于跟踪和管理软件服务的版本更新是非常有用的。接着,步骤130进一步将这些打包细节数据转化为了一个标准化的软件开发构建向量。这个向量量化了构建过程中的各种特征,如编译时间、测试覆盖率等,使得能更精确地度量和分析软件构建过程。最后,步骤140则将软件开发构建向量与每个版本元数据的描述知识进行集成,形成了一个联动集成开发知识向量。这个向量结合了软件构建过程的量化信息和版本变化的具体描述,提供了一个全面且深入的视图来理解和管理软件服务。
可见,本申请实施例提供了一种系统性的方法来收集、整合和分析软件服务构建和版本管理的信息,形成了一个全面且深入的联动集成开发知识向量。这不仅可以帮助更有效地监控和优化软件构建过程,更好地跟踪和管理版本更新,而且还能为提供重要的参考信息来指导软件服务的发布处理。如此,能够改善传统技术难以高质量地实现软件应用的开发和发布的技术问题。
在另外一些可能的实施例中,在步骤120获得所述目标软件服务对应的次级软件服务构建记录之后,所述方法还包括步骤200。
步骤200、针对所述目标软件服务相关的每个版本元数据,获得与所述版本元数据相关的最少一条镜像环境配置信息,所述镜像环境配置信息包括与所述目标软件服务不同的其他软件服务对应的软件服务构建记录、容器服务实例对应的容器服务实例日志或与所述版本元数据不同的其他版本元数据中的最少一项。
在步骤200中,镜像环境配置信息是关于软件服务运行环境的配置信息。它可能包括操作系统版本、使用的库和框架的版本、环境变量设置等。例如,一个Java Web应用程序的镜像环境配置信息可能包括操作系统是Ubuntu 18.04,Java版本是JDK 1.8,数据库是MySQL 5.7等。
容器服务实例是在容器中运行的软件服务的实例。例如,如果的在线购物网站在Docker容器中运行,那么每个运行中的网站就是一个容器服务实例。
容器服务实例日志是容器服务实例在运行过程中生成的日志信息。日志可能包括服务的启动时间、错误信息、用户请求和响应等。
镜像环境配置要素是构成镜像环境配置信息的各个部分。例如,操作系统版本、Java版本和数据库版本都是镜像环境配置要素。
以在线购物网站为例,假设有多个版本的网站在不同的容器中运行。对于每个版本,都会获取与其相关的镜像环境配置信息,如操作系统是Ubuntu 18.04,Java版本是JDK1.8,数据库是MySQL 5.7等。同时,还会获取每个容器服务实例的日志信息,如启动时间、错误信息等。
基于此,步骤140中的所述将所述目标软件服务的软件开发构建向量与所述目标软件服务相关的每个版本元数据的描述知识进行集成,得到所述目标软件服务对应的联动集成开发知识向量,包括步骤1400。
步骤1400、将所述目标软件服务的软件开发构建向量、所述目标软件服务相关的版本元数据的描述知识以及每条镜像环境配置信息对应的镜像环境配置要素进行集成,得到所述目标软件服务对应的联动集成开发知识向量。
在得到软件开发构建向量、版本元数据的描述知识和镜像环境配置信息后,会将这些信息集成在一起,形成一个更全面的联动集成开发知识向量。例如,可能会将软件开发构建向量[1000,80%,10,5]、描述知识【添加了商品评论功能,修复了购物车不能清空的问题】和镜像环境配置要素(如操作系统是Ubuntu 18.04,Java版本是JDK 1.8,数据库是MySQL 5.7等)集成在一起。这样,就得到了一个包含软件构建、版本变化和运行环境等多方面信息的联动集成开发知识向量,为指导软件服务的发布处理提供了更全面的参考信息。
在一些可能的示例中,步骤200所描述的获得与所述版本元数据相关的最少一条镜像环境配置信息,包括步骤210-步骤220。
步骤210、获得与所述版本元数据直接相关的镜像环境配置信息,将当前获得到的镜像环境配置信息确定为第1阶镜像环境配置信息,与所述版本元数据直接相关的镜像环境配置信息包括匹配所述版本元数据的其他软件服务对应的软件服务构建记录、匹配所述版本元数据的容器服务实例对应的容器服务实例日志或所述版本元数据的关联版本元数据中最少一项。
步骤220、获得与第u阶镜像环境配置信息直接相关的镜像环境配置信息,将当前获得到的镜像环境配置信息确定为第u+1阶镜像环境配置信息,直至获得到第Q阶镜像环境配置信息,u为大于0且小于Q的整数,Q为大于1的整数。
在上述示例中,每阶镜像环境配置信息是根据版本元数据和之前阶段的镜像环境配置信息逐级获得的新的镜像环境配置信息。例如,第1阶镜像环境配置信息可能包括与版本元数据直接相关的软件服务构建记录和容器服务实例日志,而第2阶镜像环境配置信息则可能包括与第1阶镜像环境配置信息直接相关的其他软件服务构建记录和容器服务实例日志,依此类推。
以在线购物网站为例,假设有一个版本v1.1的网站运行在Docker容器中。在这个步骤中,首先获取与v1.1版本直接相关的镜像环境配置信息,如操作系统是Ubuntu 18.04,Java版本是JDK 1.8,数据库是MySQL 5.7等。同时,还会获取与v1.1版本匹配的其他软件服务构建记录(如可能与此版本同时开发的其他微服务)和容器服务实例日志。这些信息被确定为第1阶镜像环境配置信息。接着,根据第1阶镜像环境配置信息来获取第2阶镜像环境配置信息。例如,可能会查找那些与第1阶镜像环境配置信息中的软件服务构建记录和容器服务实例日志直接相关的其他软件服务构建记录和容器服务实例日志。这些新获取的信息被确定为第2阶镜像环境配置信息。可以重复这个过程,直到获得到第Q阶镜像环境配置信息。通过这样的逐级获取过程,能够收集到更全面的镜像环境配置信息,这有助于更好地理解和管理软件服务的运行环境,以及更准确地指导软件服务的发布处理。
在设计思路1中,所述第u阶镜像环境配置信息为与所述目标软件服务不同的其他软件服务对应的软件服务构建记录,与所述第u阶镜像环境配置信息直接相关的镜像环境配置信息包括与所述目标软件服务不同的其他软件服务所对应的版本元数据或目标容器服务实例对应的容器服务实例日志中的最少一项,与所述目标软件服务不同的其他软件服务对所述目标容器服务实例实施过目标加载行为。
这个思路的主要特点是,根据与目标软件服务不同的其他软件服务对应的软件服务构建记录来获取镜像环境配置信息。例如,如果的在线购物网站在微服务架构下运行,那么除了网站本身的服务,还可能有一些如用户服务、商品服务等其他微服务。可以收集这些其他微服务的构建记录作为第u阶镜像环境配置信息。然后,可以进一步获得与这些构建记录直接相关的信息,如这些微服务对应的版本元数据或对目标容器服务实例实施过加载行为的日志信息。
或者,在设计思路2中,所述第u阶镜像环境配置信息为容器服务实例对应的容器服务实例日志,与所述第u阶镜像环境配置信息直接相关的镜像环境配置信息包括所述容器服务实例所对应的版本元数据或对所述容器服务实例实施过目标加载行为的软件服务对应的软件服务构建记录中的最少一项。
这个思路强调的是容器服务实例日志的重要性。以的在线购物网站为例,首先获取该网站在容器中运行时产生的日志作为第u阶镜像环境配置信息。这些日志可能包括服务启动和关闭时间、错误信息、资源使用情况等。然后,再进一步获取与这些日志直接相关的信息,如对应的版本元数据或对容器服务实例实施过加载行为的软件服务构建记录。
或者,在设计思路3中,所述第u阶镜像环境配置信息为第三版本元数据,与所述第u阶镜像环境配置信息直接相关的镜像环境配置信息包括匹配所述第三版本元数据的软件服务对应的软件服务构建记录、匹配所述第三版本元数据的容器服务实例对应的容器服务实例日志或所述第三版本元数据的关联版本元数据中的最少一项,所述第三版本元数据与所述初始版本元数据和所述次级版本元数据皆相异。
这个思路则是基于版本元数据来获取镜像环境配置信息。假设有一个名为“第三版本元数据”的版本,它与初始版本元数据和次级版本元数据都不同。首先获取与这个第三版本元数据匹配的软件服务构建记录和容器服务实例日志作为第u阶镜像环境配置信息。然后,再进一步获取与这些构建记录和日志直接相关的信息,如关联版本元数据等。
以上三种设计思路提供了不同的角度来获取和处理镜像环境配置信息,可以根据具体情况灵活选择使用。
在一些优选的实施例中,所述方法还包括步骤310-步骤320。
步骤310、构造所述目标软件服务对应的目标软件服务集成元素组件、所述目标软件服务相关的每个版本元数据对应的版本集成元素组件以及所述每条镜像环境配置信息对应的镜像环境配置集成元素组件。
步骤320、将所述目标软件服务集成元素组件与每个版本集成元素组件相连,将每个版本集成元素组件与直接相关的镜像环境配置信息所对应的镜像环境配置集成元素组件相连,将直接相连的每两个镜像环境配置信息对应的镜像环境配置集成元素组件相连,得到集成网络映射拓扑。
在步骤310-步骤320中,目标软件服务集成元素组件是指代表目标软件服务的组件,其包含了目标软件服务的软件开发构建向量等信息。版本集成元素组件是代表每个版本元数据的组件,其包含了与版本元数据相关的描述知识等信息。镜像环境配置集成元素组件是代表每条镜像环境配置信息的组件,其包含了与镜像环境配置信息相关的要素等信息。集成网络映射拓扑是一个网络结构,其中的节点是上述三种类型的集成元素组件,边则表示这些组件之间的关系。例如,一个版本集成元素组件可能会与一个目标软件服务集成元素组件相连,表示这个版本是该软件服务的一个版本;同时,这个版本集成元素组件也可能会与多个镜像环境配置集成元素组件相连,表示这个版本使用了这些镜像环境配置。
以在线购物网站为例,首先构造出代表网站本身、各个版本和镜像环境配置的集成元素组件。然后,将这些组件按照它们之间的关系连接起来,形成一个集成网络映射拓扑。在这个拓扑中,网站本身的集成元素组件会与各个版本的集成元素组件相连,每个版本的集成元素组件又会与其对应的镜像环境配置的集成元素组件相连。
基于此,步骤1400中的所述将所述目标软件服务的软件开发构建向量、所述目标软件服务相关的版本元数据的描述知识以及每条镜像环境配置信息对应的镜像环境配置要素进行集成,得到所述目标软件服务对应的联动集成开发知识向量,包括步骤步骤141。
步骤141、将所述集成网络映射拓扑中所述目标软件服务集成元素组件对应的集成元素组件描述知识与第一相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述目标软件服务集成元素组件优化后的集成元素组件描述知识,所述目标软件服务对应的集成元素组件描述知识为所述目标软件服务的软件开发构建向量,所述第一相关集成元素组件为所述集成网络映射拓扑中与所述目标软件服务集成元素组件直接相连或间接相连的集成元素组件,所述目标软件服务集成元素组件优化后的集成元素组件描述知识用于表征所述目标软件服务对应的联动集成开发知识向量。
在得到集成网络映射拓扑后,可以通过它来优化目标软件服务集成元素组件的描述知识。具体来说,将目标软件服务集成元素组件的描述知识(即软件开发构建向量)与其直接或间接相连的所有集成元素组件的描述知识进行集成。这样,就得到了一个包含更多信息的联动集成开发知识向量。
可见,通过构造集成网络映射拓扑并基于它进行信息集成,能够获得一个包含软件构建、版本变化、运行环境等多方面信息的联动集成开发知识向量。这个向量不仅提供了对目标软件服务全面深入的理解,也能为指导软件服务的发布处理提供更准确的参考信息。
在一些可选的实施例中,步骤141中的将所述集成网络映射拓扑中所述目标软件服务集成元素组件对应的集成元素组件描述知识与第一相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述目标软件服务集成元素组件优化后的集成元素组件描述知识,包括步骤1411-步骤1412。
步骤1411、将多个第一相关集成元素组件对应的集成元素组件描述知识进行集成,将集成后的知识向量与所述目标软件服务集成元素组件对应的集成元素组件描述知识进行聚合,得到第一集成元素组件聚合向量。
步骤1412、对所述第一集成元素组件聚合向量进行向量投影,将向量投影结果确定为所述目标软件服务集成元素组件优化后的集成元素组件描述知识。
在步骤1411-步骤1412中,集成元素组件聚合向量是将多个第一相关集成元素组件对应的集成元素组件描述知识进行集成并与目标软件服务集成元素组件对应的集成元素组件描述知识进行聚合后得到的向量。例如,它可能是由多个版本集成元素组件和镜像环境配置集成元素组件的描述知识与目标软件服务集成元素组件的描述知识聚合得到的。
向量投影是一种将高维向量映射到低维空间的方法,通常用于降低数据的维度以便于处理和分析。例如,可以使用主成分分析(PCA)或者自编码器(Autoencoder)等方法进行向量投影。
优化后的集成元素组件描述知识是经过向量投影后得到的新的描述知识,它既包含了原始的集成元素组件描述知识,又包含了通过投影引入的新的信息。
以在线购物网站为例,首先将多个版本集成元素组件和镜像环境配置集成元素组件的描述知识进行集成,并与网站本身的集成元素组件描述知识(即软件开发构建向量)进行聚合,得到一个集成元素组件聚合向量。然后,将这个聚合向量进行向量投影,得到一个新的描述知识,它既包含了原始的软件构建信息,又包含了通过投影引入的新的信息。
应用步骤1411-步骤1412,能够将大量的、可能维度很高的集成元素组件描述知识有效地整合在一起,并将其降维为一个易于处理和分析的向量。这样,就可以得到一个包含更多信息的、经过优化的联动集成开发知识向量,这对于理解和管理目标软件服务的全生命周期非常有用。
在一些示例下,所述多个第一相关集成元素组件包括v阶相关集成元素组件,每个第r阶相关集成元素组件与一个第r-1阶相关集成元素组件直接相连,每个第1阶相关集成元素组件与所述目标软件服务集成元素组件直接相连,r为大于1且不大于v的整数,v为大于1的整数。基于此,则步骤1411中的将多个第一相关集成元素组件对应的集成元素组件描述知识进行集成,将集成后的知识向量与所述目标软件服务集成元素组件对应的集成元素组件描述知识进行聚合,得到第一集成元素组件聚合向量,包括步骤14111-步骤14112。
步骤14111、对于每个第r-1阶相关集成元素组件,将与所述第r-1阶相关集成元素组件直接相连的第r阶相关集成元素组件对应的集成元素组件描述知识,与所述第r-1阶相关集成元素组件对应的集成元素组件描述知识进行集成,将集成后的知识向量确定为所述第r-1阶相关集成元素组件优化后的集成元素组件描述知识,直至获得到每个所述第1阶相关集成元素组件优化后的集成元素组件描述知识。
步骤14112、将所述第1阶相关集成元素组件优化后的集成元素组件描述知识进行集成,将集成后的知识向量与所述目标软件服务集成元素组件对应的集成元素组件描述知识进行聚合,得到所述第一集成元素组件聚合向量。
在步骤14111-步骤14112中,每阶相关集成元素组件优化后的集成元素组件描述知识是通过将某一阶级的相关集成元素组件与其下一阶级的相关集成元素组件进行集成得到的新的描述知识。例如,可能会将第2阶相关集成元素组件的描述知识与第1阶相关集成元素组件的描述知识进行集成,得到一个新的第1阶相关集成元素组件优化后的集成元素组件描述知识。
以在线购物网站为例,假设有3阶相关集成元素组件,即有3个不同阶级的版本或镜像环境配置信息。在步骤14111中,首先将第3阶相关集成元素组件的描述知识与第2阶相关集成元素组件的描述知识进行集成,得到一个新的第2阶相关集成元素组件优化后的描述知识;然后,将这个新的描述知识与第1阶相关集成元素组件的描述知识进行集成,得到第1阶相关集成元素组件优化后的描述知识。在步骤14112中,将这个最终的描述知识与网站本身的集成元素组件描述知识(即软件开发构建向量)进行聚合,得到一个集成元素组件聚合向量。
应用步骤14111-步骤14112,能够按阶级顺序将各级相关集成元素组件的描述知识有效地整合在一起,并最终与目标软件服务集成元素组件的描述知识进行聚合。这样,就可以得到一个包含了多个阶级信息、经过优化的联动集成开发知识向量,这对于理解和管理目标软件服务的全生命周期非常有用。
在另外一些实施例中,步骤141所描述的将所述集成网络映射拓扑中所述目标软件服务集成元素组件对应的集成元素组件描述知识与第一相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述目标软件服务集成元素组件优化后的集成元素组件描述知识,包括步骤1410。
步骤1401、基于深度残差网络,将所述集成网络映射拓扑中所述目标软件服务集成元素组件对应的集成元素组件描述知识与第一相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述目标软件服务集成元素组件优化后的集成元素组件描述知识。
在本申请实施例中,深度残差网络(Deep Residual Network,简称ResNet)是一种深度学习模型,它通过引入“残差块”来解决深度神经网络中的梯度消失和梯度爆炸问题,从而可以训练更深的网络结构。在每个残差块中,原始的输入信息会被直接传递到输出端,与该层的计算结果相加,这样就形成了一条“捷径”,使得原始信息可以不受中间计算影响地直接传递下去。
在此步骤中,使用深度残差网络来将目标软件服务集成元素组件的描述知识与第一相关集成元素组件的描述知识进行集成。例如,假设的目标软件服务集成元素组件对应的集成元素组件描述知识是一个向量,表示了在线购物网站的软件开发构建信息;同时,还有一个第一相关集成元素组件的描述知识,它也是一个向量,表示了网站版本的信息。可以将这两个向量作为深度残差网络的输入,通过网络的计算,得到一个新的向量,它既包含了原始的软件构建信息,又包含了版本信息,这就是需要的目标软件服务集成元素组件优化后的集成元素组件描述知识。
如此一来,能够利用深度残差网络的强大表征能力,将各种类型的集成元素组件描述知识有效地整合在一起。这样,就可以得到一个包含了多方面信息、经过优化的联动集成开发知识向量,这对于理解和管理目标软件服务的全生命周期非常有用。此外,由于深度残差网络的引入,还可以处理更复杂、更深层次的关系,进一步提升了方法的灵活性和通用性。
在另外的一些设计思路下,所述方法还包括步骤410-步骤460。
步骤410、获得训练集成网络映射拓扑,所述训练集成网络映射拓扑包括多个集成元素组件,所述多个集成元素组件包括训练软件服务集成元素组件以及版本集成元素组件,存在联系的任两个集成元素组件之间相连。
步骤420、将所述训练集成网络映射拓扑中的任一版本集成元素组件,确定为训练集成元素组件,获得训练表征信息,所述训练表征信息表征所述训练软件服务集成元素组件与所述训练集成元素组件之间是否相连。
步骤430、依据所述深度残差网络,将所述训练集成网络映射拓扑中所述训练软件服务集成元素组件对应的集成元素组件描述知识与第二相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述训练软件服务集成元素组件优化后的集成元素组件描述知识,所述第二相关集成元素组件为所述训练集成网络映射拓扑中与所述训练软件服务集成元素组件直接相连或间接相连的集成元素组件。
步骤440、依据所述深度残差网络,将所述训练集成网络映射拓扑中所述训练集成元素组件对应的集成元素组件描述知识与第三相关集成元素组件对应的集成元素组件描述知识进行集成,得到训练集成元素组件优化后的集成元素组件描述知识,所述第三相关集成元素组件为所述训练集成网络映射拓扑中与所述训练集成元素组件直接相连或间接相连的集成元素组件。
步骤450、依据所述训练软件服务集成元素组件优化后的集成元素组件描述知识及所述训练集成元素组件优化后的集成元素组件描述知识,获得表征预测结果,所述表征预测结果反映判别出的所述训练软件服务集成元素组件与所述训练集成元素组件之间相连的概率。
步骤460、依据所述表征预测结果及所述训练表征信息,对所述深度残差网络进行调试。
在上述设计思路下,训练集成网络映射拓扑是一个包含多个集成元素组件的网络,其中的元素组件被用作训练样本,包括训练软件服务集成元素组件和版本集成元素组件。任何两个有联系的组件之间都会相连,构成了网络的结构。
训练表征信息是反映训练软件服务集成元素组件与训练集成元素组件之间关系的信息,可以视为训练样本的标签。例如,如果这两个组件之间有直接或间接的联系,则训练表征信息可能是1;否则,它可能是0。
以在线购物网站为例,假设已经有了一些过去的数据,包括了不同版本的网站和对应的软件开发构建向量,以及这些版本之间的关系。首先在步骤410中构造出训练集成网络映射拓扑,然后在步骤420中获得训练表征信息。接着,在步骤430和步骤440中,使用深度残差网络对这些数据进行学习,并获取了优化后的集成元素组件描述知识。最后,在步骤450中,根据优化后的描述知识预测出了新的表征预测结果,然后在步骤460中依据这个预测结果和训练表征信息对深度残差网络进行调试。
如此,便可以训练出一个能够预测网站版本之间关系的模型,这个模型不仅包含了原始的软件构建信息,还包含了通过深度残差网络学习到的其他相关信息。这将有助于更好地理解和管理目标软件服务的全生命周期。
在又一些可能的实施例中,所述方法还包括步骤510-步骤550。
步骤510、获得训练集成网络映射拓扑,所述训练集成网络映射拓扑包括多个集成元素组件,所述多个集成元素组件包括多个训练软件服务集成元素组件以及版本集成元素组件,存在联系的任两个集成元素组件之间相连。
步骤520、依据所述训练集成网络映射拓扑中集成元素组件之间的相连关系,获得所述训练集成网络映射拓扑中每两个训练软件服务集成元素组件之间的同源集成元素组件个数,所述同源集成元素组件个数表征所述两个训练软件服务集成元素组件共同相连的集成元素组件的个数。
步骤530、针对所述训练集成网络映射拓扑中的每个训练软件服务集成元素组件,依据所述深度残差网络,将所述训练软件服务集成元素组件对应的集成元素组件描述知识与第二相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述训练软件服务集成元素组件优化后的集成元素组件描述知识,所述第二相关集成元素组件为所述训练集成网络映射拓扑中与所述训练软件服务集成元素组件直接相连或间接相连的集成元素组件。
步骤540、基于每两个训练软件服务集成元素组件优化后的集成元素组件描述知识,获得第一共性评分,所述第一共性评分反映判别出的所述两个训练软件服务集成元素组件对应的训练软件服务之间的类似性。
步骤550、依据所述每两个训练软件服务集成元素组件对应的同源集成元素组件个数以及对应的第一共性评分,对所述深度残差网络进行调试。
应用步骤510-步骤550,通过获取训练集成网络映射拓扑,可以明确地理解各个训练软件服务集成元素组件之间的联系和依赖关系。这样,在训练过程中,可以根据这些关系更有效地进行网络训练,从而提高整个网络的训练效率。通过针对每个训练软件服务集成元素组件进行优化,以及基于每两个训练软件服务集成元素组件优化后的集成元素组件描述知识,获得第一共性评分,可以更准确地判断出训练软件服务之间的相似性,进而提升模型的性能。依据每两个训练软件服务集成元素组件对应的同源集成元素组件个数以及对应的第一共性评分,对深度残差网络进行调试,可以根据实际情况灵活地进行网络调试,进一步优化网络性能。由于利用了深度残差网络,可以克服传统神经网络难以训练深层网络的问题,提高了模型的鲁棒性。通过集成元素组件描述知识的优化,可以更好地实现知识的共享和迁移,从而提高整个系统的学习能力。
在另一些实施例中,所述方法还包括步骤610-步骤630。
步骤610、依据所述目标软件服务对应的联动集成开发知识向量,获得所述目标软件服务的关联软件服务。
步骤620、获得与所述关联软件服务匹配的容器服务实例。
步骤630、向所述目标软件服务下发所述容器服务实例。
以在线购物网站为例,假设已经通过上述步骤得到了目标软件服务(如用户管理模块)的联动集成开发知识向量。
根据这个知识向量,可以获得与用户管理模块关联的其他软件服务。例如,可能会发现订单处理模块、支付模块等都与用户管理模块有紧密的联系。在得到关联软件服务后,需要找到与它们匹配的容器服务实例。比如说,可能从容器服务库中找到一个特定配置的Docker容器,这个容器里已经部署好了订单处理模块和支付模块所需要的所有依赖项和环境设置。最后,将这个容器服务实例下发给目标软件服务(用户管理模块)。这意味着在用户管理模块的服务器上启动了新的Docker容器,这个容器包含了所有关联的软件服务,从而使用户管理模块能够顺利地与订单处理模块、支付模块等进行交互。
这样一来,能够根据目标软件服务的联动集成开发知识向量自动获取关联的软件服务,并为它们提供合适的运行环境。这样,不仅节省了人工配置和管理环境的时间,也减少了因为环境问题导致的错误。此外,通过自动下发容器服务实例,还能确保软件服务在不同服务器上的一致性,提高了系统的稳定性和可靠性。
在另外的一些可能的示例中,应用的发布过程首先获取了应用服务对应的初始构建记录,这些记录通过与Jenkins系统集成获得。Jenkins系统作为一个持续集成工具,可以自动执行各种构建任务,比如打包构建应用,并生成相应的构建记录。其中,构建记录即是目标应用服务的打包细节数据,例如,使用什么构建命令,需要的环境变量等。同时,通过获取Jenkins的实时构建日志,也可以得到与应用相关的初始版本元数据,例如版本号、发布日期等。
然后,也会获取次级版本的构建记录和元数据,这些数据可以通过分析不同版本间的构建日志差异获得。因此,无论是初始版本还是次级版本,都能通过Jenkins系统实现无缝切入并收集必要的数据。
接着,依据打包细节数据,将Jenkins的构建日志转化为软件开发构建向量。这个向量可能包含了各种有用的信息,例如构建时间、错误数量等,帮助更深入地理解构建过程。
最后,将软件开发构建向量与每个版本元数据的描述知识进行集成,得到一个联动集成开发知识向量。这个向量将用于指导应用服务的发布处理。例如,打包好的镜像存储在云仓库中,具备可再用性和版本隔离性等特点。当需要部署新的节点时,只需加载对应的镜像并启动服务,一旦服务启动成功,即意味着新版本发布成功。
因此,上述技术方案不仅实现了与Jenkins的无缝集成,获取了详细的构建记录和元数据,而且还通过形成联动集成开发知识向量,有效地指导了应用服务的发布处理。这样的设计使得能够更有效地监控和管理应用服务的构建和发布过程。
进一步地,还提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现上述的方法。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种基于人工智能的集成化软件开发处理方法,其特征在于,应用于集成化软件开发处理系统,所述方法包括:
获得目标软件服务对应的初始软件服务构建记录,所述初始软件服务构建记录包括所述目标软件服务的打包细节数据和所述目标软件服务相关的最少一个初始版本元数据;
获得所述目标软件服务对应的次级软件服务构建记录,所述次级软件服务构建记录包括所述目标软件服务相关的最少一个次级版本元数据,所述初始版本元数据和所述次级版本元数据表征所述目标软件服务的版本变化,所述初始软件服务构建记录和所述次级软件服务构建记录是通过相异的持续集成系统生成的;
依据所述目标软件服务的打包细节数据,获得所述目标软件服务的软件开发构建向量;
将所述目标软件服务的软件开发构建向量与所述目标软件服务相关的每个版本元数据的描述知识进行集成,得到所述目标软件服务对应的联动集成开发知识向量;所述联动集成开发知识向量用于指导目标软件服务的发布处理。
2.如权利要求1所述的方法,其特征在于,所述获得所述目标软件服务对应的次级软件服务构建记录之后,所述方法还包括:
针对所述目标软件服务相关的每个版本元数据,获得与所述版本元数据相关的最少一条镜像环境配置信息,所述镜像环境配置信息包括与所述目标软件服务不同的其他软件服务对应的软件服务构建记录、容器服务实例对应的容器服务实例日志或与所述版本元数据不同的其他版本元数据中的最少一项;
所述将所述目标软件服务的软件开发构建向量与所述目标软件服务相关的每个版本元数据的描述知识进行集成,得到所述目标软件服务对应的联动集成开发知识向量,包括:
将所述目标软件服务的软件开发构建向量、所述目标软件服务相关的版本元数据的描述知识以及每条镜像环境配置信息对应的镜像环境配置要素进行集成,得到所述目标软件服务对应的联动集成开发知识向量。
3.如权利要求2所述的方法,其特征在于,所述获得与所述版本元数据相关的最少一条镜像环境配置信息,包括:
获得与所述版本元数据直接相关的镜像环境配置信息,将当前获得到的镜像环境配置信息确定为第1阶镜像环境配置信息,与所述版本元数据直接相关的镜像环境配置信息包括匹配所述版本元数据的其他软件服务对应的软件服务构建记录、匹配所述版本元数据的容器服务实例对应的容器服务实例日志或所述版本元数据的关联版本元数据中最少一项;
获得与第u阶镜像环境配置信息直接相关的镜像环境配置信息,将当前获得到的镜像环境配置信息确定为第u+1阶镜像环境配置信息,直至获得到第Q阶镜像环境配置信息,u为大于0且小于Q的整数,Q为大于1的整数;
其中,所述第u阶镜像环境配置信息为与所述目标软件服务不同的其他软件服务对应的软件服务构建记录,与所述第u阶镜像环境配置信息直接相关的镜像环境配置信息包括与所述目标软件服务不同的其他软件服务所对应的版本元数据或目标容器服务实例对应的容器服务实例日志中的最少一项,与所述目标软件服务不同的其他软件服务对所述目标容器服务实例实施过目标加载行为;
或者,所述第u阶镜像环境配置信息为容器服务实例对应的容器服务实例日志,与所述第u阶镜像环境配置信息直接相关的镜像环境配置信息包括所述容器服务实例所对应的版本元数据或对所述容器服务实例实施过目标加载行为的软件服务对应的软件服务构建记录中的最少一项;
或者,所述第u阶镜像环境配置信息为第三版本元数据,与所述第u阶镜像环境配置信息直接相关的镜像环境配置信息包括匹配所述第三版本元数据的软件服务对应的软件服务构建记录、匹配所述第三版本元数据的容器服务实例对应的容器服务实例日志或所述第三版本元数据的关联版本元数据中的最少一项,所述第三版本元数据与所述初始版本元数据和所述次级版本元数据皆相异。
4.如权利要求2所述的方法,其特征在于,所述方法还包括:
构造所述目标软件服务对应的目标软件服务集成元素组件、所述目标软件服务相关的每个版本元数据对应的版本集成元素组件以及所述每条镜像环境配置信息对应的镜像环境配置集成元素组件;
将所述目标软件服务集成元素组件与每个版本集成元素组件相连,将每个版本集成元素组件与直接相关的镜像环境配置信息所对应的镜像环境配置集成元素组件相连,将直接相连的每两个镜像环境配置信息对应的镜像环境配置集成元素组件相连,得到集成网络映射拓扑;
所述将所述目标软件服务的软件开发构建向量、所述目标软件服务相关的版本元数据的描述知识以及每条镜像环境配置信息对应的镜像环境配置要素进行集成,得到所述目标软件服务对应的联动集成开发知识向量,包括:
将所述集成网络映射拓扑中所述目标软件服务集成元素组件对应的集成元素组件描述知识与第一相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述目标软件服务集成元素组件优化后的集成元素组件描述知识,所述目标软件服务对应的集成元素组件描述知识为所述目标软件服务的软件开发构建向量,所述第一相关集成元素组件为所述集成网络映射拓扑中与所述目标软件服务集成元素组件直接相连或间接相连的集成元素组件,所述目标软件服务集成元素组件优化后的集成元素组件描述知识用于表征所述目标软件服务对应的联动集成开发知识向量。
5.如权利要求4所述的方法,其特征在于,所述将所述集成网络映射拓扑中所述目标软件服务集成元素组件对应的集成元素组件描述知识与第一相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述目标软件服务集成元素组件优化后的集成元素组件描述知识,包括:
将多个第一相关集成元素组件对应的集成元素组件描述知识进行集成,将集成后的知识向量与所述目标软件服务集成元素组件对应的集成元素组件描述知识进行聚合,得到第一集成元素组件聚合向量;
对所述第一集成元素组件聚合向量进行向量投影,将向量投影结果确定为所述目标软件服务集成元素组件优化后的集成元素组件描述知识;
其中,所述多个第一相关集成元素组件包括v阶相关集成元素组件,每个第r阶相关集成元素组件与一个第r-1阶相关集成元素组件直接相连,每个第1阶相关集成元素组件与所述目标软件服务集成元素组件直接相连,r为大于1且不大于v的整数,v为大于1的整数;
则所述将多个第一相关集成元素组件对应的集成元素组件描述知识进行集成,将集成后的知识向量与所述目标软件服务集成元素组件对应的集成元素组件描述知识进行聚合,得到第一集成元素组件聚合向量,包括:
对于每个第r-1阶相关集成元素组件,将与所述第r-1阶相关集成元素组件直接相连的第r阶相关集成元素组件对应的集成元素组件描述知识,与所述第r-1阶相关集成元素组件对应的集成元素组件描述知识进行集成,将集成后的知识向量确定为所述第r-1阶相关集成元素组件优化后的集成元素组件描述知识,直至获得到每个所述第1阶相关集成元素组件优化后的集成元素组件描述知识;
将所述第1阶相关集成元素组件优化后的集成元素组件描述知识进行集成,将集成后的知识向量与所述目标软件服务集成元素组件对应的集成元素组件描述知识进行聚合,得到所述第一集成元素组件聚合向量。
6.如权利要求4所述的方法,其特征在于,所述将所述集成网络映射拓扑中所述目标软件服务集成元素组件对应的集成元素组件描述知识与第一相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述目标软件服务集成元素组件优化后的集成元素组件描述知识,包括:
基于深度残差网络,将所述集成网络映射拓扑中所述目标软件服务集成元素组件对应的集成元素组件描述知识与第一相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述目标软件服务集成元素组件优化后的集成元素组件描述知识。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
获得训练集成网络映射拓扑,所述训练集成网络映射拓扑包括多个集成元素组件,所述多个集成元素组件包括训练软件服务集成元素组件以及版本集成元素组件,存在联系的任两个集成元素组件之间相连;
将所述训练集成网络映射拓扑中的任一版本集成元素组件,确定为训练集成元素组件,获得训练表征信息,所述训练表征信息表征所述训练软件服务集成元素组件与所述训练集成元素组件之间是否相连;
依据所述深度残差网络,将所述训练集成网络映射拓扑中所述训练软件服务集成元素组件对应的集成元素组件描述知识与第二相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述训练软件服务集成元素组件优化后的集成元素组件描述知识,所述第二相关集成元素组件为所述训练集成网络映射拓扑中与所述训练软件服务集成元素组件直接相连或间接相连的集成元素组件;
依据所述深度残差网络,将所述训练集成网络映射拓扑中所述训练集成元素组件对应的集成元素组件描述知识与第三相关集成元素组件对应的集成元素组件描述知识进行集成,得到训练集成元素组件优化后的集成元素组件描述知识,所述第三相关集成元素组件为所述训练集成网络映射拓扑中与所述训练集成元素组件直接相连或间接相连的集成元素组件;
依据所述训练软件服务集成元素组件优化后的集成元素组件描述知识及所述训练集成元素组件优化后的集成元素组件描述知识,获得表征预测结果,所述表征预测结果反映判别出的所述训练软件服务集成元素组件与所述训练集成元素组件之间相连的概率;
依据所述表征预测结果及所述训练表征信息,对所述深度残差网络进行调试。
8.如权利要求6所述的方法,其特征在于,所述方法还包括:
获得训练集成网络映射拓扑,所述训练集成网络映射拓扑包括多个集成元素组件,所述多个集成元素组件包括多个训练软件服务集成元素组件以及版本集成元素组件,存在联系的任两个集成元素组件之间相连;
依据所述训练集成网络映射拓扑中集成元素组件之间的相连关系,获得所述训练集成网络映射拓扑中每两个训练软件服务集成元素组件之间的同源集成元素组件个数,所述同源集成元素组件个数表征所述两个训练软件服务集成元素组件共同相连的集成元素组件的个数;
针对所述训练集成网络映射拓扑中的每个训练软件服务集成元素组件,依据所述深度残差网络,将所述训练软件服务集成元素组件对应的集成元素组件描述知识与第二相关集成元素组件对应的集成元素组件描述知识进行集成,得到所述训练软件服务集成元素组件优化后的集成元素组件描述知识,所述第二相关集成元素组件为所述训练集成网络映射拓扑中与所述训练软件服务集成元素组件直接相连或间接相连的集成元素组件;
基于每两个训练软件服务集成元素组件优化后的集成元素组件描述知识,获得第一共性评分,所述第一共性评分反映判别出的所述两个训练软件服务集成元素组件对应的训练软件服务之间的类似性;
依据所述每两个训练软件服务集成元素组件对应的同源集成元素组件个数以及对应的第一共性评分,对所述深度残差网络进行调试。
9.如权利要求1所述的方法,其特征在于,所述方法还包括:
依据所述目标软件服务对应的联动集成开发知识向量,获得所述目标软件服务的关联软件服务;
获得与所述关联软件服务匹配的容器服务实例;
向所述目标软件服务下发所述容器服务实例。
10.一种集成化软件开发处理系统,其特征在于,包括处理器和存储器;所述处理器和所述存储器通信连接,所述处理器用于从所述存储器中读取计算机程序并执行,以实现权利要求1-9任一项所述的方法。
CN202311652917.5A 2023-12-05 2023-12-05 一种基于人工智能的集成化软件开发处理方法及系统 Active CN117369864B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311652917.5A CN117369864B (zh) 2023-12-05 2023-12-05 一种基于人工智能的集成化软件开发处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311652917.5A CN117369864B (zh) 2023-12-05 2023-12-05 一种基于人工智能的集成化软件开发处理方法及系统

Publications (2)

Publication Number Publication Date
CN117369864A true CN117369864A (zh) 2024-01-09
CN117369864B CN117369864B (zh) 2024-03-22

Family

ID=89394880

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311652917.5A Active CN117369864B (zh) 2023-12-05 2023-12-05 一种基于人工智能的集成化软件开发处理方法及系统

Country Status (1)

Country Link
CN (1) CN117369864B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101403965A (zh) * 2008-11-18 2009-04-08 四川赛文纳克软件有限公司 集成式迭代化软件开发过程控制系统及方法
US20170269921A1 (en) * 2016-03-18 2017-09-21 TUPL, Inc. Continuous and automatic application development and deployment
US20190347188A1 (en) * 2018-05-09 2019-11-14 International Business Machines Corporation Identifying potential errors in code using machine learning
CN112579098A (zh) * 2020-12-25 2021-03-30 平安银行股份有限公司 软件发布方法、装置、电子设备及可读存储介质
CN112965742A (zh) * 2021-02-10 2021-06-15 中国工商银行股份有限公司 基于用户图谱的应用版本发布方法及系统
CN113835739A (zh) * 2021-09-18 2021-12-24 北京航空航天大学 一种软件缺陷修复时间的智能化预测方法
CN113835742A (zh) * 2020-06-24 2021-12-24 迈普通信技术股份有限公司 持续集成方法及软件开发系统
CN115145630A (zh) * 2022-07-29 2022-10-04 重庆长安汽车股份有限公司 一种座舱软件版本管理方法、装置、设备及介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101403965A (zh) * 2008-11-18 2009-04-08 四川赛文纳克软件有限公司 集成式迭代化软件开发过程控制系统及方法
US20170269921A1 (en) * 2016-03-18 2017-09-21 TUPL, Inc. Continuous and automatic application development and deployment
US20190347188A1 (en) * 2018-05-09 2019-11-14 International Business Machines Corporation Identifying potential errors in code using machine learning
CN113835742A (zh) * 2020-06-24 2021-12-24 迈普通信技术股份有限公司 持续集成方法及软件开发系统
CN112579098A (zh) * 2020-12-25 2021-03-30 平安银行股份有限公司 软件发布方法、装置、电子设备及可读存储介质
CN112965742A (zh) * 2021-02-10 2021-06-15 中国工商银行股份有限公司 基于用户图谱的应用版本发布方法及系统
CN113835739A (zh) * 2021-09-18 2021-12-24 北京航空航天大学 一种软件缺陷修复时间的智能化预测方法
CN115145630A (zh) * 2022-07-29 2022-10-04 重庆长安汽车股份有限公司 一种座舱软件版本管理方法、装置、设备及介质

Also Published As

Publication number Publication date
CN117369864B (zh) 2024-03-22

Similar Documents

Publication Publication Date Title
De Silva et al. Controlling software architecture erosion: A survey
Smith et al. The machine learning bazaar: Harnessing the ml ecosystem for effective system development
Lwakatare et al. DevOps for AI–Challenges in Development of AI-enabled Applications
Warren The renaissance of legacy systems: method support for software-system evolution
Koschke et al. Extending the reflexion method for consolidating software variants into product lines
US20090249284A1 (en) Automation for virtualized it environments
CN105765560A (zh) 基于多次跟踪执行的软件组件推荐
US8620959B1 (en) System and method for constructing and editing multi-models
CN113778500A (zh) 一种基于DevOps的软件开发生命周期管理平台
US20080313599A1 (en) Method, system and computer program for developing software applications with increased modularity
Weyns et al. An architectural approach to support online updates of software product lines
Renggli et al. Ease. ml/ci and ease. ml/meter in action: Towards data management for statistical generalization
Garcia et al. Constructing a shared infrastructure for software architecture analysis and maintenance
CN117369864B (zh) 一种基于人工智能的集成化软件开发处理方法及系统
Rivera et al. UML-driven automated software deployment
Rubasinghe et al. Towards traceability management in continuous integration with SAT-Analyzer
di Laurea Mlops-standardizing the machine learning workflow
Bessghaier et al. What Constitutes the Deployment and Runtime Configuration System? An Empirical Study on OpenStack Projects
Tinnes et al. Mining domain-specific edit operations from model repositories with applications to semantic lifting of model differences and change profiling
Arcelli et al. Assisting software designers to identify and solve performance problems
Stehle et al. A porting method for coordinated multiplatform evolution
US11449413B2 (en) Accelerating development and deployment of enterprise applications in data driven enterprise IT systems
US20230176848A1 (en) Transformation of a computing environment from one technological state to another technological state
Galster et al. Variability-intensive software systems: Concepts and techniques
Singhal et al. A Vision on Accelerating Enterprise IT System 2.0

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant