Source Code Splitting via Influence Degree Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

When source code is split, dependency relationships among split software components are lost, leading to a decrease in analysis accuracy.

Innovation Solution

A source code splitting device that identifies analysis influence degrees between functions based on the information amount passed between them and splits the source code into split codes accordingly, using an influence identifying unit and a splitting unit to minimize the impact on analysis accuracy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If the source code is split into separate software components, then the analysis time is reduced and the source code becomes analyzable, but the dependency relationships among components are lost and analysis accuracy decreases

Engineering Contradiction:
Improveanalysis timeVSAvoidanalysis accuracy
Core Design Contradiction:
Loss of timeVSMeasurement precision

Solution Approach 1:

The source code is divided into multiple software components through splitting, transforming an unmanageably large codebase into smaller, analyzable units. This segmentation enables the analysis system to process each component separately, reducing overall analysis time while maintaining tractability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Dependency information is introduced as an intermediary element that mediates between split software components. This dependency information captures the relationships that would otherwise be lost during splitting, allowing the analysis system to reconstruct contextual connections and maintain analysis accuracy across component boundaries.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If the entire source code is analyzed at once, then complete dependency relationships are preserved, but the analysis may stretch over a long time or fail due to excessive scale

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

Solution Approach 1:

The large-scale source code analysis problem is segmented into multiple smaller analysis tasks, each handling a specific software component. This division makes the analysis feasible within reasonable time constraints while the dependency information ensures that the collective results maintain overall accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Dependency information is extracted and prepared in advance before the actual analysis of individual components. This preliminary action of identifying and storing dependency relationships enables the subsequent component-level analyses to be performed efficiently without losing contextual connections.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11086604B2Source code splitting device, source code analyzing device, source code splitting method, and computer readable medium
Publication Date: 2021.08.10 MITSUBISHI ELECTRIC CORP
  • US11086604B2 patent drawing
  • US11086604B2 patent drawing
  • US11086604B2 patent drawing

AI summary

An extent of decrease in analysis accuracy caused by splitting a source code can be reduced. An influence identifying unit identifies, for each of two functions included in a source code as a target, influence degrees exerted over analysis of the source code when the two target functions are each split into separate split codes, as analysis influence degrees between the two target functions, from an information amount passed between the two target functions. A splitting unit splits the source code into a plurality of split codes such that a sum of the analysis influence degrees between the functions each being split into the separate split codes decreases.