Automated Semantics Determination for Software Code Review
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The process of evaluating software capabilities has become increasingly complex and time-consuming as programming languages and software complexity grow, making manual code review inefficient for advanced languages like Common Business Oriented Language (Cobol) and Advanced Business Application Programming (ABAP).
Innovation Solution
Implementing a computer-implemented method that uses machine learning models to automatically identify statements in a software program, generate values that satisfy path constraints, execute statements with these values, and determine semantics information to create symbolic representations of the statements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If manual code review is used for simple programming languages, then review accuracy can be maintained, but productivity decreases as software complexity grows
Solution Approach 1:
The patent replaces the mechanical manual code review process with an automated computer-implemented system that uses machine learning models to analyze software statements, generate test values, and determine semantics information, thereby maintaining accuracy while significantly improving productivity for complex software
Solution Approach 2:
The patent introduces an intermediary automated review system that acts as a bridge between the software being reviewed and the final evaluation results, using machine learning models and symbolic execution as intermediate processing layers to transform complex code into analyzable semantics information
2Productivity
If automated analysis is implemented for complex software, then productivity improves, but device complexity increases
Solution Approach 1:
The patent segments the software analysis process into distinct modular components: statement identification, path constraint analysis, test value generation, execution, and semantics determination, allowing each component to be independently developed and maintained while collectively achieving high productivity
Solution Approach 2:
The patent introduces an intermediary automated review system that acts as a bridge between the software being reviewed and the final evaluation results, using machine learning models and symbolic execution as intermediate processing layers to transform complex code into analyzable semantics information
3Ease of operation
If manual review processes are used, then ease of operation is maintained for simple cases, but loss of time increases significantly for complex software evaluation
Solution Approach 1:
The patent replaces the mechanical manual code review process with an automated computer-implemented system that uses machine learning models to analyze software statements, generate test values, and determine semantics information, thereby maintaining accuracy while significantly improving productivity for complex software
Solution Approach 2:
The patent performs preliminary actions by pre-compiling software statements, pre-identifying path constraints, and pre-generating test values before actual execution and analysis, reducing the time required during the critical evaluation phase
Data Source
AI summary
A computer-implemented method, according to one embodiment, includes: identifying statements in a software program. Values that satisfy path constraints of a given one of the statements are developed for ones of the identified statements that semantics information is not yet known. Outputs are produced by executing the given one of the statements using the generated values as inputs. Moreover, semantics information corresponding to the given one of the statements is determined by evaluating the generated values and corresponding outputs using a machine learning model. The semantics information is further used to generate a symbolic representation of the given one of the statements.


