Software updating method and device, equipment, medium and program product
An AI-driven software update method addresses inefficiencies by comparing and analyzing code differences, enhancing detection accuracy and automating compliance checks to ensure safe and efficient software updates.
Patent Information
- Application Number
- CN202510798073.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-16
- Publication Date
- 2025-07-15
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
The existing software update technology has information silos, process fragmentation, redundant management, compliance risks and incomplete information, resulting in low efficiency and insufficient intelligence of software updates.
The artificial intelligence model is used to differentiate the code of the software to be updated, and combined with multi-layer approval process and automated inspection to achieve intelligent software update management.
It improves the efficiency and accuracy of software updates, reduces human errors and risks, and realizes the intelligence and automation of software updates.
Smart Images

Figure CN120315741A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of software engineering, and particularly to a software update method, device, equipment, medium, and program product. Background Art
[0002] Software Update refers to the process of enhancing the functions, fixing bugs, applying security patches, or optimizing the performance of an existing software system. With the expansion of software scale and the diversification of user requirements, the frequency of software updates is getting faster and faster. Therefore, how to complete software updates efficiently and intelligently has become an urgent problem to be solved. Summary of the Invention
[0003] This application provides a software update method, device, equipment, medium, and program product, which is beneficial to improving the efficiency and intelligence of software updates.
[0004] In a first aspect, an embodiment of this application provides a software update method, which includes: obtaining a first code of the software to be updated and a second code of the software to be updated; the first code is the code of the software to be updated before being updated; the second code is the code of the software to be updated after being updated; based on a first Artificial Intelligence (AI) model, comparing the first code and the second code to obtain comparison information; the comparison information includes: the difference code in the second code that is different from the first code; based on a second AI model, analyzing the difference code to obtain error analysis information; based on the comparison information, the error analysis information, and the second code, releasing the software corresponding to the second code.
[0005] It can be understood that in the software update method provided by the embodiment of this application, the code of the software to be updated before being updated and the code of the software to be updated after being updated are obtained, and based on the first AI model, a differential comparison is made between the code before being updated and the code after being updated to obtain comparison information; based on the second AI model, the difference code is analyzed to obtain error analysis information; based on the comparison information, the error analysis information, and the code after being updated, the software corresponding to the second code is released. In this way, AI is introduced into the software update process, and thus the code is analyzed based on the AI model, improving the efficiency and accuracy of code detection, and improving the intelligence of software updates.
[0006] In some embodiments, releasing the software corresponding to the second code based on the comparison information, the error analysis information, and the second code includes: displaying the comparison information and the error analysis information, and sending a first approval request so that a first approval node approves based on the comparison information and the error analysis information; in response to receiving a first approval signal sent by the first approval node, performing protocol scanning and vulnerability detection on the second code to obtain risk information; and when the risk level of the risk information meets a first condition, releasing the software corresponding to the second code based on the risk information and the second code.
[0007] It can be understood that in the software update method provided in the embodiments of the present application, displaying the comparison information and the error analysis information provides the comparison result and the analysis result of the differential code for the first approval node; in response to the approval signal sent by the first approval node, performing protocol scanning and vulnerability detection on the second code to obtain risk information; and when the risk level of the risk information meets the first condition, releasing the software corresponding to the second code based on the risk information and the second code. In this way, protocol scanning and vulnerability detection are performed on the second code to determine whether the second code is compliant, whether there are vulnerabilities in the second code, and what vulnerabilities exist; thus, it is beneficial to improve the efficiency and accuracy of code detection and the intelligence of software update.
[0008] In some embodiments, releasing the software corresponding to the second code based on the risk information and the second code includes: displaying the risk information and sending a second approval request so that a second approval node approves based on the risk information; in response to receiving a second approval signal sent by the second approval node, performing risk prediction on the second code based on a third AI model to obtain evaluation information; displaying the evaluation information and sending a third approval request so that a third approval node approves based on the evaluation information; and in response to receiving a third approval signal sent by the third approval node, releasing the software corresponding to the second code.
[0009] It can be understood that in the software update method provided in the embodiments of the present application, the risk information is displayed to inform the second approval node of the protocol scanning result and the vulnerability detection result; in response to receiving the approval signal sent by the second approval node, based on the third AI model, risk prediction is performed on the second code to obtain evaluation information; the evaluation information is displayed, and in response to receiving the approval signal sent by the third approval node, the software corresponding to the second code is released. In this way, when the second approval node determines that the second code is approved based on the protocol scanning result and the vulnerability detection result, risk assessment is performed on the second code; when the third approval node determines that the third code is approved based on the risk assessment result, the software corresponding to the second code is released; thereby helping to improve the efficiency and accuracy of code detection and reduce the risk of software going online.
[0010] In some embodiments, the method further includes: training the third AI model based on the second code, the error analysis information, the risk information, and the evaluation information to obtain a trained third AI model; using the trained third AI model as the third AI model.
[0011] It can be understood that in the software update method provided in the embodiments of the present application, the third AI model will be trained based on the second code, error analysis information, risk information, and evaluation information corresponding to the software to be updated in this update, so as to update the third AI model. In this way, it helps to improve the performance of the third AI model, making the evaluation information obtained based on the third AI model more accurate, thereby further reducing the risk of software going online.
[0012] In some embodiments, when the risk level of the risk information does not meet the first condition, the method further includes: returning the approval node to the first approval node to re-obtain the third code of the software to be updated, where the third code is the code after the software to be updated is updated; the third code is different from the second code; using the third code as the second code; and releasing the software corresponding to the second code based on the first AI model, the second AI model, the first code, and the second code.
[0013] It can be understood that in the software update method provided in the embodiments of the present application, when the risk level of the risk information does not meet the first condition, the node is returned to the first approval node to re-obtain the third code after the software to be updated is updated; and the third code is used as the second code; and the software corresponding to the second code is re-released based on the first AI model, the second AI model, the first code, and the second code. In this way, when the risk level does not meet the first condition, the software corresponding to the second code is not released, but the third code is re-obtained; thereby helping to reduce the risk of software going online.
[0014] In some embodiments, releasing the software corresponding to the second code includes: receiving a first release instruction for instructing to release the software corresponding to the second code at a scheduled time; receiving the release time of the software corresponding to the second code; and releasing the software corresponding to the second code at the release time in response to the first release instruction.
[0015] It can be understood that in the software update method provided in the embodiments of the present application, the software corresponding to the second code can be released at a scheduled time based on the received instruction for releasing the software corresponding to the second code at a scheduled time and the received release time of the software corresponding to the second code. In this way, it is beneficial to improve the intelligence and automation of software release.
[0016] In some embodiments, the method further includes: receiving first information of the software to be updated, where the first information includes at least one of the following: the iteration version number of the software to be updated, the identifier of the software to be updated, and the online type of the software to be updated; obtaining second information of the software to be updated based on the first information; where the second information includes at least one of the following: repository information, the version number of the software corresponding to the released second code, requirement description, function points, dependencies, and remaining issues; establishing a mapping relationship between the first information and the second information; and saving the mapping relationship, the first information, and the second information to query the second information based on the mapping relationship and the first information.
[0017] It can be understood that in the software update method provided in the embodiments of the present application, only the iteration version number of the software to be updated and / or the identifier of the software to be updated and / or the online type of the software to be updated need to be filled in manually, and then the repository information, the version number of the software corresponding to the released second code, requirement description, function points, dependencies, remaining issues, etc. of the software to be updated can be automatically obtained and saved. In this way, it is beneficial to record more information, thus facilitating the maintenance of the software to be updated and reducing the risk of manual recording; and establishing a mapping relationship between the first information and the second information; saving the mapping relationship, the first information, and the second information to query the second information based on the mapping relationship and the first information. In this way, it is beneficial to query the information of the software to be updated corresponding to the first mapping relationship and the first information.
[0018] In some embodiments, the method further includes: receiving a first operation; the first operation is used to indicate a target template of the software to be updated; based on the indication of the first operation, determining the target template of the software to be updated from a plurality of templates; based on a second operation, determining a target approval node in the target template; the target approval node includes at least one of a first approval node, the second approval node, and the third approval node; sending an approval request to the target approval node so that the target approval node conducts an approval.
[0019] It can be understood that in the software update method provided in the embodiments of the present application, the received first approval node, second approval node, and third approval node can be saved as a template. In this way, in the case of updating the software next time, if the approval nodes remain unchanged, there is no need to re-enter the approval nodes, and the template can be directly used; thus reducing the operation cost.
[0020] In a second aspect, an embodiment of the present application provides a software update device, which includes: an acquisition module configured to acquire a first code of the software to be updated and a second code of the software to be updated; the first code is the code of the software to be updated before being updated; the second code is the code of the software to be updated after being updated; a comparison module configured to compare the first code and the second code based on a first AI model to obtain comparison information; the comparison information includes: difference codes in the second code that are different from the first code; an analysis module configured to analyze the difference codes based on a second AI model to obtain error analysis information; a release module configured to release the software corresponding to the second code based on the comparison information, the error analysis information, and the second code.
[0021] In a third aspect, an embodiment of the present application provides an electronic device, including a memory and a processor, where the memory stores a computer program that can run on the processor, and when the processor executes the program, the method described in the first aspect is implemented.
[0022] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, on which a computer program is stored, and when the computer program is executed, the method described in the first aspect is implemented.
[0023] In a fifth aspect, an embodiment of the present application provides a computer program product, including a computer program or instruction, and when the computer program or instruction is executed, the method described in the first aspect is implemented. BRIEF DESCRIPTION OF THE DRAWINGS
[0024] Figure 1 Schematic diagram of the implementation process of a software update method provided by an embodiment of the present application Figure 1 ; Figure 2Schematic implementation process of a software update method provided by an embodiment of the present application Figure 2 ; Figure 3 Schematic implementation process of a software update method provided by an embodiment of the present application Figure 3 ; Figure 4 Schematic implementation process of a software update method provided by an embodiment of the present application Figure 4 ; Figure 5 Schematic diagram of the implementation process of releasing software provided by an embodiment of the present application; Figure 6 Schematic implementation process of a software update method provided by an embodiment of the present application Figure 5 ; Figure 7 Schematic implementation process of a software update method provided by an embodiment of the present application Figure 6 ; Figure 8 Schematic diagram of a software update process provided by an embodiment of the present application; Figure 9 Schematic diagram of a software update device provided by an embodiment of the present application; Figure 10 Schematic diagram of the structure of an electronic device provided by an embodiment of the present application. Detailed implementation manners
[0025] Next, the technical solutions in the embodiments of the present application will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present application.
[0026] In order to make the purpose, technical solutions, and advantages of the present application clearer, the present application will be further described in conjunction with the accompanying drawings. The following described embodiments are only a part of the embodiments of the present application, rather than all of the embodiments. Therefore, the described embodiments should not be regarded as a limitation to the present application. All other embodiments obtained by those of ordinary skill in the art without creative efforts fall within the scope of protection of the present application.
[0027] In the following description, reference is made to "some embodiments \ other embodiments", which describe subsets of all possible embodiments. However, it can be understood that "some embodiments \ other embodiments" can be the same subset or different subsets of all possible embodiments, and can be combined with each other without conflict.
[0028] In the following description, the terms "first / second" only distinguish similar objects and do not represent a specific order for the objects. Understandably, "first / second" can be interchanged with a specific order or sequence when allowed, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.
[0029] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those of ordinary skill in the technical field to which this application belongs. The terms used herein are only for the purpose of describing the embodiments of this application and are not intended to limit this application.
[0030] In a related technology, a software version package management method, device, equipment, and medium are proposed; in this method, a bastion host deployed in a test environment receives a software version upload instruction sent by a client, and based on the first verification code in the software version upload instruction, performs an integrity verification on the software version package. When the software version package is complete, according to the first load balancing policy, a target relay server is selected from the relay server cluster, and based on the identification information of the target relay server and the first relative storage path, a second relative storage path of the software version package is generated, and the software version package and the first verification code are sent to the relay server according to the second relative storage path, so that the target relay server performs an integrity verification on the software version package and sends the software version package to the version server when the software version package is complete.
[0031] In another related technology, an upgrade record management system and method are proposed; this method proposes to use the technology of writing and querying in a data storage module, automatically generate upgrade records according to the records, and can filter the upgrade records, summarize the filtering results into an upgrade list, and the upgrade list can be exported or directly sent as an email to relevant personnel. This improves the efficiency of summarizing upgrade records and avoids omissions that may be caused by manually summarizing upgrade content. At the same time, by querying the upgrade records, it helps to review past modifications and provides evidence to check whether a problem is caused by an upgrade when a problem occurs online.
[0032] However, through research and analysis, the inventors of the present application have found the following problems in the related technology: (1) The problem of information silos, only basic information is recorded: The code is out of touch with the requirements: The code changes in the Git repository are not integrated, such as: commit identifiers (CommitIdentifier, commit ID), branch status; and key development data such as changes in dependency relationships are not integrated, such as: updates to third-party library versions; Process fragmentation: The approval process relies on manual operations and lacks an automated trigger mechanism; for example, automatically trigger software quality assurance (SQA) approval after passing the test. Redundant management: Manual entry leads to duplicate labor. For example, the approver and environment address need to be filled in again each time.
[0033] (2) Compliance risks: Software copyright compliance verification is not involved, such as detecting open source protocol conflicts; nor are the version release audit requirements.
[0034] (3) Incomplete information: The related technologies mainly focus on recording the requirements content of this upgrade, but do not record information such as warehouse information and changes in code dependencies. Moreover, the upgrade record is generated by entry without a corresponding process, which may cause relevant responsible persons to be unaware of this record. The related technologies automatically obtain the upgrade list, but mainly associate with the jira numbers of the jira system, that is, only associate with information such as requirement content.
[0035] In the embodiments of the present application, a software update method is provided. Figure 1 Schematic diagram of the implementation process of a software update method provided by the embodiments of the present application Figure 1 , as Figure 1 shown, the method includes steps 101 to 104: Step 101, obtain the first code of the software to be updated and the second code of the software to be updated; the first code is the code of the software to be updated before the update; the second code is the code of the software to be updated after the update. Step 102, based on the first AI model, compare the first code and the second code to obtain comparison information; the comparison information includes: the different differential codes in the second code from the first code. Step 103, based on the second AI model, analyze the differential codes to obtain error analysis information. Step 104, based on the comparison information, error analysis information and the second code, release the software corresponding to the second code.
[0036] It can be understood that in the software update method provided in the embodiments of the present application, the code of the software to be updated before the update and the code of the software to be updated after the update are obtained. Based on the first AI model, the code before the update and the code after the update are compared differentially to obtain comparison information; based on the second AI model, the differential code is analyzed to obtain error analysis information; based on the comparison information, the error analysis information, and the code after the update, the software corresponding to the second code is released. In this way, AI is introduced into the software update process, so that the code is analyzed based on the AI model, improving the efficiency and accuracy of code detection and the intelligence of software update.
[0037] The further optional implementation manners of the above steps and related terms are described below respectively.
[0038] In step 101, the first code of the software to be updated and the second code of the software to be updated are obtained; the first code is the code of the software to be updated before the update; the second code is the code of the software to be updated after the update.
[0039] It should be understood that in the embodiments of the present application, the software to be updated is not limited, and the software to be updated is any software. In some embodiments, the software to be updated is an embedded system.
[0040] In the embodiments of the present application, the implementation manner of obtaining the first code and the second code is not limited. In some embodiments, obtaining the first code and the second code includes: receiving the first code and the second code uploaded by a developer; in other embodiments, obtaining the first code and the second code includes: reading the first code and the second code from a memory.
[0041] It should be understood that in the embodiments of the present application, the storage locations of the first code and the second code are not limited. In some embodiments, the first code and the second code are stored in different locations of the same memory. In other embodiments, the first code and the second code are stored in different memories.
[0042] In step 102, based on the first AI model, the first code and the second code are compared to obtain comparison information; the comparison information includes: the differential code in the second code that is different from the first code.
[0043] It should be understood that in the embodiments of the present application, the first AI model is not limited, and the first AI model can compare the first code and the second code to obtain comparison information. In some embodiments, the first AI model is a large language model.
[0044] In step 103, based on the second AI model, analyze the differential code to obtain error analysis information.
[0045] It should be understood that in the embodiments of the present application, the second AI model is not limited. The second AI model can analyze the differential code to obtain error analysis information. In some embodiments, the second AI model is a large language model. The structure of the first AI model and the second AI model can be the same or different.
[0046] In the embodiments of the present application, the analysis is not limited. In some embodiments, the error analysis information includes but is not limited to at least one of the following: the syntax analysis result of the differential code; the function analysis result of the differential code. In some embodiments, the differential code includes: newly added Structured Query Language (SQL) statements, modified SQL statements, etc.
[0047] Exemplarily, in a possible implementation, embed code difference comparison (such as Beyond Compare) and SQL change impact analysis module in the software update process, automatically generate change information and add it as an attachment for the approver or traceability. Among them, the code difference comparison is used to determine the changed code; the SQL change impact analysis module is used to analyze whether the syntax of the newly added SQL statements and modified SQL statements is correct; and the SQL change impact analysis module is used to compare the newly added databases, or the newly added databases with modifications, the newly added databases to be deleted, the newly added databases with changes, etc.
[0048] In step 104, based on the comparison information, the error analysis information, and the second code, release the software corresponding to the second code.
[0049] In some embodiments, Figure 2 is a schematic implementation process of a software update method provided by the embodiments of the present application Figure 2 as Figure 2 shown. Based on the comparison information, the error analysis information, and the second code, the software corresponding to the second code can be released through the following steps 201 to 203: Step 201, display the comparison information and the error analysis information, and send a first approval request to enable the first approval node to approve based on the comparison information and the error analysis information; Step 202, in response to receiving the first approval passed signal sent by the first approval node, perform protocol scanning and vulnerability detection on the second code to obtain risk information; Step 203, when the risk level of the risk information meets the first condition, release the software corresponding to the second code based on the risk information and the second code.
[0050] It can be understood that in the software update method provided in the embodiments of the present application, the comparison information and the error analysis information are displayed to provide the comparison result and the analysis result of the differential code for the first approval node; in response to the approval signal sent by the first approval node, protocol scanning and vulnerability detection are performed on the second code to obtain risk information; when the risk level of the risk information meets the first condition, release the software corresponding to the second code based on the risk information and the second code. In this way, protocol scanning and vulnerability detection are performed on the second code, so as to determine whether the second code is compliant, and to determine whether there are vulnerabilities in the second code and what vulnerabilities exist; thus, it is beneficial to improve the efficiency and accuracy of code detection and the intelligence of software update.
[0051] It should be understood that in the embodiments of the present application, the first approval node is not limited. In some embodiments, the first approval node is the approval node corresponding to the developer of the software to be updated. In other embodiments, the first approval node is the approval node corresponding to the team leader in charge of the software to be updated.
[0052] In some embodiments, the performing protocol scanning and vulnerability detection on the second code to obtain risk information includes: performing protocol scanning on the second code based on the fourth AI model to obtain a scanning result; performing vulnerability detection on the second code based on the fifth AI model to obtain a detection result; obtaining the risk information based on the scanning result and the detection result.
[0053] In some embodiments, the first condition includes: the risk level of the risk information is a non-high risk level.
[0054] In some embodiments, Figure 3 is a schematic implementation process of a software update method provided in the embodiments of the present application Figure 3 As Figure 3 shown, the software corresponding to the second code can be released based on the risk information and the second code through the following steps 301 to 304: Step 301, display the risk information and send a second approval request to enable the second approval node to perform approval based on the risk information; Step 302, in response to receiving the second approval signal sent by the second approval node, perform risk prediction on the second code based on the third AI model to obtain evaluation information; Step 303, display the evaluation information and send a third approval request to enable the third approval node to perform approval based on the evaluation information; Step 304, in response to receiving the third approval passed signal sent by the third approval node, release the software corresponding to the second code.
[0055] It can be understood that in the software update method provided in the embodiments of the present application, the risk information is displayed to inform the second approval node of the protocol scan result and the vulnerability detection result; in response to receiving the approval passed signal sent by the second approval node, based on the third AI model, risk prediction is performed on the second code to obtain evaluation information; the evaluation information is displayed, and in response to receiving the approval passed signal sent by the third approval node, the software corresponding to the second code is released. In this way, when the second approval node determines that the second code is approved based on the protocol scan result and the vulnerability detection result, risk assessment is performed on the second code; when the third approver determines that the third code is approved based on the risk assessment result, the software corresponding to the second code is released; thus, it is beneficial to improve the efficiency and accuracy of code detection and reduce the risk of software going online.
[0056] It should be understood that in the embodiments of the present application, the third AI model is not limited, as long as the third AI model can perform risk prediction on the second code to obtain evaluation information. In some embodiments, the third AI model is a large language model. The structure of the third AI model may be the same as or different from that of the second AI model and the first AI model.
[0057] Exemplarily, in a possible implementation manner, an intelligent decision-making layer is introduced. After the testers (corresponding to the second approval node) and the quality personnel approve, the AI risk assessment module will be executed in the approval process, and the model is trained through historical failure data to predict the online problems that may be caused by the changes; for example: abnormal pattern recognition based on Log Analysis, and then the AI risk assessment information is added as an attachment, and the main person in charge can make an approval decision based on the risk assessment information.
[0058] In some embodiments, the method further includes: training the third AI model based on the second code, the error analysis information, the risk information, and the evaluation information to obtain a trained third AI model; using the trained third AI model as the third AI model.
[0059] It can be understood that in the software update method provided in the embodiments of the present application, the third AI model will be trained based on the second code, the error analysis information, the risk information, and the evaluation information corresponding to the software to be updated in this update, so as to update the third AI model. In this way, it is beneficial to improve the performance of the third AI model, make the evaluation information obtained based on the third AI model more accurate, and thus further reduce the risk of software going online.
[0060] In some embodiments, Figure 4 is a schematic implementation process of a software update method provided by an embodiment of the present application Figure 4 , as Figure 4 shown, when the risk level of the risk information does not meet the first condition, the method further includes the following steps 401 to 403: Step 401, return the approval node to the first approval node to re-obtain the third code of the software to be updated, where the third code is the code after the software to be updated is updated; the third code is different from the second code; Step 402, use the third code as the second code; Step 403, based on the first AI model, the second AI model, the first code, and the second code, release the software corresponding to the second code.
[0061] It can be understood that in the software update method provided by the embodiment of the present application, when the risk level of the risk information does not meet the first condition, the node is returned to the first approval node to re-obtain the third code after the software to be updated is updated; and the third code is used as the second code; and the software corresponding to the second code is re-released based on the first AI model, the second AI model, the first code, and the second code. In this way, when the risk level does not meet the first condition, the software corresponding to the second code is not released, but the third code is re-obtained; thus, it is beneficial to reduce the risk of software going online.
[0062] In some embodiments, the risk level of the risk information not meeting the first condition includes: the risk level of the risk information is a high-risk level.
[0063] Exemplarily, in a possible implementation manner, risk control operations are added. After the developer (corresponding to the first approval node) completes the approval, open source protocol scanning and dependency vulnerability detection will be performed in the approval process to generate risk information. If it is in a high-risk state, the tester cannot perform the approval and will automatically roll back to the developer for re-review and modification. Among them, the dependency vulnerability detection is used to detect the entire code, including: front-end code, back-end code, database, etc.
[0064] In some embodiments, Figure 5 is a schematic implementation process diagram of releasing software provided by an embodiment of the present application. As Figure 5 shown, the software corresponding to the second code can be released through the following steps 501 to 503: Step 501, receive a first release instruction, where the first release instruction is used to indicate the timed release of the software corresponding to the second code; Step 502, receive the release time of the software corresponding to the second code; Step 503: At the release time, in response to the first release instruction, release the software corresponding to the second code.
[0065] It can be understood that in the software update method provided in the embodiments of the present application, it is possible to schedule the release of the software corresponding to the second code based on the received instruction for scheduled release of the software corresponding to the second code and the received release time of the software corresponding to the second code. In this way, it is beneficial to improve the intelligence and automation of software release.
[0066] Exemplarily, in a possible implementation, a clear online time is arranged, and it is also possible to select whether to schedule the release. If the selection is yes, it will be sent at the time point; otherwise, the online time will be recorded.
[0067] In some embodiments, Figure 6 is a schematic implementation process of a software update method provided in the embodiments of the present application Figure 5 , as Figure 6 shown, the method further includes the following steps 601 to 604: Step 601: Receive the first information of the software to be updated, where the first information includes at least one of the following: the iteration version number of the software to be updated, the identifier of the software to be updated, and the online type of the software to be updated; Step 602: Based on the first information, obtain the second information of the software to be updated; the second information includes at least one of the following: repository information, version number, requirement description, function points, dependency relationship, and remaining issues; Step 603: Establish a mapping relationship between the first information and the second information; Step 604: Save the mapping relationship, the first information, and the second information to query the second information based on the mapping relationship and the first information.
[0068] It can be understood that in the software update method provided in the embodiments of the present application, it is only necessary to manually fill in the iteration version number of the software to be updated and / or the identifier of the software to be updated and / or the online type of the software to be updated, and then the repository information of the software to be updated, the version number of the software corresponding to the released second code, requirement description, function points, dependency relationship, remaining issues, etc. can be automatically obtained and saved. In this way, it is beneficial to record more information, thereby facilitating the maintenance of the software to be updated and reducing the risk of manual recording; and establish a mapping relationship between the first information and the second information; save the mapping relationship, the first information, and the second information to query the second information based on the mapping relationship and the first information. In this way, it is beneficial to query the information of the software to be updated corresponding to the first mapping relationship and the first information.
[0069] In some embodiments, the online types include: new requirements, vulnerability fixes, security patches, etc.; in some embodiments, the dependencies include: project name, change type, change object, change title, change content, rollback statement; in some embodiments, the repository information includes: repository address, branch, commit identifier; in some embodiments, the outstanding issues include: issue description, severity, handler, submitter, planned resolution time.
[0070] In some embodiments, Figure 7 is a schematic implementation flow of a software update method provided by an embodiment of the present application Figure 6 , as Figure 7 shown, the method further includes the following steps 701 to 704: Step 701, receive a first operation; the first operation is used to indicate the target template of the software to be updated; Step 702, based on the indication of the first operation, determine the target template of the software to be updated from multiple templates; Step 703, based on a second operation, determine a target approval node in the target template; the target approval node includes at least one of a first approval node, a second approval node, and a third approval node; Step 704, send an approval request to the target approval node so that the target approval node conducts an approval.
[0071] It can be understood that in the software update method provided by the embodiment of the present application, the received first approval node, second approval node, and third approval node can be saved as a template. In this way, in the case of updating the software next time, if the approval nodes remain unchanged, there is no need to re-enter the approval nodes, and the template can be directly used; thus reducing the operation cost.
[0072] In some embodiments, the determining the target approval node in the target template based on the second operation includes: in response to obtaining the first code of the software to be updated and the second code of the software to be updated, determining that the target approval node in the target template is the first approval node; in response to receiving the first approval pass signal sent by the first approval node, determining that the target approval node in the target template is the second approval node; in response to receiving the second approval pass signal sent by the second approval node, determining that the target approval node in the target template is the third approval node.
[0073] The exemplary application of the embodiment of the present application in an actual application scenario will be described below.
[0074] In some embodiments, the method provided by the embodiments of the present application is applied to the update and upgrade processes of software, hardware, documents, etc. It is necessary to record the content of requirement changes in each iteration, as well as data such as required dependencies and test results. And the online process requires approval by the corresponding personnel. Only then can the online state be achieved, and then the upgrade operation can be carried out, so as to achieve the effect of recording change information and notifying relevant responsible persons.
[0075] Since there is a large amount of content in each upgrade and there is a certain degree of content redundancy, the process can be preset and templatized. The fixed content can be set as a template. Before the next process, the preset template can be selected to avoid filling in fixed information, such as approvers. And it is connected to Git. When the upgrade involves the code repository, after connecting to Git, the Git repository and branch can be selected, and the latest commit ID of the branch can be automatically obtained, avoiding manual copying errors. It is also connected to the task requirement management system. The requirement description can directly display the requirement points of the iteration by selecting the iteration in the process system, and the requirement points can be manually corrected, added or deleted.
[0076] With the gradual popularization of computers and the Internet, both life and work are full of dependence on various software. Naturally, the demand for software updates and iterations will also increase. Moreover, agile development is now used in the development of many software projects, and the iteration time and content have increased, and the version information has naturally been iterated at a high speed.
[0077] If it is necessary to accurately know the version number, updated content, changed configuration, changed SQL, changed software package, etc. of this software system update, without a standard process record, subsequent maintenance will be very difficult. Moreover, if there is no standard process specification, resulting in random system upgrade and release, it will increase the probability of online problems.
[0078] The present application provides a software version upgrade control system. Based on the concept of process management, information such as the system to be released each time, as well as the online address, time, warehouse information, and content changes for online are filled into the process, and there is a complete approval personnel process (initiator - test verification - SQA approval - department leader approval - operation and maintenance implementation - product acceptance - end); in this way, the release content information of all versions can be traced, facilitating version management.
[0079] This system can be associated with a task requirement management system similar to Jira to associate requirement and task information. It also connects to the Git repository information and the package manager. It can manage the software packages released at that time and directly record the packages corresponding to the versions, facilitating rollback operations between different versions.
[0080] Due to the rapid update and iteration of current software and the large amount of version content, without a professional recording system, version information will be chaotic and it will be difficult to track change history. If only simple version records are made, only the recorder will be clear about the version information, and the participation of other testers, products, quality personnel, etc. will be low, resulting in information asynchronization.
[0081] To solve the above problems, the embodiments of this application provide a process-based version release system. Through simple visual interface operations, the person responsible for the release system enters the system, selects the system to be released and the iterative version, and a version number generated according to the rules of the version center will be automatically generated. The repository information in Git (including repository address, branch, commit ID, etc.) will also be brought out, and the online content of this iteration of this system (including online type, requirements, function points, etc.) will be automatically brought out from the requirements management system. The DTS system (vulnerability record system) is also connected, and the outstanding issues and the vulnerabilities resolved in this iteration will be brought out. Dependency changes are unique information for each release and are only required to be filled in if necessary. Then, a process is initiated, and the process will go through steps such as the initiator - test verification - SQA approval - department head approval - operation and maintenance implementation - product acceptance - end for layer-by-layer approval. Only after the process ends can the version be released, so as to achieve the purpose of recording version information through the process.
[0082] In some embodiments, the process-based software upgrade version control system can adapt to the upgrade and update of software, hardware, documents, etc. The platform operation is simple and the interface is clear. For example, when there are new requirements added and vulnerabilities fixed in the company's system and development is completed. Then enter this system, add relevant repository information, online content, dependency changes, outstanding issues, etc., and then select the corresponding approvers and initiate the process. The corresponding approvers can check the update content one by one against this system. After passing layer-by-layer approval, the system image update and release can be carried out after all approvals are passed. Thus, the software system update and release information is made transparent, notifying all responsible parties for timely acceptance, and the version record information is traceable. And the reusability of the process is increased, and the operation of saving as a template is added. Information that needs to be fixed can be added as a template, and the template can be directly selected and filled in for the next operation. And the package management system, requirements task management system, and Git are connected, and the requirements information of the current iteration, as well as the software package and Git commit information, can be directly obtained.
[0083] And it is possible to choose whether to release at a scheduled time. To avoid mistakes in manual operations at too late a time, a release schedule can be set, and it will be linked with the rollback mechanism. An integrated log monitoring system (such as ELK) is used to automatically trigger a health check after the release. In case of an anomaly, it will roll back to the specified commit version. Among them, ELK is an open-source software stack for log management and data analysis, consisting of three core components: Elasticsearch, Logstash, and Kibana.
[0084] Integration of a difference comparison tool, embedding code difference comparison (such as Beyond Compare) and SQL change impact analysis modules in the process, automatically generating change information and adding it as an attachment for reviewers or for traceability.
[0085] Add risk control operations. After the developers' approval is completed, open-source license scanning (such as FOSSA) and dependency vulnerability detection (such as Snyk) will be performed in the approval process, generating risk information. If it is in a high-risk state, the testers will not be able to approve and will automatically roll back to the developers for further review and modification. Among them, FOSSA is a software composition analysis tool; Snyk can automatically scan the dependencies in a project, including direct dependencies and transitive dependencies, to identify known security vulnerabilities.
[0086] Introduce an intelligent decision-making layer. After the quality personnel's approval, an AI risk assessment module will be executed in the approval process. The model is trained with historical failure data to predict online problems that may be caused by the change (such as anomaly pattern recognition based on Log Analysis), and then the AI risk assessment information will be added as an attachment. The main person in charge can make an approval decision based on the risk assessment information. Among them, Log Analysis represents log analysis.
[0087] Moreover, the system operation is extremely simple. After selecting the system and iteration, it will automatically bring out information such as requirement points in the requirement management system, function points, Git addresses in the Git repository, version numbers in the version center, outstanding DTS tickets in the DTS system, and processed DTS tickets.
[0088] In some embodiments, the process provided by the embodiments of the present application includes the following steps 11 to 18: Step 11: When a system needs to be released, the responsible person enters the software upgrade version control system based on the process and initiates a new process; Step 12: Fill in the process information; System name: Select the system to which the person has access rights.
[0089] Iteration version: Select the iteration version number for this release.
[0090] Online address: Select the environment, such as the production environment, test environment, development environment, etc.
[0091] Online time: Arrange a clear online time. You can also choose whether to schedule the release. When you select "Yes", it will be sent at the selected time point after the time is reached. If you select "No", it will be recorded at a time point.
[0092] Repository information: It has been connected to Git. When you select the system, it will automatically select the Git repository. After checking the branch, it will automatically obtain the latest commit ID of that branch, which is convenient for code version backtracking and helps quickly locate problems.
[0093] Version number: After selecting the system and iteration version in the new process, it is automatically generated according to the rules of the version center.
[0094] Step 13: Fill in the content to be launched; Online type: Clearly define the nature of the update (such as new requirements, bug fixes, security patches, etc.) so that the approver can quickly understand the purpose of this release.
[0095] Requirement description: It is connected to the requirement management system. After selecting the iteration and system name for the release, the requirement points of this iteration will be directly displayed and support users to customize addition, deletion, and modification.
[0096] Designed function points: It is connected to the requirement management system. After selecting the iteration for the release, the function points of this iteration will be directly displayed and support users to customize addition, deletion, and modification.
[0097] Step 14: Fill in the remaining issues; DTS order number: It is connected to DTS. After selecting the iteration for the release, the DTS order number of this iteration will be automatically displayed, which is convenient for issue management and follow-up.
[0098] Problem description: It is connected to DTS. After selecting the iteration for the release, the problem description in DTS will be automatically filled in.
[0099] Severity: It is connected to DTS. After selecting the iteration for the release, the severity in DTS will be automatically filled in.
[0100] Handler: It is connected to DTS. After selecting the iteration for the release, the handler in DTS will be automatically filled in.
[0101] Submitter: It is connected to DTS. After selecting the iteration for the release, the submitter in DTS will be automatically filled in.
[0102] Planned resolution time: It is connected to DTS. After selecting the iteration for the release, the planned resolution time in DTS will be automatically filled in.
[0103] Step 15: Fill in the dependency changes (special content is not required); Project Name: Clearly define the project involved in the change to ensure a clear scope of change.
[0104] Change Type: Describe the specific nature of the change (such as addition, modification, deletion, etc.) to help reviewers understand the necessity and scope of impact of the change.
[0105] Change Object: Identify the specific document, module, or configuration item being changed to ensure a clear change target.
[0106] Change Title: Briefly summarize the main content of the change to enable reviewers to quickly understand the core of the change.
[0107] Change Content: Detail the specific implementation steps and modification details of the change for easy traceability and verification.
[0108] Rollback Statement: Provide the steps or commands to restore the original state if the change causes problems to ensure the reversibility and security of the change.
[0109] Step 16: Fill in the reviewers for each process; Testing: Ensure that the new functionality or fixed code is fully tested before going live to reduce post - launch issues.
[0110] SDQ: (Assumed to be the Quality Assurance department), responsible for evaluating code quality to ensure compliance with standards.
[0111] Department Head: The final approver, responsible for evaluating the impact of the change from an overall perspective.
[0112] Operation and Maintenance Implementation: Ensure the smooth implementation of the change in the production environment to reduce the risk of going live.
[0113] Product Acceptance: Confirm that the change meets product requirements and user expectations to ensure the user experience.
[0114] Step 17: Fill in the reviewers for each process; When clicking the save process button, a prompt will appear asking whether to save as a template. Selecting yes requires filling in a template name and you can also check the field information to be saved in the template. For the next release, you can directly select this template. It is expected that the fixed information is already available. After selecting the iteration number for this release, other requirement, DTS form information, version number, and package management system will automatically bring out the latest information and also support addition, modification, and deletion. Selecting no will directly publish this process.
[0115] Step 18: Process ends; When the software is released, the portal center will issue a prompt. After the release, when a user logs in to this system for the first time, a prompt will pop up, stating that the version has been updated and the updated function content. An email will also be sent to the personnel in the process, including the release function points, requirements, and test reports, so as to achieve the effect of transparent release and automated content recording.
[0116] Figure 8 FIG. is a schematic diagram of a software update process provided by an embodiment of the present application, as Figure 8 shown, the process includes steps 801 to 808: Step 801, version update.
[0117] Step 802, fill in the online application form.
[0118] In some embodiments, the developer fills in the online application form, including: repository information, function points, and dependency changes.
[0119] Step 803, fill in the test results.
[0120] In some embodiments, the tester fills in the test results, including: test conclusion, function point density index (Density Index, DI) value, and outstanding issue test report. Among them, the DI value is an indicator to measure the performance of the software system, reflecting the maximum number of transactions that the system can handle on average within a given time.
[0121] Step 804, Quality Assurance (QA) approval; if the approval is rejected, execute step 802.
[0122] In some embodiments, the quality personnel's QA approval includes: approval comments.
[0123] Step 805, approval by the chief engineer; if the approval is rejected, execute step 802.
[0124] In some embodiments, the approval by the chief engineer, the main person in charge, includes: approval comments.
[0125] Step 806, operation and maintenance implementation.
[0126] In some embodiments, the real-time personnel perform operation and maintenance implementation, and change the execution record mirror Tag; Step 807, product acceptance.
[0127] In some embodiments, the product personnel perform product acceptance, including: function point acceptance record.
[0128] Step 808, update completed.
[0129] In some embodiments, an email is sent to notify that the update is completed.
[0130] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application and are not intended to limit them. Although the present application has been described in detail with reference to the preferred embodiments, those of ordinary skill in the art should understand that the technical solutions of the present application can be modified or equivalently replaced without departing from the spirit and scope of the technical solutions of the present application, and they should all be covered by the protection scope of the present application.
[0131] It should be noted that although the steps of the method in the present application are described in a specific order in the drawings, this does not require or imply that these steps must be executed in that specific order, or that all the steps shown must be executed to achieve the desired result. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step for execution, and / or one step may be decomposed into multiple steps for execution, etc.; or, the steps in different embodiments may be combined into a new technical solution. Based on the foregoing embodiments, an apparatus is provided in an embodiment of the present application. The apparatus includes each module included and each unit included in each module, and can be implemented by a processor; of course, it can also be implemented by specific logic circuits; during the implementation process, the processor can be an AI acceleration engine (such as an NPU, etc.), a graphics processing unit (GPU), a central processing unit (CPU), a microprocessor (MPU), a digital signal processor (DSP), or a field programmable gate array (FPGA), etc.
[0132] Figure 9 A schematic diagram of a software update apparatus provided in an embodiment of the present application, as Figure 9 shown, the software update apparatus 90 includes: an acquisition module 901, a comparison module 902, an analysis module 903, and a release module 904; wherein, The acquisition module 901 is configured to acquire the first code of the software to be updated and the second code of the software to be updated; the first code is the code of the software to be updated before being updated; the second code is the code of the software to be updated after being updated; The comparison module 902 is configured to compare the first code and the second code based on a first AI model to obtain comparison information; the comparison information includes: the difference code in the second code that is different from the first code; The analysis module 903 is configured to analyze the difference code based on a second AI model to obtain error analysis information; The release module 904 is configured to release the software corresponding to the second code based on the comparison information, the error analysis information, and the second code.
[0133] In some embodiments, the publishing module 904 is configured to display the comparison information and the error analysis information, and send a first approval request, so that a first approval node approves based on the comparison information and the error analysis information; in response to receiving a first approval signal sent by the first approval node, perform protocol scanning and vulnerability detection on the second code to obtain risk information; when the risk level of the risk information meets a first condition, publish the software corresponding to the second code based on the risk information and the second code.
[0134] In some embodiments, the publishing module 904 is configured to display the risk information and send a second approval request, so that a second approval node approves based on the risk information; in response to receiving a second approval signal sent by the second approval node, perform risk prediction on the second code based on a third AI model to obtain evaluation information; display the evaluation information and send a third approval request, so that a third approval node approves based on the evaluation information; in response to receiving a third approval signal sent by the third approval node, publish the software corresponding to the second code.
[0135] In some embodiments, the device further includes: a training module; wherein, the training module is configured to train the third AI model based on the second code, the error analysis information, the risk information, and the evaluation information to obtain a trained third AI model; an acting module is configured to use the trained third AI model as the third AI model.
[0136] In some embodiments, the device further includes: a returning module and an acting module; wherein, the returning module is configured to return the approval node to the first approval node to re-obtain a third code of the software to be updated, and the third code is the code after the software to be updated is updated; the third code is different from the second code; the acting module is configured to use the third code as the second code; the publishing module 904 is configured to publish the software corresponding to the second code based on the first AI model, the second AI model, the first code, and the second code.
[0137] In some embodiments, the publishing module 904 is configured to receive a first publishing instruction, and the first publishing instruction is used to indicate to publish the software corresponding to the second code at a scheduled time; receive the publishing time of the software corresponding to the second code; at the publishing time, in response to the first publishing instruction, publish the software corresponding to the second code.
[0138] In some embodiments, the apparatus further comprises: a receiving module and a saving module; wherein, the receiving module is configured to receive first information of the software to be updated, and the first information includes at least one of the following: the iterative version number of the software to be updated, the identifier of the software to be updated, and the online type of the software to be updated; an obtaining module 901 is configured to obtain second information of the software to be updated based on the first information; wherein, the second information includes at least one of the following: repository information, the version number of the software corresponding to the second code released, requirement description, function points, dependencies, and legacy issues; the saving module is configured to establish a mapping relationship between the first information and the second information; save the mapping relationship, the first information and the second information, so as to query the second information based on the mapping relationship and the first information.
[0139] In some embodiments, the apparatus further comprises: a determining module and a sending module; the receiving module is configured to receive a first operation; the first operation is used to indicate a target template of the software to be updated; the determining module is configured to determine the target template of the software to be updated from multiple templates based on the indication of the first operation; based on a second operation, determine a target approval node in the target template; the target approval node includes at least one of a first approval node, a second approval node, and a third approval node; the sending module is configured to send an approval request to the target approval node, so that the target approval node conducts approval.
[0140] The description of the above apparatus embodiments is similar to that of the above method embodiments, and has similar beneficial effects to the method embodiments. For the technical details not disclosed in the apparatus embodiments of the present application, please refer to the description of the method embodiments of the present application for understanding.
[0141] It should be noted that the division of modules in the embodiments of the present application is illustrative, and is only a logical function division. In actual implementation, there may be other division methods. In addition, in each embodiment of the present application, each functional unit may be integrated in a processing unit, or may exist physically alone, or two or more units may be integrated in one unit. The above integrated unit may be implemented in the form of hardware, or in the form of a software functional unit. It may also be implemented in the form of a combination of software and hardware.
[0142] It should be noted that in the embodiments of the present application, if the above method is implemented in the form of software function modules and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on such an understanding, the technical solution of the embodiments of the present application, in essence or the part that contributes to the related technology, can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions to enable a vehicle to execute all or part of the methods described in the various embodiments of the present application. The foregoing storage medium includes: various media such as USB flash drives, mobile hard disks, read-only memories (ROMs), magnetic disks, or optical discs that can store program codes. In this way, the embodiments of the present application are not limited to any specific combination of hardware and software.
[0143] Embodiments of the present application provide an electronic device. Figure 10 The following is a schematic structural diagram of an electronic device provided by an embodiment of the present application, as Figure 10 shown. The electronic device 100 includes a memory 1001 and a processor 1002. The memory 1001 stores a computer program that can run on the processor 1002. When the processor 1002 executes the program, it implements the steps in the method provided in the above embodiments.
[0144] It should be noted that the memory 1001 is configured to store instructions and applications executable by the processor 1002, and can also cache data to be processed or already processed in the processor 1002 and each module of the electronic device 100, and can be implemented by flash memory (Flash) or random access memory (Random Access Memory, RAM).
[0145] Embodiments of the present application provide a computer-readable storage medium, on which a computer program is stored. When the computer program is executed, it implements the steps in the method provided in the above embodiments. Embodiments of the present application provide a computer program product containing instructions. When it runs on a computer, it enables the computer to execute the steps in the method provided in the above method embodiments.
[0146] It should be pointed out here that the descriptions of the above storage medium and vehicle embodiments are similar to the descriptions of the above method embodiments and have beneficial effects similar to those of the method embodiments. For the technical details not disclosed in the storage medium and vehicle embodiments of the present application, please refer to the descriptions of the method embodiments of the present application for understanding.
[0147] It should be understood that the "one embodiment" or "an embodiment" or "some embodiments" mentioned throughout the specification means that the specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, the "in one embodiment" or "in an embodiment" or "in some embodiments" that appear throughout the specification do not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It should be understood that in various embodiments of the present application, the magnitude of the sequence numbers of the above processes does not mean the order of execution. The order of execution of each process should be determined by its function and internal logic, and should not constitute any limitation to the implementation process of the embodiments of the present application. The sequence numbers of the embodiments of the present application above are only for description and do not represent the advantages or disadvantages of the embodiments. The descriptions of the above embodiments tend to emphasize the differences between the embodiments. Their similarities or similarities can be referred to each other. For the sake of brevity, they will not be elaborated here.
[0148] As used herein, the term "and / or" is merely a description of the relationship between associated objects, indicating that there can be three relationships. For example, object A and / or object B means: object A exists alone, object A and object B exist simultaneously, and object B exists alone.
[0149] It should be noted that, as used herein, the terms "comprise", "include" or any other variant thereof are intended to cover non-exclusive inclusion, such that a process, method, article or device comprising a series of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such process, method, article or vehicle. Without further limitation, an element defined by the phrase "comprising an..." does not preclude the existence of additional identical elements in the process, method, article or device comprising that element.
[0150] In several embodiments provided in the present application, it should be understood that the disclosed vehicle and method can be implemented in other ways. The above-described embodiments are merely illustrative. For example, the division of the modules is only a logical function division. In actual implementation, there can be other division methods, such as: multiple modules or components can be combined, or can be integrated into another system, or some features can be ignored, or not executed. In addition, the coupling, direct coupling or communication connection between the components shown or discussed can be through some interfaces. The indirect coupling or communication connection of the vehicle or module can be electrical, mechanical or other forms.
[0151] The modules described above as separate components may or may not be physically separated, and the components shown as modules may or may not be physical modules; they may be located in one place or distributed across multiple network elements; some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0152] In addition, in each embodiment of this application, all the functional modules may be integrated in a processing unit, or each module may be a separate unit alone, or two or more modules may be integrated in a unit; the above-mentioned integrated modules may be implemented in the form of hardware, or in the form of a combination of hardware and software functional units.
[0153] Those of ordinary skill in the art can understand that all or part of the steps of implementing the above method embodiments can be completed by hardware related to program instructions. The foregoing program can be stored in a computer-readable storage medium. When the program is executed, it performs the steps including the above method embodiments; and the foregoing storage medium includes: removable storage devices, read-only memory (ROM), magnetic disks or optical discs and other various media that can store program codes.
[0154] Alternatively, if the above-mentioned integrated unit of this application is implemented in the form of a software functional module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiments of this application, in essence or the part that contributes to the related art, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing the vehicle to execute all or part of the methods described in various embodiments of this application. And the foregoing storage medium includes: removable storage devices, ROM, magnetic disks or optical discs and other various media that can store program codes.
[0155] The methods disclosed in several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.
[0156] The features disclosed in several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments. The features disclosed in several method or vehicle embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments or vehicle embodiments.
[0157] The above is only the implementation manner of this application, but the protection scope of this application is not limited thereto. Any person skilled in the art can easily think of changes or substitutions within the technical scope disclosed in this application, and all should be covered by the protection scope of this application.
Claims
1. A software update method, characterized in that, The method includes: Obtaining a first code of the software to be updated and a second code of the software to be updated; the first code is the code of the software to be updated before the update; the second code is the code of the software to be updated after the update; Based on a first artificial intelligence (AI) model, comparing the first code and the second code to obtain comparison information; the comparison information includes: the difference code in the second code that is different from the first code; Based on a second AI model, analyzing the difference code to obtain error analysis information; Based on the comparison information, the error analysis information, and the second code, releasing the software corresponding to the second code.
2. The software update method according to claim 1, wherein The releasing the software corresponding to the second code based on the comparison information, the error analysis information, and the second code includes: Displaying the comparison information and the error analysis information, and sending a first approval request to enable a first approval node to perform approval based on the comparison information and the error analysis information; In response to receiving a first approval pass signal sent by the first approval node, performing protocol scanning and vulnerability detection on the second code to obtain risk information; When the risk level of the risk information meets a first condition, releasing the software corresponding to the second code based on the risk information and the second code.
3. The software update method according to claim 2, wherein, The releasing the software corresponding to the second code based on the risk information and the second code includes: Displaying the risk information, and sending a second approval request to enable a second approval node to perform approval based on the risk information; In response to receiving a second approval pass signal sent by the second approval node, performing risk prediction on the second code based on a third AI model to obtain evaluation information; Displaying the evaluation information, and sending a third approval request to enable a third approval node to perform approval based on the evaluation information; In response to receiving a third approval pass signal sent by the third approval node, releasing the software corresponding to the second code.
4. The software update method according to claim 3, wherein The method further includes: Training the third AI model based on the second code, the error analysis information, the risk information, and the evaluation information to obtain a trained third AI model; Using the trained third AI model as the third AI model.
5. The software update method according to claim 2, characterized in that When the risk level of the risk information does not meet the first condition, the method further includes: Returning the approval node to the first approval node to re-obtain a third code of the software to be updated, where the third code is the code of the software to be updated after the update; the third code is different from the second code; Using the third code as the second code; Based on the first AI model, the second AI model, the first code, and the second code, releasing the software corresponding to the second code.
6. The software update method according to any one of claims 1 to 5, characterized in that, The releasing the software corresponding to the second code includes: Receiving a first release instruction for instructing to release the software corresponding to the second code at a scheduled time; Receiving the release time of the software corresponding to the second code; At the release time, in response to the first release instruction, release the software corresponding to the second code.
7. The software update method according to claim 1, wherein The method further includes: Receiving first information of the software to be updated, where the first information includes at least one of the following: the iteration version number of the software to be updated, the identifier of the software to be updated, and the online type of the software to be updated; Based on the first information, obtaining second information of the software to be updated; where the second information includes at least one of the following: repository information, the version number of the software corresponding to the released second code, requirement description, function points, dependency relationships, and remaining issues; Establishing a mapping relationship between the first information and the second information; Saving the mapping relationship, the first information, and the second information to query the second information based on the mapping relationship and the first information.
8. The software update method according to claim 1, wherein The method further includes: Receiving a first operation; the first operation is used to indicate the target template of the software to be updated; Based on the indication of the first operation, determining the target template of the software to be updated from multiple templates; Based on a second operation, determining a target approval node in the target template; the target approval node includes at least one of a first approval node, a second approval node, and a third approval node; Sending an approval request to the target approval node to enable the target approval node to perform approval.
9. A software update device, characterized in that, The device includes: An acquisition module configured to acquire the first code of the software to be updated and the second code of the software to be updated; the first code is the code before the software to be updated is updated; the second code is the code after the software to be updated is updated; A comparison module configured to compare the first code and the second code based on a first AI model to obtain comparison information; the comparison information includes: the difference code in the second code that is different from the first code; An analysis module configured to analyze the difference code based on a second AI model to obtain error analysis information; A release module configured to release the software corresponding to the second code based on the comparison information, the error analysis information, and the second code.
10. An electronic device, comprising a memory and a processor, the memory storing a computer program that can run on the processor, characterized in that, When the processor executes the program, the method according to any one of claims 1 to 8 is implemented.
11. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, the method according to any one of claims 1 to 8 is implemented.
12. A computer program product, comprising a computer program or instructions, characterized in that, When the computer program or instruction is executed by the processor, the method according to any one of claims 1 to 8 is implemented.
Citation Information
Patent Citations
Code auditing method, system and equipment based on GitLab and medium
CN118585451A
Automatic code review method, computer and storage medium
CN119987829A