Application (pre-grant publication)
TECHNIQUES FOR AUTOMATICALLY DETECTING PROGRAMMING DEFICIENCIES
- Number
- 20210011695
- Published
- 2021-01-14
- Filed
- 2019-07-09
- Assignee
- DISNEY ENTERPRISES, INC.
- Inventors
- MACHACEK; Jan, CHAKRABORTY; Anirvan, VILLOSLADA; Christian
- CPC
- G06N3/084; G06F8/427; G06F8/71; G06F8/75; G06N20/00; G06F8/30
- 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
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
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.
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 ut