CN117492703A - 一种基于人工智能的软件开发方法、设备及介质 - Google Patents
一种基于人工智能的软件开发方法、设备及介质 Download PDFInfo
- Publication number
- CN117492703A CN117492703A CN202311394050.8A CN202311394050A CN117492703A CN 117492703 A CN117492703 A CN 117492703A CN 202311394050 A CN202311394050 A CN 202311394050A CN 117492703 A CN117492703 A CN 117492703A
- Authority
- CN
- China
- Prior art keywords
- demand
- requirement
- current
- software
- determining
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 29
- 238000012360 testing method Methods 0.000 claims abstract description 86
- 238000011161 development Methods 0.000 claims abstract description 77
- 238000005516 engineering process Methods 0.000 claims abstract description 53
- 238000003058 natural language processing Methods 0.000 claims abstract description 38
- 238000010801 machine learning Methods 0.000 claims abstract description 36
- 230000006870 function Effects 0.000 claims description 25
- 238000004458 analytical method Methods 0.000 claims description 19
- 238000003860 storage Methods 0.000 claims description 12
- 230000000750 progressive effect Effects 0.000 claims description 8
- 238000013145 classification model Methods 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 230000018109 developmental process Effects 0.000 description 146
- 238000000605 extraction Methods 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/353—Clustering; Classification into predefined classes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Animal Behavior & Ethology (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书实施例公开了一种基于人工智能的软件开发方法、设备及介质,涉及软件开发技术领域,方法包括:获取用户预先设置的软件开发需求文档,以通过自然语言处理技术,对软件开发需求文件进行关键信息提取,确定软件开发需求文档对应的软件应用场景信息、当前需求信息库和当前代码待调整参数;进行开发需求分类,确定多个当前需求类型,并对多个当前需求类型进行需求预测,确定至少一个预测需求,以确定实际开发需求;通过预先训练的机器学习模型和实际开发需求,生成当前需求代码;根据软件应用场景信息,生成匹配的场景测试示例,以通过场景测试示例对当前需求代码进行测试,确定与软件开发需求文档匹配的软件代码数据,实现自动化软件开发。
Description
技术领域
本说明书涉及软件开发技术领域,尤其涉及一种基于人工智能的软件开发方法、设备及介质。
背景技术
在人工智能(AI)日益普及的技术发展趋势下,人工智能在软件开发中的应用也日益广泛,机器学习是实现人工智能的关键技术之一,运用多种算法,通过分析大量数据并自动发现规律和模式,从而实现对未知数据的预测和推断。在软件开发的实践中,机器学习技术主要被用于构建和优化软件的功能模块,如图像识别、语音识别、自然语言处理等。
在软件开发的前期阶段,通常需要进行各种需求设计和分析,需要大量的手动工作耗时且容易出错,导致软件开发需求的准确度存在较大问题。因此,现有的软件开发方法中由于开发需求的分析结果不准确,导致自动化软件开发的开发效率和代码质量较低,无法满足用户在不同场景下的开发需求。
发明内容
本说明书一个或多个实施例提供了一种基于人工智能的软件开发方法、设备及介质,用于解决如下技术问题:现有的软件开发方法中由于开发需求的分析结果不准确,导致自动化软件开发的开发效率和代码质量较低,无法满足用户在不同场景下的开发需求。
本说明书一个或多个实施例采用下述技术方案:
本说明书一个或多个实施例提供一种基于人工智能的软件开发方法,所述方法包括:获取用户预先设置的软件开发需求文档,以通过自然语言处理技术,对所述软件开发需求文件进行关键信息提取,确定所述软件开发需求文档对应的软件应用场景信息、当前需求信息库和当前代码待调整参数,其中,所述当前需求信息库包括多个需求信息;使用机器学习技术对所述当前需求信息库,进行开发需求分类,确定多个当前需求类型,并对所述多个当前需求类型进行需求预测,确定至少一个预测需求,以确定实际开发需求,其中,所述实际开发需求包括功能需求、性能需求和接口需求;通过预先训练的机器学习模型和所述实际开发需求,生成与所述实际开发需求匹配的多个需求代码片段,根据所述当前代码待调整参数和所述多个需求代码片段,生成当前需求代码;通过智能测试技术,根据所述软件应用场景信息,生成匹配的场景测试示例,以通过所述场景测试示例对所述当前需求代码进行测试,确定与所述软件开发需求文档匹配的软件代码数据,实现自动化软件开发。
进一步地,通过自然语言处理技术,对所述软件开发需求文件进行关键信息提取,确定所述软件开发需求文档对应的软件应用场景信息、当前需求信息库和当前代码待调整参数,具体包括:通过自然语言处理技术,对所述软件开发需求文件进行自然语言处理,确定所述软件开发需求文件中的多个语义文本,其中,所述自然语言处理包括词性标注、句法分析和语义分析中的任意一项或多项;对每个所述语义文本进行语义识别,以对每个所述语义文本设置文本标签,确定场景类语义文本、需求类语义文本和参数类语义文本;通过所述场景类语义文本和所述参数类语义文本,确定所述软件开发需求文档对应的软件应用场景信息和当前代码待调整参数;对所述需求类语义文本进行与语义特征提取,生成多个需求字段,并对每个所述需求字段进行语义扩充,得到每个所述需求字段对应的至少一个扩展字段;基于所述多个需求字段和每个所述需求字段对应的至少一个扩展字段,生成所述当前需求信息库。
进一步地,使用机器学习技术对所述当前需求信息库,进行开发需求分类,确定多个当前需求类型,具体包括:将每个所述需求字段和每个所述需求字段对应的至少一个扩展字段进行绑定,生成多个需求字段组;通过预先训练的需求分类模型,对每个所述需求字段组中的字段分别进行分类,确定每个所述需求字段组对应的至少一个需求类型;当指定需求字段组对应多个需求类型时,统计每个所述需求类型的数量,将所述多个需求类型中数量最多的指定需求类型作为所述指定需求字段组对应的当前需求类型。
进一步地,对所述多个当前需求类型进行需求预测,确定至少一个预测需求,具体包括:获取与所述软件应用场景信息对应的多个历史软件代码,对每个所述历史软件代码进行需求分析,确定每个所述历史软件代码的多个历史实现需求;通过所述多个历史实现需求,构建所述软件应用场景信息对应的场景需求知识图谱,以通过所述场景需求知识图谱,对所述多个当前需求类型进行需求预测,确定至少一个预测需求。
进一步地,通过所述多个历史实现需求,构建所述软件应用场景信息对应的场景需求知识图谱,具体包括:对所述历史实现需求进行分类,确定每个所述历史实现需求的需求类型,其中,所述需求类型包括功能需求、性能需求和接口需求;对每个需求类型下的多个历史需求进行再分类,以确定每个所述需求类型对应的子类型,其中,所述子类型用于表示每个所述需求类型对应的功能类型或性能类型或接口类型;以所述软件应用场景信息作为场景主节点,所述功能需求、所述性能需求和所述接口需求分别作为一级子节点;通过每个所述需求类型对应的子类型,按照预先构建的子类型相对关系表,确定多个所述子类型之间的相对关系,其中,所述相对关系包括并列关系和递进关系;将每个所述一级子节点和所述场景主节点相连,根据每个所述子类型之间的相对关系,确定每个所述子类型对应的下级子节点与所述一级子节点的连接关系以及多个所述子类型的连接关系,以构建所述场景需求知识图谱。
进一步地,通过所述场景需求知识图谱,对所述多个当前需求类型进行需求预测,确定至少一个预测需求,具体包括:基于所述当前需求类型,在所述场景需求知识图谱中,确定与每个所述当前需求类型对应的当前下级子节点;确定所述当前下级子节点连接的至少一个参考节点,通过每个所述参考节点,确定每个所述当前需求类型对应的至少一个预测需求。
进一步地,通过每个所述参考节点,确定每个所述当前需求类型对应的至少一个预测需求,具体包括:确定每个所述当前下级子节点与对应的当前一级子节点的节点连接关系,其中,所述节点连接关系包括当前下级子节点与一级子节点直接连接的直连关系,以及当前下级子节点与一级子节点通过至少一个参考节点连接的间接连接关系;当所述节点连接关系为所述间接连接关系时,通过所述节点连接关系和所述间接连接关系中的指定参考子节点,确定每个所述当前需求类型对应的至少一个预测需求。
进一步地,通过所述场景测试示例对所述当前需求代码进行测试,确定与所述软件开发需求文档匹配的软件代码数据之后,所述方法还包括:在通过自动化测试之后,对所述软件代码数据进行打包处理,以生成生成与预设部署格式匹配的代码文件;通过自动化部署脚本或自动化部署工具,将所述代码文件部署到目标环境中。
本说明书一个或多个实施例提供一种基于人工智能的软件开发设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取用户预先设置的软件开发需求文档,以通过自然语言处理技术,对所述软件开发需求文件进行关键信息提取,确定所述软件开发需求文档对应的软件应用场景信息、当前需求信息库和当前代码待调整参数,其中,所述当前需求信息库包括多个需求信息;使用机器学习技术对所述当前需求信息库,进行开发需求分类,确定多个当前需求类型,并对所述多个当前需求类型进行需求预测,确定至少一个预测需求,以确定实际开发需求,其中,所述实际开发需求包括功能需求、性能需求和接口需求;通过预先训练的机器学习模型和所述实际开发需求,生成与所述实际开发需求匹配的多个需求代码片段,根据所述当前代码待调整参数和所述多个需求代码片段,生成当前需求代码;通过智能测试技术,根据所述软件应用场景信息,生成匹配的场景测试示例,以通过所述场景测试示例对所述当前需求代码进行测试,确定与所述软件开发需求文档匹配的软件代码数据,实现自动化软件开发。
本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
获取用户预先设置的软件开发需求文档,以通过自然语言处理技术,对所述软件开发需求文件进行关键信息提取,确定所述软件开发需求文档对应的软件应用场景信息、当前需求信息库和当前代码待调整参数,其中,所述当前需求信息库包括多个需求信息;使用机器学习技术对所述当前需求信息库,进行开发需求分类,确定多个当前需求类型,并对所述多个当前需求类型进行需求预测,确定至少一个预测需求,以确定实际开发需求,其中,所述实际开发需求包括功能需求、性能需求和接口需求;通过预先训练的机器学习模型和所述实际开发需求,生成与所述实际开发需求匹配的多个需求代码片段,根据所述当前代码待调整参数和所述多个需求代码片段,生成当前需求代码;通过智能测试技术,根据所述软件应用场景信息,生成匹配的场景测试示例,以通过所述场景测试示例对所述当前需求代码进行测试,确定与所述软件开发需求文档匹配的软件代码数据,实现自动化软件开发。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:通过上述技术方案,通过自然语言处理技术,对软件开发需求文件进行关键信息提取,自动化信息提取方式提高了关键信息提取的准确性,此外,考虑软件开发需求文档对应的软件应用场景信息、当前需求信息库和当前代码待调整参数,多维度考虑开发信息,结合场景、需求和参数,提供了较为全面的参考数据,进一步提高了后续软件开发与场景的适配程度;在得到需求类型之后,对需求进行预测,避免软件开发需求文档提取信息的单一性,进一步保证了开发需求的全面性;通过模型将根据需求预测的结果以及其他约束条件自动生成符合要求的代码,大大减少了手动编程的工作量;利用智能测试技术对生成的代码进行测试和验证,自动生成测试用例并执行测试,检测代码的正确性和稳定性,提高了测试的效率和准确性,提高了开发效率和代码质量,满足用户在不同场景下的开发需求。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本说明书实施例提供的一种基于人工智能的软件开发方法的流程示意图;
图2为本说明书实施例提供的一种场景需求知识图谱的结构示意图;
图3为本说明书实施例提供的一种基于人工智能的软件开发设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
在人工智能(AI)日益普及的技术发展趋势下,人工智能在软件开发中的应用也日益广泛,机器学习是实现人工智能的关键技术之一,运用多种算法,通过分析大量数据并自动发现规律和模式,从而实现对未知数据的预测和推断。在软件开发的实践中,机器学习技术主要被用于构建和优化软件的功能模块,如图像识别、语音识别、自然语言处理等。
在软件开发的前期阶段,通常需要进行各种需求设计和分析,需要大量的手动工作耗时且容易出错,导致软件开发需求的准确度存在较大问题。因此,现有的软件开发方法中由于开发需求的分析结果不准确,导致自动化软件开发的开发效率和代码质量较低,无法满足用户在不同场景下的开发需求。
本说明书实施例提供一种基于人工智能的软件开发方法,需要说明的是,本说明书实施例中的执行主体可以是服务器,也可以是任意一种具备数据处理能力的设备。图1为本说明书实施例提供的一种基于人工智能的软件开发方法的流程示意图,如图1所示,主要包括如下步骤:
步骤S101,获取用户预先设置的软件开发需求文档,以通过自然语言处理技术,对软件开发需求文件进行关键信息提取,确定软件开发需求文档对应的软件应用场景信息、当前需求信息库和当前代码待调整参数。
其中,该当前需求信息库包括多个需求信息。
通过自然语言处理技术,对该软件开发需求文件进行关键信息提取,确定该软件开发需求文档对应的软件应用场景信息、当前需求信息库和当前代码待调整参数,具体包括:通过自然语言处理技术,对该软件开发需求文件进行自然语言处理,确定该软件开发需求文件中的多个语义文本,其中,该自然语言处理包括词性标注、句法分析和语义分析中的任意一项或多项;对每个该语义文本进行语义识别,以对每个该语义文本设置文本标签,确定场景类语义文本、需求类语义文本和参数类语义文本;通过该场景类语义文本和该参数类语义文本,确定该软件开发需求文档对应的软件应用场景信息和当前代码待调整参数;对该需求类语义文本进行与语义特征提取,生成多个需求字段,并对每个该需求字段进行语义扩充,得到每个该需求字段对应的至少一个扩展字段;基于该多个需求字段和每个该需求字段对应的至少一个扩展字段,生成该当前需求信息库。
在本说明书的一个实施例中,获取软件开发需求文档,此处的软件开发需求文档为用户预先设置的表示软件开发需求的文件。首先,对软件开发需求文档进行格式标准化和预处理,包括去除不必要的格式、文本简化、分词等步骤,以使机器更容易理解文本内容。使用自然语言处理技术对预处理后的文档进行进一步的分析,包括词性标注、句法分析、语义分析等,便于理解文档中的语境和含义。对每个语义文本进行语义识别,根据识别结果以对每个语义文本设置文本标签,需要说明的是,此处的文本标签可以是场景标签、需求标签和参数标签,通过文本标签确定场景类语义文本、需求类语义文本和参数类语义文本。
通过语义特征提取技术,对场景类语义文本和参数类语义文本进行特征提取,确定软件开发需求文档对应的软件应用场景信息和当前代码待调整参数。对需求类语义文本进行与语义特征提取,生成多个需求字段,并对每个该需求字段进行语义扩充,得到每个该需求字段对应的至少一个扩展字段。需要说明的是,在进行语义扩充时,可以通过近义词扩充的形式。基于该多个需求字段和每个该需求字段对应的至少一个扩展字段,生成该当前需求信息库。
通过上述技术方案,通过自然语言处理技术,对软件开发需求文件进行关键信息提取,自动化信息提取方式提高了关键信息提取的准确性,此外,考虑软件开发需求文档对应的软件应用场景信息、当前需求信息库和当前代码待调整参数,多维度考虑开发信息,结合场景、需求和参数,提供了较为全面的参考数据,进一步提高了后续软件开发与场景的适配程度。
步骤S102,使用机器学习技术对该当前需求信息库,进行开发需求分类,确定多个当前需求类型,并对多个当前需求类型进行需求预测,确定至少一个预测需求,以确定实际开发需求。
其中,该实际开发需求包括功能需求、性能需求和接口需求。
使用机器学习技术对该当前需求信息库,进行开发需求分类,确定多个当前需求类型,具体包括:将每个该需求字段和每个该需求字段对应的至少一个扩展字段进行绑定,生成多个需求字段组;通过预先训练的需求分类模型,对每个该需求字段组中的字段分别进行分类,确定每个该需求字段组对应的至少一个需求类型;当指定需求字段组对应多个需求类型时,统计每个该需求类型的数量,将该多个需求类型中数量最多的指定需求类型作为该指定需求字段组对应的当前需求类型。
在本说明书的一个实施例中,将每个需求字段和每个该需求字段对应的至少一个扩展字段进行绑定,生成多个需求字段组。通过预先训练的需求分类模型,对每个需求字段组中的字段分别进行分类,确定每个需求字段组对应的至少一个需求类型。需求类型按照大类划分包括功能、性能和接口三种类型,在每种需求类型下还包括多种子类型,例如功能需求还可以分为采集功能、分析功能等多种子类型,因此,此处的需求类型为具体的需求类型,例如采集功能类型。为了保证需求识别的准确性,对需求字段组中的多个字段分别进行分类识别,每个字段对应一个具体需求类型,当指定需求字段组对应多个需求类型,且需求字段组中所有字段对应的具体需求类型相同时,则将该具体需求类型作为该组的当前需求类型。当指定需求字段组对应多个需求类型,且统计每个该需求类型的数量,将该多个需求类型中数量最多的指定需求类型作为该指定需求字段组对应的当前需求类型。
对该多个当前需求类型进行需求预测,确定至少一个预测需求,具体包括:获取与该软件应用场景信息对应的多个历史软件代码,对每个该历史软件代码进行需求分析,确定每个该历史软件代码的多个历史实现需求;通过该多个历史实现需求,构建该软件应用场景信息对应的场景需求知识图谱,以通过该场景需求知识图谱,对该多个当前需求类型进行需求预测,确定至少一个预测需求。
通过该多个历史实现需求,构建该软件应用场景信息对应的场景需求知识图谱,具体包括:对该历史实现需求进行分类,确定每个该历史实现需求的需求类型,其中,该需求类型包括功能需求、性能需求和接口需求;对每个需求类型下的多个历史需求进行再分类,以确定每个该需求类型对应的子类型,其中,该子类型用于表示每个该需求类型对应的功能类型或性能类型或接口类型;以该软件应用场景信息作为场景主节点,该功能需求、该性能需求和该接口需求分别作为一级子节点;通过每个该需求类型对应的子类型,按照预先构建的子类型相对关系表,确定多个该子类型之间的相对关系,其中,该相对关系包括并列关系和递进关系;将每个该一级子节点和该场景主节点相连,根据每个该子类型之间的相对关系,确定每个该子类型对应的下级子节点与该一级子节点的连接关系以及多个该子类型的连接关系,以构建该场景需求知识图谱。
在本说明书的一个实施例中,在软件代码库中,根据软件应用场景信息,获取与软件应用场景信息相同场景下的多个历史软件代码,对每个该历史软件代码进行需求分析,确定每个历史软件代码的多个历史实现需求。
在本说明书的一个实施例中,通过多个历史实现需求,构建软件应用场景信息对应的场景需求知识图谱,对历史实现需求进行分类,确定每个历史实现需求的需求类型,需求类型包括功能需求、性能需求和接口需求。图2为本说明书实施例提供的一种场景需求知识图谱的结构示意图,如图2所示,以软件应用场景信息作为场景主节点,即图2中的R1节点。将功能需求、性能需求和接口需求分别作为一级子节点,即R1.1节点、R1.2节点和R1.3节点。将每个该一级子节点和该场景主节点相连。
对每个需求类型下的多个历史需求进行再分类,以确定每个需求类型对应的子类型,子类型用于表示每个该需求类型对应的功能类型或性能类型或接口类型,也就是说,子类型用于表示需求类型对应的具体功能类型、具体性能类型和具体接口类型。获取预先构建的子类型相对关系表,需要说明的是,子类型相对关系表可以通过用户预先设置生成,相对关系包括并列关系和递进关系,例如,功能需求和性能需求为并列关系,监控预警功能需求和视频分析功能需求为递进关系,即若需要监控预警功能需求,必须先实现视频分析功能需求,相对关系在知识图谱中的示例如下,R1.1.1节点和R1.1.2节点为具备并列关系的节点,R1.1.2节点和R1.1.2.1节点为具备递进关系的节点。通过每个需求类型对应的子类型,按照预先构建的子类型相对关系表,确定多个子类型之间的相对关系,其中,该相对关系包括并列关系和递进关系;将每个该一级子节点和该场景主节点相连,根据每个该子类型之间的相对关系,确定每个该子类型对应的下级子节点与该一级子节点的连接关系以及多个该子类型的连接关系,以构建该场景需求知识图谱。
通过该场景需求知识图谱,对该多个当前需求类型进行需求预测,确定至少一个预测需求,具体包括:基于该当前需求类型,在该场景需求知识图谱中,确定与每个该当前需求类型对应的当前下级子节点;确定该当前下级子节点连接的至少一个参考节点,通过每个该参考节点,确定每个该当前需求类型对应的至少一个预测需求。
通过每个该参考节点,确定每个该当前需求类型对应的至少一个预测需求,具体包括:确定每个该当前下级子节点与对应的当前一级子节点的节点连接关系,其中,该节点连接关系包括当前下级子节点与一级子节点直接连接的直连关系,以及当前下级子节点与一级子节点通过至少一个参考节点连接的间接连接关系;当节点连接关系为间接连接关系时,通过该节点连接关系和间接连接关系中的指定参考子节点,确定每个该当前需求类型对应的至少一个预测需求。
在本说明书的一个实施例中,通过该场景需求知识图谱,对该多个当前需求类型进行需求预测,确定至少一个预测需求。首先,通过当前需求类型,在场景需求知识图谱中,确定与每个当前需求类型对应的当前下级子节点,假设当前下级子节点为R1.2.2.1节点,确定当前下级子节点连接的至少一个参考节点,即参考节点分别为R1.2.2节点和R1.2.2.1.1节点。
确定每个当前下级子节点R1.2.2.1节点与对应的当前一级子节点R1.2的节点连接关系,节点连接关系包括直连关系和间接连接关系,当前下级子节点与当前一级子节点直接连接的直连关系,例如R1.1.1节点和R1.1节点为直接连接的直连关系;当前下级子节点R1.1.2.1与一级子节点R1.1通过至少一个参考节点(R1.1.2)连接的间接连接关系。当节点连接关系为间接连接关系时,通过该节点连接关系和每个参考子节点,确定每个该当前需求类型对应的至少一个预测需求。当节点连接关系为间接连接关系时,将间接连接关系中的指定参考节点对应的具体的需求作为预测需求,当节点连接关系为直连关系时,则当前需求类型不存在预测需求。
继续沿用上例,假设当前下级子节点为R1.2.2.1节点,参考节点分别为R1.2.2节点和R1.2.2.1.1节点,当前下级子节点为R1.2.2.1节点与对应的一级子节点R1.2的连接关系为间接连接,其对应的指定参考子节点为R1.2.2节点,则将R1.2.2节点对应的需求作为预测得到的预测需求。
通过上述技术方案,可以进一步挖掘软件开发需求文件中的深层次需求,结合软件开发的实际场景,对开发需求进行预测,保证了开发需求的全面性。
在本说明书的一个实施例中,使用机器学习技术对当前需求信息库,进行开发需求分类,确定多个当前需求类型,并对多个当前需求类型进行需求预测,确定至少一个预测需求,将多个当前需求类型对应的预测需求,确定为实际开发需求。其中,该实际开发需求包括功能需求、性能需求和接口需求。通过上述技术方案,在得到需求类型之后,对需求进行预测,避免软件开发需求文档提取信息的单一性,进一步保证了开发需求的全面性。
步骤S103,通过预先训练的机器学习模型和实际开发需求,生成与实际开发需求匹配的多个需求代码片段,根据当前代码待调整参数和多个需求代码片段,生成当前需求代码。
在本说明书的一个实施例中,首先需要收集大量的代码样本,这些样本可以是开源项目、代码竞赛、教材等来源。在收集到样本后,需要进行数据清洗和预处理,例如去除注释、空格、多余的符号等,将代码转换为机器可以处理的格式。之后,从代码样本中提取出有用的特征,可以包括语法结构、程序控制流、变量使用情况等。使用机器学习算法,例如神经网络、决策树、随机森林等,训练模型,可以根据输入的需求和规格,自动地生成相应的代码。在模型训练完成后,还可以对模型进行优化,以提高其性能和准确性。例如,可以使用交叉验证、调整超参数、使用不同的算法等。最后在模型优化完成后,可以使用模型自动生成代码。对于不同的需求和规格,可以提供不同的输入,例如程序的控制流、数据结构、算法要求等。生成与实际开发需求匹配的多个需求代码片段之后,根据当前代码待调整参数和多个需求代码片段,生成当前需求代码。
步骤S104,通过智能测试技术,根据软件应用场景信息,生成匹配的场景测试示例,以通过场景测试示例对当前需求代码进行测试,确定与软件开发需求文档匹配的软件代码数据,实现自动化软件开发。
在本说明书的一个实施例中,智能测试技术指的是在测试领域应用人工智能技术,以提高测试的效率和准确性。智能测试技术可以应用于软件测试和硬件测试等多个领域,利用机器学习和自然语言处理等技术,自动生成测试用例,提高测试的效率和质量。基于接口文档和现网流量数据的智能API测试生成技术,可以自动生成单接口与多接口业务场景的双覆盖测试用例。通过对大量的测试数据进行智能分析,发现测试数据中的规律和异常,提高测试的准确性和效率,利用机器学习算法对测试结果进行分析,找出导致失败的原因,并提出相应的解决方案。利用自动化测试工具和框架,实现自动化测试和回归测试,提高测试的效率和质量。
通过该场景测试示例对该当前需求代码进行测试,确定与该软件开发需求文档匹配的软件代码数据之后,该方法还包括:在通过自动化测试之后,对该软件代码数据进行打包处理,以生成生成与预设部署格式匹配的代码文件;通过自动化部署脚本或自动化部署工具,将该代码文件部署到目标环境中。
通过上述技术方案,通过自然语言处理技术,对软件开发需求文件进行关键信息提取,自动化信息提取方式提高了关键信息提取的准确性,此外,考虑软件开发需求文档对应的软件应用场景信息、当前需求信息库和当前代码待调整参数,多维度考虑开发信息,结合场景、需求和参数,提供了较为全面的参考数据,进一步提高了后续软件开发与场景的适配程度;在得到需求类型之后,对需求进行预测,避免软件开发需求文档提取信息的单一性,进一步保证了开发需求的全面性;通过模型将根据需求预测的结果以及其他约束条件自动生成符合要求的代码,大大减少了手动编程的工作量;利用智能测试技术对生成的代码进行测试和验证,自动生成测试用例并执行测试,检测代码的正确性和稳定性,提高了测试的效率和准确性,提高了开发效率和代码质量,满足用户在不同场景下的开发需求。
本说明书实施例还提供一种基于人工智能的软件开发系统,软件开发系统包括自然语言处理模块、机器学习模块、自动编程模块、智能测试模块、部署自动化模块。自然语言处理模块(NLP Module,NLP),负责读取和分析软件需求文档,通过词频分析、主题模型等自然语言处理技术,提取文档中的关键信息,为后续步骤提供数据支持。机器学习模块(MLModule,ML)模块接收上一步NLP模块输出的关键信息,利用分类、聚类、预测等机器学习算法对需求进行分类和预测,为自动编程提供数据支持。自动编程模块(AP Module,AP)模块接收上一步ML模块的输出结果以及其他约束条件,自动生成符合要求的代码,减少手动编程工作量。智能测试模块(ST Module,ST)模块利用智能测试技术自动生成测试用例并执行测试,检测生成的代码的正确性和稳定性,提高测试效率和准确性。部署自动化模块(DAModule,DA)通过接收上一步ST模块测试通过的结果,该模块自动将代码部署到目标环境中,实现软件快速上线。
自然语言处理模块是整个系统的起点,负责从软件需求文档中提取关键信息。这些关键信息包括但不限于功能需求、性能指标和其他对于软件系统的重要特性。NLP模块通过读取和分析文档内容,将这些信息转化为计算机可以理解的数据格式,为后续的机器学习模块提供数据支持。
机器学习模块接收NLP模块处理过的数据,利用现有的机器学习算法(如朴素贝叶斯、支持向量机、深度学习等)对需求进行分类和预测。自动编程模块接收上一步ML模块的输出结果以及其他约束条件(如编程语言、代码规范等),自动生成符合要求的代码。生成的代码应符合相应的编程规范和质量要求,避免潜在的错误通过这些算法,ML模块可以自动化地确定软件系统的功能和特性,为自动编程提供数据支持。和缺陷。
智能测试模块是质量保证的关键部分,接收上一步AP模块生成的代码,利用现有的智能测试技术自动生成测试用例并执行测试。这些测试用例应覆盖各种情况和边界条件,以确保软件的正确性和稳定性。部署自动化模块是整个系统的终点,接收上一步ST模块测试通过的结果,自动将代码部署到目标环境中。部署过程应确保软件的正确运行和性能表现,同时注意安全性方面的问题。
在整个过程中,各个模块之间数据交互频繁,且具有紧密的依赖关系。NLP模块的输出结果直接影响ML模块的输入,ML模块的输出结果又直接影响AP模块的输入,以此类推。每个模块在处理完相应的任务后,将结果传递给下一个模块,从而形成一个完整的、自动化的软件开发流程。
本说明书实施例还提供一种基于人工智能的软件开发设备,如图3所示,设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:
获取用户预先设置的软件开发需求文档,以通过自然语言处理技术,对该软件开发需求文件进行关键信息提取,确定该软件开发需求文档对应的软件应用场景信息、当前需求信息库和当前代码待调整参数,其中,该当前需求信息库包括多个需求信息;使用机器学习技术对该当前需求信息库,进行开发需求分类,确定多个当前需求类型,并对该多个当前需求类型进行需求预测,确定至少一个预测需求,以确定实际开发需求,其中,该实际开发需求包括功能需求、性能需求和接口需求;通过预先训练的机器学习模型和该实际开发需求,生成与该实际开发需求匹配的多个需求代码片段,根据该当前代码待调整参数和该多个需求代码片段,生成当前需求代码;通过智能测试技术,根据该软件应用场景信息,生成匹配的场景测试示例,以通过该场景测试示例对该当前需求代码进行测试,确定与该软件开发需求文档匹配的软件代码数据,实现自动化软件开发。
本说明书实施例还提供一种非易失性计算机存储介质,存储有计算机可执行指令,计算机可执行指令设置为:
获取用户预先设置的软件开发需求文档,以通过自然语言处理技术,对该软件开发需求文件进行关键信息提取,确定该软件开发需求文档对应的软件应用场景信息、当前需求信息库和当前代码待调整参数,其中,该当前需求信息库包括多个需求信息;使用机器学习技术对该当前需求信息库,进行开发需求分类,确定多个当前需求类型,并对该多个当前需求类型进行需求预测,确定至少一个预测需求,以确定实际开发需求,其中,该实际开发需求包括功能需求、性能需求和接口需求;通过预先训练的机器学习模型和该实际开发需求,生成与该实际开发需求匹配的多个需求代码片段,根据该当前代码待调整参数和该多个需求代码片段,生成当前需求代码;通过智能测试技术,根据该软件应用场景信息,生成匹配的场景测试示例,以通过该场景测试示例对该当前需求代码进行测试,确定与该软件开发需求文档匹配的软件代码数据,实现自动化软件开发。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书实施例提供的设备和介质与方法是一一对应的,因此,设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (10)
1.一种基于人工智能的软件开发方法,其特征在于,所述方法包括:
获取用户预先设置的软件开发需求文档,以通过自然语言处理技术,对所述软件开发需求文件进行关键信息提取,确定所述软件开发需求文档对应的软件应用场景信息、当前需求信息库和当前代码待调整参数,其中,所述当前需求信息库包括多个需求信息;
使用机器学习技术对所述当前需求信息库,进行开发需求分类,确定多个当前需求类型,并对所述多个当前需求类型进行需求预测,确定至少一个预测需求,以确定实际开发需求,其中,所述实际开发需求包括功能需求、性能需求和接口需求;
通过预先训练的机器学习模型和所述实际开发需求,生成与所述实际开发需求匹配的多个需求代码片段,根据所述当前代码待调整参数和所述多个需求代码片段,生成当前需求代码;
通过智能测试技术,根据所述软件应用场景信息,生成匹配的场景测试示例,以通过所述场景测试示例对所述当前需求代码进行测试,确定与所述软件开发需求文档匹配的软件代码数据,实现自动化软件开发。
2.根据权利要求1所述的一种基于人工智能的软件开发方法,其特征在于,通过自然语言处理技术,对所述软件开发需求文件进行关键信息提取,确定所述软件开发需求文档对应的软件应用场景信息、当前需求信息库和当前代码待调整参数,具体包括:
通过自然语言处理技术,对所述软件开发需求文件进行自然语言处理,确定所述软件开发需求文件中的多个语义文本,其中,所述自然语言处理包括词性标注、句法分析和语义分析中的任意一项或多项;
对每个所述语义文本进行语义识别,以对每个所述语义文本设置文本标签,确定场景类语义文本、需求类语义文本和参数类语义文本;
通过所述场景类语义文本和所述参数类语义文本,确定所述软件开发需求文档对应的软件应用场景信息和当前代码待调整参数;
对所述需求类语义文本进行与语义特征提取,生成多个需求字段,并对每个所述需求字段进行语义扩充,得到每个所述需求字段对应的至少一个扩展字段;
基于所述多个需求字段和每个所述需求字段对应的至少一个扩展字段,生成所述当前需求信息库。
3.根据权利要求2所述的一种基于人工智能的软件开发方法,其特征在于,使用机器学习技术对所述当前需求信息库,进行开发需求分类,确定多个当前需求类型,具体包括:
将每个所述需求字段和每个所述需求字段对应的至少一个扩展字段进行绑定,生成多个需求字段组;
通过预先训练的需求分类模型,对每个所述需求字段组中的字段分别进行分类,确定每个所述需求字段组对应的至少一个需求类型;
当指定需求字段组对应多个需求类型时,统计每个所述需求类型的数量,将所述多个需求类型中数量最多的指定需求类型作为所述指定需求字段组对应的当前需求类型。
4.根据权利要求1所述的一种基于人工智能的软件开发方法,其特征在于,对所述多个当前需求类型进行需求预测,确定至少一个预测需求,具体包括:
获取与所述软件应用场景信息对应的多个历史软件代码,对每个所述历史软件代码进行需求分析,确定每个所述历史软件代码的多个历史实现需求;
通过所述多个历史实现需求,构建所述软件应用场景信息对应的场景需求知识图谱,以通过所述场景需求知识图谱,对所述多个当前需求类型进行需求预测,确定至少一个预测需求。
5.根据权利要求4所述的一种基于人工智能的软件开发方法,其特征在于,通过所述多个历史实现需求,构建所述软件应用场景信息对应的场景需求知识图谱,具体包括:
对所述历史实现需求进行分类,确定每个所述历史实现需求的需求类型,其中,所述需求类型包括功能需求、性能需求和接口需求;
对每个需求类型下的多个历史需求进行再分类,以确定每个所述需求类型对应的子类型,其中,所述子类型用于表示每个所述需求类型对应的功能类型或性能类型或接口类型;
以所述软件应用场景信息作为场景主节点,所述功能需求、所述性能需求和所述接口需求分别作为一级子节点;
通过每个所述需求类型对应的子类型,按照预先构建的子类型相对关系表,确定多个所述子类型之间的相对关系,其中,所述相对关系包括并列关系和递进关系;
将每个所述一级子节点和所述场景主节点相连,根据每个所述子类型之间的相对关系,确定每个所述子类型对应的下级子节点与所述一级子节点的连接关系以及多个所述子类型的连接关系,以构建所述场景需求知识图谱。
6.根据权利要求5所述的一种基于人工智能的软件开发方法,其特征在于,通过所述场景需求知识图谱,对所述多个当前需求类型进行需求预测,确定至少一个预测需求,具体包括:
基于所述当前需求类型,在所述场景需求知识图谱中,确定与每个所述当前需求类型对应的当前下级子节点;
确定所述当前下级子节点连接的至少一个参考节点,通过每个所述参考节点,确定每个所述当前需求类型对应的至少一个预测需求。
7.根据权利要求6所述的一种基于人工智能的软件开发方法,其特征在于,通过每个所述参考节点,确定每个所述当前需求类型对应的至少一个预测需求,具体包括:
确定每个所述当前下级子节点与对应的当前一级子节点的节点连接关系,其中,所述节点连接关系包括当前下级子节点与一级子节点直接连接的直连关系,以及当前下级子节点与一级子节点通过至少一个参考节点连接的间接连接关系;
当所述节点连接关系为所述间接连接关系时,通过所述节点连接关系和所述间接连接关系中的指定参考子节点,确定每个所述当前需求类型对应的至少一个预测需求。
8.根据权利要求1所述的一种基于人工智能的软件开发方法,其特征在于,通过所述场景测试示例对所述当前需求代码进行测试,确定与所述软件开发需求文档匹配的软件代码数据之后,所述方法还包括:
在通过自动化测试之后,对所述软件代码数据进行打包处理,以生成生成与预设部署格式匹配的代码文件;
通过自动化部署脚本或自动化部署工具,将所述代码文件部署到目标环境中。
9.一种基于人工智能的软件开发设备,其特征在于,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取用户预先设置的软件开发需求文档,以通过自然语言处理技术,对所述软件开发需求文件进行关键信息提取,确定所述软件开发需求文档对应的软件应用场景信息、当前需求信息库和当前代码待调整参数,其中,所述当前需求信息库包括多个需求信息;
使用机器学习技术对所述当前需求信息库,进行开发需求分类,确定多个当前需求类型,并对所述多个当前需求类型进行需求预测,确定至少一个预测需求,以确定实际开发需求,其中,所述实际开发需求包括功能需求、性能需求和接口需求;
通过预先训练的机器学习模型和所述实际开发需求,生成与所述实际开发需求匹配的多个需求代码片段,根据所述当前代码待调整参数和所述多个需求代码片段,生成当前需求代码;
通过智能测试技术,根据所述软件应用场景信息,生成匹配的场景测试示例,以通过所述场景测试示例对所述当前需求代码进行测试,确定与所述软件开发需求文档匹配的软件代码数据,实现自动化软件开发。
10.一种非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:
获取用户预先设置的软件开发需求文档,以通过自然语言处理技术,对所述软件开发需求文件进行关键信息提取,确定所述软件开发需求文档对应的软件应用场景信息、当前需求信息库和当前代码待调整参数,其中,所述当前需求信息库包括多个需求信息;
使用机器学习技术对所述当前需求信息库,进行开发需求分类,确定多个当前需求类型,并对所述多个当前需求类型进行需求预测,确定至少一个预测需求,以确定实际开发需求,其中,所述实际开发需求包括功能需求、性能需求和接口需求;
通过预先训练的机器学习模型和所述实际开发需求,生成与所述实际开发需求匹配的多个需求代码片段,根据所述当前代码待调整参数和所述多个需求代码片段,生成当前需求代码;
通过智能测试技术,根据所述软件应用场景信息,生成匹配的场景测试示例,以通过所述场景测试示例对所述当前需求代码进行测试,确定与所述软件开发需求文档匹配的软件代码数据,实现自动化软件开发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311394050.8A CN117492703A (zh) | 2023-10-25 | 2023-10-25 | 一种基于人工智能的软件开发方法、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311394050.8A CN117492703A (zh) | 2023-10-25 | 2023-10-25 | 一种基于人工智能的软件开发方法、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117492703A true CN117492703A (zh) | 2024-02-02 |
Family
ID=89683934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311394050.8A Pending CN117492703A (zh) | 2023-10-25 | 2023-10-25 | 一种基于人工智能的软件开发方法、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117492703A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117891447A (zh) * | 2024-03-14 | 2024-04-16 | 蒲惠智造科技股份有限公司 | 一种企业管理软件开发方法、装置、设备及介质 |
-
2023
- 2023-10-25 CN CN202311394050.8A patent/CN117492703A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117891447A (zh) * | 2024-03-14 | 2024-04-16 | 蒲惠智造科技股份有限公司 | 一种企业管理软件开发方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11416622B2 (en) | Open source vulnerability prediction with machine learning ensemble | |
Weston et al. | A framework for constructing semantically composable feature models from natural language requirements | |
US9542477B2 (en) | Method of automated discovery of topics relatedness | |
CN112070138B (zh) | 多标签混合分类模型的构建方法、新闻分类方法及系统 | |
US11995438B2 (en) | System and method for software architecture redesign | |
EP4111375A1 (en) | Automated content tagging with latent dirichlet allocation of contextual word embeddings | |
US20200272435A1 (en) | Systems and methods for virtual programming by artificial intelligence | |
CN117492703A (zh) | 一种基于人工智能的软件开发方法、设备及介质 | |
CN116882978B (zh) | 一种基于产品信息框架的深海潜水器运维保障系统 | |
JP3737714B2 (ja) | エンドユーザ・トランザクションを識別するための方法及び装置 | |
EP3701403B1 (en) | Accelerated simulation setup process using prior knowledge extraction for problem matching | |
Kaur et al. | A review of artificial intelligence techniques for requirement engineering | |
CN114730169A (zh) | 认知工程的自动化工程学习框架 | |
CN116560631B (zh) | 一种机器学习模型代码的生成方法及装置 | |
CN117851233A (zh) | 一种基于大语言模型的软件漏洞复现方法 | |
CN115309650A (zh) | 模型处理方法以及装置 | |
Catal et al. | Automatic software categorization using ensemble methods and bytecode analysis | |
Munir et al. | Log attention–assessing software releases with attention-based log anomaly detection | |
Agrawal et al. | Automatically retrainable self improving model for the automated classification of software incidents into multiple classes | |
Ahmed et al. | The role of Natural Language Processing in requirement engineering | |
CN117111902B (zh) | Ai智能软件开发方法及装置 | |
Nadim et al. | Utilizing source code syntax patterns to detect bug inducing commits using machine learning models | |
Dwarakanath et al. | Software Defect Prediction Using Deep Semantic Feature Learning | |
CN116991459A (zh) | 一种软件多缺陷信息预测方法与系统 | |
EP4369187A1 (en) | Method and system for implementing a virtual assistant for automatic configuration of engineering objects |
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 |