# US 11,029,947 B2 · Utilizing artificial intelligence to improve productivity of software development and information technology operations (DevOps)

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,029,947 B2
- Document ID: US11029947B2
- Status: Granted
- Kind: B2
- Application number: 16/557,588
- Filed: 2019-08-30
- Published: 2021-03-04
- Granted: 2021-06-08
- Earliest claimed: 2019-08-30
- Assignees: Accenture Global Solutions Limited
- Applicants: Accenture Global Solutions Limited
- Inventors: Sundar Prasad Jayaraman; Ravindra Kabbinale; Suhas Nagaraju; Amrutha Pervody Bhat; Smitha Ka; Divya R. Purushotham; Sanjay Singatalur; Vijeth Srinivas Hegde; Aditi Kulkarni; Rajendra T. Prasad; Koushik M Vijayaraghavan
- Web page: https://patentgrep.com/patent/US11029947B2

## CPC

- G06F 8/30: Creation or generation of source code
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 8/10: Requirements analysis; Specification techniques
- G06F 17/15: Correlation function computation {including computation of convolution operations (arithmetic circuits for sum of products per se, e.g. multiply-accumulators G06F7/5443; digital filters, e.g. FIR, IIR, adaptive filters H03H17/00)}
- G06F 17/16: Matrix or vector computation {, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization (matrix transposition G06F7/78)}
- G06N 3/044: Recurrent networks, e.g. Hopfield networks
- G06N 3/0442: characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
- G06N 3/08: Learning methods
- G06N 3/09: Supervised learning
- G06N 20/10: using kernel methods, e.g. support vector machines [SVM]
- H04L 51/02: using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
- G06N 5/01: Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
- G06N 7/01: Probabilistic graphical models, e.g. probabilistic networks
- G06N 20/20: Ensemble learning
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A device may receive data associated with a software development platform, and may correlate the data to generate correlated data. The device may train a first model, with the correlated data, to generate a software impact analyzer model, and may train a second model, with the correlated data, to generate a software development behavior model. The device may receive data identifying a new software requirement associated with the software development platform, and may process the data identifying the new software requirement, with the software impact analyzer model, to identify a file or a module impacted by the new software requirement. The device may process data identifying the file or the module, with the software development behavior model, to identify a developer to handle the new software requirement, and may perform one or more actions based on the data identifying the file or the module and data identifying the developer.

## Claims

### Claim 1

A method, comprising:
receiving, by a device, data associated with a software development platform;
correlating, by the device, the data associated with the software development platform to generate correlated data;
training, by the device, a deep neural network model, with the correlated data, to generate a software impact analyzer model;
training, by the device, an artificial intelligence model, with the correlated data, to generate a software development behavior model,
wherein the software development behavior model includes:
a baseline vector model,
the baseline vector model having a quantity of dimensions corresponding to a quantity of software development attributes including one or more of:
software build attributes for one or more developers of a plurality of developers, or
defect quality attributes, and
a distance measures based rewards and penalty model,
the distance measure based rewards and penalty model including a developer vector for each developer of the plurality of developers;
receiving, by the device, data identifying a new software requirement or a defect associated with the software development platform;
processing, by the device, the data identifying the new software requirement or the defect, with the software impact analyzer model, to identify a file or a module impacted by the new software requirement or the defect;
processing, by the device, data identifying the file or the module impacted by the new software requirement or the defect, with the software development behavior model, to identify a developer to handle the new software requirement or the defect; and
performing, by the device, one or more actions based on the data identifying the file or the module impacted by the new software requirement or the defect and data identifying the developer to handle the new software requirement or the defect.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
training a machine learning model, with the correlated data, to generate a defect lifecycle optimizer model;
processing the data identifying the defect, with the defect lifecycle optimizer model, to identify duplicates of the defect; and
causing the duplicates of the defect to be eliminated in the software development platform.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
processing the data identifying the defect, with the defect lifecycle optimizer model, to identify a correction to the defect; and
causing the correction to the defect to be implemented in the software development platform.

### Claim 4 (depends on 2)

The method of claim 2, wherein the defect lifecycle optimizer model includes a plurality of:
a random forest model,
a naive Bayes model,
a logistic regression model,
a k-nearest neighbors model,
a support vector machine model,
a decision tree model, or
a deep recurrent neural network model.

### Claim 5 (depends on 1)

The method of claim 1, wherein the data associated with the software development platform includes one or more of:
data generated by a software coding tool associated with the software development platform,
data generated by a software building tool associated with the software development platform,
data generated by a software testing tool associated with the software development platform,
data generated by a software packaging tool associated with the software development platform,
data generated by a software releasing tool associated with the software development platform,
data generated by a software configuring tool associated with the software development platform, or
data generated by a software monitoring tool associated with the software development platform.

### Claim 6 (depends on 1)

The method of claim 1, wherein correlating the data associated with the software development platform to generate the correlated data comprises:
transforming the data associated with the software development platform from an unstructured format to a structured format,
wherein the data associated with the software development platform in the structured format corresponds to the correlated data.

### Claim 7 (depends on 1)

The method of claim 1, wherein performing the one or more actions comprises one or more of:
causing the file or the module to be updated in the software development platform based on the new software requirement or the defect;
providing, to the developer, an instruction to update the file or the module in the software development platform based on the new software requirement or the defect; or
retraining the software impact analyzer model or the software development behavior model based on the file or the module and data identifying the developer to handle the new software requirement or the defect.

