Software Dependency Analysis Combining Static and Dynamic Methods

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional software analysis methods are unable to comprehensively and accurately analyze dependencies between software components, particularly those involving pointer variables or addresses, as they rely solely on static analysis or use dynamic analysis only for showing dependency importance without fully capturing dynamic interactions.

Innovation Solution

A software analysis device and method that combines static and dynamic analysis, where a first unit statically analyzes the source code structure and dependency, and a second unit executes the program to acquire operational information, allowing for a comprehensive analysis of dependencies by integrating static and dynamic analysis results.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If static analysis is used to analyze dependency between software components, then the analysis can be performed without executing the program, but it is not possible to analyze dependency involving pointer variables or addresses

Engineering Contradiction:
Improveprogram execution timeVSAvoiddependency analysis accuracy
Core Design Contradiction:
Loss of timeVSMeasurement precision

Solution Approach 1:

The patent combines static analysis and dynamic analysis into a unified dependency analysis system. The static analysis unit analyzes source code without execution, while the dynamic analysis unit executes the program to capture actual runtime dependencies including pointer variables. The results from both units are merged to produce comprehensive dependency information, resolving the contradiction between avoiding program execution and achieving accurate dependency analysis.

Inventive Principle:
Principle #5Merging (Combining)

2Measurement precision

If dynamic analysis is used to execute the program and acquire operation logs, then dependency involving pointer variables can be analyzed, but the analysis does not fully capture all dependency relationships

Engineering Contradiction:
Improvedependency analysis accuracyVSAvoiddependency relationship completeness
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The patent merges the results of static analysis and dynamic analysis to achieve complete dependency relationship coverage. Static analysis captures all potential dependencies from source code structure, while dynamic analysis captures actual runtime dependencies including pointer variables. By combining both results, the system achieves both completeness and accuracy in dependency analysis.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If only static analysis is performed on source code structure, then the analysis process is simple and fast, but it cannot analyze dependency through pointer variables or addresses

Engineering Contradiction:
Improveanalysis speedVSAvoiddependency analysis accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent applies partial dynamic analysis by executing the program only to the extent necessary to capture runtime dependency information involving pointer variables and addresses. The dynamic analysis unit performs targeted execution and log collection, then merges results with static analysis. This approach achieves accurate pointer variable dependency analysis without requiring exhaustive program execution, balancing productivity and precision.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11630662B2Software analysis device, software analysis method, and software analysis program
Publication Date: 2023.04.18 MITSUBISHI ELECTRIC CORP
  • US11630662B2 patent drawing
  • US11630662B2 patent drawing
  • US11630662B2 patent drawing

AI summary

A software analysis device being capable of analyzing dependency between software components more comprehensively and with higher accuracy than a conventional technology is provided. The software analysis device comprising: a first analyzing unit that statically analyzes a structure of a source code of software and analyzes dependency between objects of the software; and a second analyzing unit that executes a program indicated by the source code to acquire first information regarding an operation of the objects and analyzes dependency between the objects based on the first information. The software analysis device analyzes dependency between the objects based on an analysis result of the first analyzing unit and an analysis result of the second analyzing unit.