Application Function Consolidation via Execution Path Clustering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software applications often suffer from inefficiencies due to outdated architectures and redundant code, making it difficult to modernize them without thorough analysis, as developers typically add functionality by copying and modifying existing code, leading to inefficiencies and unused code consuming resources.

Innovation Solution

A method that analyzes actual code execution paths, predicts similar paths using a neural network model, clusters them, and recommends consolidating these paths into a single execution path in a revised version of the application, optimizing code and improving efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If developers add functionality by copying and modifying existing code, then application functionality is enhanced, but code redundancy and inefficiency increase

Engineering Contradiction:
Improveapplication functionalityVSAvoidcode redundancy
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent merges similar code execution paths by identifying clusters of predicted execution paths that have above-threshold similarity and consolidating them into single execution paths in the revised application, thereby reducing code redundancy while preserving functionality

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent uses execution prediction models to generate predicted execution paths that copy and extend actual execution paths, then analyzes these predictions to identify consolidation opportunities without manually copying code

Inventive Principle:
Principle #26Copying

2Productivity

If application architecture is updated over time without thorough analysis, then application evolution is maintained, but architectural inefficiencies and unused code accumulate

Engineering Contradiction:
Improveapplication evolutionVSAvoidunused code resources
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent performs preliminary analysis of actual and predicted execution paths before application modernization, identifying code that will not be executed in the revised application, allowing proactive removal of unused code before it consumes resources

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts and identifies unused code portions by comparing actual execution paths against predicted execution paths in the revised application, separating executable code from non-executable code for targeted removal

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If similar code functions are not consolidated, then code coverage is maintained, but memory and storage usage increase

Engineering Contradiction:
Improvecode coverageVSAvoidmemory and storage usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges similar code execution paths by identifying clusters of predicted execution paths with above-threshold similarity and consolidating them into single execution paths, reducing memory and storage usage while maintaining functional coverage

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent changes the parameter of code organization by transforming multiple similar execution paths into a single consolidated execution path, altering the structure from redundant copies to unified code

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11768678B2Application function consolidation recommendation
Publication Date: 2023.09.26 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11768678B2 patent drawing
  • US11768678B2 patent drawing
  • US11768678B2 patent drawing

AI summary

By analyzing execution of a set of transactions by an application, a set of actual code execution paths of the application are determined. From the set of actual code execution paths, a set of predicted execution paths of the application are predicted using an execution prediction model. The set of predicted execution paths includes the set of actual code execution paths. By determining that paths in the set of predicted execution paths have above a threshold similarity to each other, a cluster of predicted execution paths is identified. The cluster of predicted execution paths is recommended, using a recommendation model, for implementation as a single execution path in a revised version of the application.