Outer Rim Archives
Archives · 2022 · 11237805

Granted patent

Techniques for automatically detecting programming deficiencies

Number
11237805
Published
2022-02-01
Filed
2019-07-09
Assignee
Disney Enterprises, Inc.
Inventors
Machacek; Jan, Chakraborty; Anirvan, Villoslada; Christian
CPC
G06F8/75; G06N20/00; G06F8/71; G06F8/427; G06F8/30; G06N3/084
Verdict
Set aside software-engineering tooling, generic
Source
Google Patents · FreePatentsOnline

Abstract

A quality control (QC) engine analyzes sample code provided by a user and then generates example code that more effectively performs the same or similar operations performed by the sample code. An objective model analyzes the sample code to generate one or more tags indicating the intended objective(s) of the sample code. The quality model analyzes the sample code to generate one or more ratings indicating the degree to which the sample code achieves each intended objective. The performance model analyzes the tags and the ratings and estimates the performance of the sample code when executed in a production environment. The recommendation engine queries a database of code based on the tags, the ratings, and the estimated performance of the sample code to determine example code that achieves the same or similar objectives(s) as the sample code, but with at least one of higher ratings and greater performance.

Background

BACKGROUND Field of the Various Embodiments (1) The various embodiments relate generally to computer programming and software development and, more specifically, to techniques for automatically detecting programming deficiencies. Description of the Related Art (2) Software engineering projects typically occur in two distinct phases, commonly referred to as the “development” phase and the “production” phase. In the development phase, a computer programmer writes code for a software application using a development environment. The development environment includes computational resources that the computer programmer can use to test whether the software application meets various design objectives specified for the development phase. Once the software application is determined to meet the design objectives, the software engineering project moves to the production phase. In the production phase, the software application is deployed within a production environment that includes computational resources that users can use to access the software application. (3) In most software engineering projects, the development and production phases described above usually occur iteratively. During a given iteration of the development phase, the computer programmer may encounter a programming problem that lacks a clear solution. In such situations, the computer programmer may implement code that only appears to address the programming problem. Alternatively, the computer programmer may utilize Int

Claims

1. A computer-implemented method for determining source code that can replace deficient portions of a software application, the method comprising: generating, using a machine learning model, output that indicates a first objective that is performed by a first portion of program code when the first portion of program code is executed; computing a first metric that indicates a degree to which the first portion of program code achieves the first objective when the first portion of program code is executed; determining a second portion of program code based on the first objective and the first metric, wherein the second portion of program code is associated with a second metric that indicates a degree to which the second portion of program code achieves the first objective when the second portion of program code is executed, and the second metric is greater than the first metric; and transmitting an identifier corresponding to the second portion of program code to a user. || 11. A non-transitory computer-readable medium storing program instructions that, when executed by a processor, cause the processor to determine source code that can replace deficient portions of a software application by performing the steps of: generating, using a machine learning model, output that indicates a first objective that is at least partially performed by a first portion of program code when the first portion of program code is executed; computing a first metric that indicates a degree to which the first portion of program code achieves the first objective when the first portion of program code is executed; determining a second portion of program code based on the first objective and the first metric, wherein the second portion of program code is associated with a second metric that indicates a degree to which the second portion of program code achieves the first objective when the second portion of program code is executed, and the second metric is greater than the first metric; and transmitting an identifier corresponding to the second portion of program code to a user interface. || 20. A system, comprising: a memory storing a software application; and a processor that, when executing the software application, is configured to perform the steps of: generating, using a machine learning model, output indicating a first objective that is performed by a first portion of program code when the first portion of program code is executed, computing a first metric that indicates a degree to which the first portion of program code achieves the first objective when the first portion of program code is executed, determining a second portion of program code based on the first objective and the first metric, wherein the second portion of program code is associated with a second metric that indicates that the second portion of program code, when executed, achieves the first objective to a greater degree than the first portion of program code when the first portion of program code is executed, and transmitting an identifier corresponding to the second portion of program code to a user interface.