Source Code Analysis Apparatus Reducing Dynamic Analysis Time

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In large-scale software development projects, dynamic analysis methods require excessive time due to the increased number of input value combinations, making it challenging to analyze source codes efficiently without compromising accuracy.

Innovation Solution

A source code analysis apparatus that includes a change function extract processing unit, an analysis necessity determination processing unit, and an analysis result processing unit, which limits the analysis to only the change function and its influence functions based on input value ranges, reducing the scope of analysis and thereby the analysis time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If dynamic analysis method is used to analyze source codes in large-scale software development projects, then analysis accuracy is improved, but analysis time is significantly increased

Engineering Contradiction:
Improveanalysis accuracyVSAvoidanalysis time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments the source code into multiple units and performs dynamic analysis on each unit separately rather than analyzing the entire codebase at once. This division allows the analysis to focus on specific portions, reducing the overall analysis time while maintaining comprehensive coverage through systematic segmentation of the code base

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts and prioritizes critical functions and code paths that are most likely to contain failures. By identifying and focusing analysis efforts on these high-risk areas rather than uniformly analyzing all code, the system achieves effective failure detection with reduced analysis time

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 3:

The patent performs preliminary static analysis before dynamic analysis to identify potential failure points and prioritize code sections requiring dynamic analysis. This preliminary assessment allows the system to prepare analysis targets in advance, reducing the time required for actual dynamic analysis while maintaining accuracy

Inventive Principle:
Principle #10Preliminary action

2Reliability

If all functions in post-change source code are analyzed, then analysis completeness is improved, but analysis time is increased

Engineering Contradiction:
Improveanalysis completenessVSAvoidanalysis time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies different analysis strategies to different parts of the codebase based on their characteristics and risk levels. Critical functions undergo thorough dynamic analysis while less critical areas receive streamlined analysis, allowing comprehensive coverage with optimized time investment for each specific code region

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent performs analysis on a selectively reduced set of functions that are most relevant to the changes made, rather than analyzing all functions. This partial analysis approach focuses computational resources on the most impactful areas while still providing sufficient assurance of code quality

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11907710B2Source code analysis apparatus
Publication Date: 2024.02.20 MITSUBISHI ELECTRIC CORP
  • US11907710B2 patent drawing
  • US11907710B2 patent drawing
  • US11907710B2 patent drawing

AI summary

A time period required for analyzing a source code is reduced without reducing analysis accuracy in a source code analysis apparatus that analyzes a source code with a dynamic analysis method. An analysis processing unit extracts, from a post-change source code, an influence function to which an input is given by a change function. An analysis necessity determination processing unit determines whether or not the function is the analysis target function, based on a range of an input value input to the change function and a function included in the influence function. The analysis processing unit performs an analysis of the analysis target function, which is included in the change function and the influence function. An analysis result processing unit outputs an analysis result of the post-change source code, which includes an analysis result of the analysis target function.