### Claim 8

A device, comprising:
one or more memories; and
one or more processors, communicatively coupled to the one or more memories, configured to:
receive data associated with a software development platform;
correlate the data associated with the software development platform to generate correlated data;
train a deep neural network model, with the correlated data, to generate a software impact analyzer model;
train an artificial intelligence model, with the correlated data, to generate a software development behavior model,
wherein the software development behavior model includes:
a baseline vector model,
the baseline vector model having a quantity of dimensions corresponding to a quantity of software development attributes including one or more of:
software build attributes for one or more developers of a plurality of developers, or
defect quality attributes, and
a distance measures based rewards and penalty model,
the distance measure based rewards and penalty model including a developer vector for each developer of the plurality of developers;
train a machine learning model, with the correlated data, to generate a defect lifecycle optimizer model;
receive data identifying a new software requirement or a defect associated with the software development platform;
process the data identifying the new software requirement or the defect, with the software impact analyzer model, to identify a file or a module impacted by the new software requirement or the defect;
process data identifying the file or the module impacted by the new software requirement or the defect, with the software development behavior model, to identify a developer to handle the new software requirement or the defect;
process the data identifying the defect, with the defect lifecycle optimizer model, to identify duplicates of the defect and a correction to the defect; and
perform one or more actions based on data identifying one or more of:
the file or the module impacted by the new software requirement or the defect,
the developer to handle the new software requirement or the defect,
the duplicates of the defect, or
the correction to the defect.

### Claim 9 (depends on 8)

The device of claim 8, wherein the one or more processors are further configured to:
store the correlated data in a data structure accessible by the deep neural network model and the artificial intelligence model.

### Claim 10 (depends on 8)

The device of claim 8, wherein the software impact analyzer model includes:
a long short-term memory (LSTM) model, and
a natural language processing model.

### Claim 11 (depends on 8)

The device of claim 8, wherein the data associated with a software development platform is correlated to generate the correlated data in near real time relative to receiving the data associated with a software development platform.

### Claim 12 (depends on 8)

The device of claim 8, wherein the one or more processors are further configured to:
provide a chat bot to communicate with the developer identified to handle the new software requirement or the defect.

### Claim 13 (depends on 8)

The device of claim 8, wherein the one or more processors, when performing the one or more actions, are configured to one or more of:
cause the file or the module to be updated in the software development platform based on the new software requirement or the defect;
provide, to the developer, an instruction to update the file or the module in the software development platform based on the new software requirement or the defect;
cause the duplicates of the defect to be eliminated in the software development platform; or
cause the correction to the defect to be implemented in the software development platform.

### Claim 14 (depends on 8)

The device of claim 8, wherein the software build attributes include, for each developer during each build, one or more of:
build check-in,
build successes,
build failures,
errors, or
warnings.

### Claim 15

A non-transitory computer-readable medium storing instructions, the instructions comprising:
one or more instructions that, when executed by one or more processors, cause the one or more processors to:
receive data associated with a software development platform;
correlate the data associated with the software development platform to generate correlated data;
obtain a first model that was trained based on the correlated data;
obtain a second model that was trained based on the correlated data,
wherein the second model includes:
a baseline vector model,
the baseline vector model having a quantity of dimensions corresponding to a quantity of software development attributes including one or more of:
software build attributes for one or more developers of a plurality of developers, or
defect quality attributes, and
a distance measures based rewards and penalty model,
the distance measure based rewards and penalty model including a developer vector for each developer of the plurality of developers;
receive data identifying a new software requirement associated with the software development platform;
process the data identifying the new software requirement, with the first model, to identify a file or a module impacted by the new software requirement;
process data identifying the file or the module impacted by the new software requirement, with the second model, to identify a developer to handle the new software requirement; and
perform one or more actions based on the data identifying the file or the module impacted by the new software requirement and data identifying the developer to handle the new software requirement.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the instructions further comprise:
one or more instructions that, when executed by the one or more processors, cause the one or more processors to:
obtain a third model that was trained based on the correlated data;
receive data identifying a defect associated with the software development platform;
process the data identifying the defect, with the third model, to identify duplicates of the defect and a correction to the defect;
cause the duplicates of the defect to be eliminated in the software development platform; and
cause the correction to the defect to be implemented in the software development platform.

### Claim 17 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more instructions, that cause the one or more processors to correlate the data associated with the software development platform to generate the correlated data, cause the one or more processors to:
transform the data associated with the software development platform from an unstructured format to a structured format,
wherein the data associated with the software development platform in the structured format corresponds to the correlated data.

### Claim 18 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the instructions further comprise:
one or more instructions that, when executed by the one or more processors, cause the one or more processors to:
store the correlated data in a data structure accessible by the first model and the second model.

### Claim 19 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more instructions, that cause the one or more processors to perform the one or more actions, cause the one or more processors to one or more of:
cause the file or the module to be updated in the software development platform based on the new software requirement;
provide, to the developer, an instruction to update the file or the module in the software development platform based on the new software requirement; or
retrain the first model or the second model based on the file or the module and data identifying the developer to handle the new software requirement.

### Claim 20 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the instructions further comprise:
one or more instructions that, when executed by the one or more processors, cause the one or more processors to:
provide a chat bot to communicate with the developer identified to handle the new software requirement.
