Method Ranking via Call Stack Dependency Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers and users face inefficiencies in analyzing and determining the importance of software code or method changes in large and complex software systems, often relying on intuition due to the lack of effective tools for assessing impact and importance.

Innovation Solution

A framework that tracks method invocations through marking records to rebuild a call stack, generating a calling dependency representation, and ranking methods based on this representation, allowing for the identification of important and impacted methods.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If developers analyze all code or methods in large software systems, then complete coverage is achieved, but analysis efficiency deteriorates due to system complexity and size

Engineering Contradiction:
Improvecode analysis completenessVSAvoidanalysis efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent segments the large software system into individual methods and organizes them into a call stack hierarchy. By dividing the codebase into discrete, analyzable units (methods) and their dependency relationships (call stack), the system enables focused analysis of specific code segments rather than requiring analysis of the entire codebase at once, thus maintaining completeness while improving efficiency

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts only the necessary code elements (methods and their invocation relationships) from the complete software system to create a calling dependency representation. This extraction process isolates the critical information needed for impact analysis from the rest of the codebase, allowing developers to work with a simplified model that preserves essential relationships while reducing overall complexity

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If developers rely on intuition to determine method importance, then analysis speed is maintained, but measurement accuracy deteriorates due to subjective judgment

Engineering Contradiction:
Improveanalysis speedVSAvoidmethod importance assessment accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent implements a feedback mechanism by automatically tracking method invocations through marking records and using this empirical data to objectively determine method importance. The system continuously collects invocation information, rebuilds call stacks, and updates the calling dependency representation, providing factual feedback that replaces subjective intuition with measurable, data-driven assessments of code importance

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent replaces the mechanical process of human intuition and subjective judgment with an automated computational system. The marking records, call stack reconstruction, and ranking algorithms collectively substitute the human cognitive process with a deterministic mechanical system that consistently evaluates method importance based on objective invocation data rather than subjective assessment

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Reliability

If comprehensive code change impact analysis is performed, then change risk is reduced, but time consumption increases for maintaining and releasing software

Engineering Contradiction:
Improvechange impact assessment accuracyVSAvoidsoftware maintenance time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary action by continuously tracking method invocations and maintaining an up-to-date calling dependency representation during normal software operation. This pre-computation of invocation patterns and dependency relationships means that when a code change is proposed, the impact analysis can be performed quickly by querying the pre-built call stack and ranking information, rather than conducting comprehensive analysis from scratch at the time of each change

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a dynamic system where the calling dependency representation is continuously updated as the software is executed and marked records are collected. The method rankings and call stack information adapt dynamically to reflect actual runtime behavior, allowing the impact analysis to remain current and accurate without requiring periodic comprehensive re-analyses, thus reducing the time cost of maintenance activities

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9483241B2Method ranking based on code invocation
Publication Date: 2016.11.01 SUCCESSFACTORS INC
  • US9483241B2 patent drawing
  • US9483241B2 patent drawing
  • US9483241B2 patent drawing

AI summary

Disclosed herein is a framework for analyzing and determining the impact and importance of software code or method changes. In accordance with one aspect, invocations of methods are tracked by generating marking records. The marking records may be used to rebuild a call stack, which can be used to organize the methods to generate a calling dependency representation. The methods may then be ranked based on such calling dependency representation.