Analyzing software change impact based on machine learning
US-2020034135-A1 · Jan 30, 2020 · US
US11599354B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11599354-B2 |
| Application number | US-201916515135-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 18, 2019 |
| Priority date | Jul 18, 2019 |
| Publication date | Mar 7, 2023 |
| Grant date | Mar 7, 2023 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Described herein is a system and method for detecting correlated changes (e.g., between code files and configuration files). For a plurality of code files and a plurality of configuration files, a correlated change model is trained to identify correlated changes across the code files and the configuration files using a machine learning algorithm that discovers change rules using a support parameter, and, a confidence parameter, and, a refinement algorithm that refines the discovered change rules. The correlated change model comprising the change rules is stored. The correlated change model can be used to identify potential issue(s) regarding a particular file (e.g., changed code or configuration file(s)). Information regarding the identified potential issue(s) can be provided to a user.
Opening claim text (preview).
What is claimed is: 1. A system, comprising: a processor; and a memory having computer-executable instructions stored thereupon which, when executed by the processor, cause the system to: for a plurality of code files and a plurality of configuration files that control runtime execution of one or more features in the plurality of code files, train a correlated change model to identify correlated changes across the plurality of code files and the plurality of configuration files using a machine learning algorithm and a refinement algorithm, wherein the machine learning algorithm discovers change rules using a support parameter and a confidence parameter and the refinement algorithm refines the change rules discovered by the machine learning algorithm, and each change rule identifies a set of two or more files that tend to be changed together; and store the correlated change model comprising the change rules, the correlated change model being configured to use a particular change rule to detect when a particular configuration file is missing a particular change to enable a particular feature in a particular code file. 2. The system of claim 1 , the memory having further computer-executable instructions stored thereupon which, when executed by the processor, cause the system to: for each individual code file of the plurality of code files, apply the refinement algorithm to perform a differential syntax analysis utilizing a first parse tree for the individual code file before a respective change to the individual code file and a second parse tree for the individual code file after the respective change to the individual code file. 3. The system of claim 2 , the memory having further computer-executable instructions stored thereupon which, when executed by the processor, cause the system to: create feature vectors characterizing differences between the first parse tree and the second parse tree for each individual code file. 4. The system of claim 3 , the memory having further computer-executable instructions stored thereupon which, when executed by the processor, cause the system to: train classifiers in accordance with the feature vectors, wherein the correlated change model comprises the trained classifiers. 5. The system of claim 1 , wherein the particular configuration file identifies one or more machines on which the particular feature is enabled. 6. A method, comprising: receiving information regarding a change to a particular code file; inputting the information regarding the change to the particular code file to a machine-trained correlated change model comprising a plurality of change rules that identify sets of two or more files that tend to be changed together; receiving, from the machine-trained correlated change model, identification of a particular configuration file that tends to be changed together with the particular code file, wherein the machine-trained correlated change model identifies the particular configuration file based at least on a particular change rule identifying the particular configuration file as having a tendency to be changed with the particular code file; determining that a corresponding change to the particular configuration file is missing; and providing a suggestion to make the corresponding change to the particular configuration file. 7. The method of claim 6 , further comprising: receiving information regarding a user action in response to the suggestion; and updating the machine-trained correlated change model in accordance with the information regarding the user action, the particular code file, and, the suggestion. 8. The method of claim 6 , further comprising: for a plurality of code files and a plurality of configuration files, training the machine-trained correlated change model to identify correlated changes across the plurality of code files and the plurality of configuration files using a machine learning algorithm and a refinement algorithm, wherein the machine learning algorithm discovers the plurality of change rules using a support parameter and a confidence parameter and the refinement algorithm refines individual change rules discovered using the machine learning algorithm; and storing the machine-trained correlated change model comprising the change rules refined by the refinement algorithm. 9. The method of claim 8 , wherein the refinement algorithm utilizes differential syntax analysis. 10. The method of claim 8 , wherein training the machine-trained correlated change model further comprises: partitioning data into a plurality of partitions based upon similar edit-frequency; for each particular partition of the plurality of partitions: training a plurality of machine-trained models; performing rule-mining; performing parameter tuning of at least one of the support parameter or the confidence parameter; and selecting a specific model from the plurality of machine-trained models for the particular partition. 11. The method of claim 6 , wherein the information regarding the change to the particular code file is received responsive to the particular code file being committed to a repository. 12. The method of claim 6 , further comprising: extracting a parse tree for the particular code file and using a classifier of the machine-trained correlated change model to identify the suggestion based at least on the parse tree. 13. A computer storage media storing computer-readable instructions that, when executed, cause a computing device to: receive information regarding a change to a particular code file; provide the information regarding the change to the particular code file to a machine-trained correlated change model comprising a plurality of change rules that identify sets of two or more files that tend to be changed together; receive, from the machine-trained correlated change model, identification of a particular configuration file that tends to be changed together with the particular code file, wherein the machine-trained correlated change model identifies the particular configuration file based at least on a particular change rule identifying the particular configuration file as having a tendency to be changed with the particular code file; determine that a particular change to the particular configuration file to enable a particular feature in the particular code file is missing; and output a suggestion to make the particular change to the particular configuration file to enable runtime execution of the particular feature in the particular code file. 14. The computer storage media of claim 13 storing further computer-readable instructions that, when executed, cause the computing device to: receive information regarding a user action in response to the suggestion; and update the machine-trained correlated change model in accordance with the information regarding the user action, the particular configuration file, and the suggestion. 15. The computer storage media of claim 13 storing further computer-readable instructions that, when executed, cause the computing device to: for a plurality of code files and a plurality of configuration files, train the machine-trained correlated change model to identify correlated changes across the plurality of code files and the plurality of configuration files using a machine learning algorithm and a refinement algorithm, wherein the machine learning algorithm discovers the plurality of change rules using a support parameter and a confidence parameter and the refinement algorithm refines individual change rules; and store the machine-trained correlated change model comprising the plur
Structural analysis for program understanding · CPC title
Semantic checking · CPC title
Machine learning · CPC title
Version control (security arrangements therefor G06F21/57); Configuration management · CPC title
for test version control, e.g. updating test cases to a new software version · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.