Call Graph Centrality Analysis for Critical Software Method Identification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In software development, identifying critical portions of code that significantly affect the operation of a software application is challenging, leading to inefficient testing and development efforts, as existing methods lack precision in determining which code elements are most important.

Innovation Solution

The use of centrality algorithms, such as betweenness centrality, harmonic closeness centrality, and NodeRank, to analyze a call graph and calculate criticality scores for method nodes, allowing for the identification of critical method nodes and call sequences, thereby directing development and testing efforts effectively.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If test cases are applied to the entire codebase to identify errors, then software quality is improved, but testing time and computing resources are significantly consumed

Engineering Contradiction:
Improvesoftware qualityVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the codebase into critical and non-critical portions using call graph analysis and centrality algorithms. Test cases are then selectively applied only to critical methods and call sequences, dividing the testing workload into manageable segments that focus on high-impact areas while skipping low-impact areas, thereby reducing overall testing time while maintaining software quality

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different testing strategies to different parts of the codebase based on their criticality. Critical methods and call sequences receive comprehensive testing attention, while non-critical portions receive reduced or no testing. This local differentiation of testing quality allows the system to optimize the balance between software quality and testing resource consumption

Inventive Principle:
Principle #3Local quality

2Reliability

If test cases are applied to the entire codebase to identify errors, then software quality is improved, but computing resources are significantly consumed

Engineering Contradiction:
Improvesoftware qualityVSAvoidcomputing resources
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The codebase is segmented into critical and non-critical regions through call graph analysis. Test execution is then confined to critical segments only, reducing the total computing resources required while maintaining the ability to detect errors in the most important parts of the software

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different levels of testing scrutiny are applied to different code regions based on their criticality assessment. Critical methods receive full testing resources, while non-critical methods receive minimal or no testing, optimizing the distribution of computing resources across the codebase

Inventive Principle:
Principle #3Local quality

3Loss of information

If development effort is applied uniformly across all code portions, then code coverage is improved, but development efficiency deteriorates due to lack of focus on critical areas

Engineering Contradiction:
Improvecode coverageVSAvoiddevelopment efficiency
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent applies differentiated development effort to different code portions based on their criticality. Critical methods and call sequences receive intensified development attention, review, and optimization, while non-critical portions receive standard or reduced attention. This localized approach to development maintains adequate coverage across the codebase while significantly improving development efficiency by focusing resources where they have the most impact

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11526429B1Identifying critical methods and critical paths in software code
Publication Date: 2022.12.13 SAP SE
  • US11526429B1 patent drawing
  • US11526429B1 patent drawing
  • US11526429B1 patent drawing

AI summary

Technologies are described for identifying critical methods in a software code base. The critical methods are identified using a call graph that is generated from the software code base. The call graph comprises method nodes that correspond to the methods of the software code base. One or more algorithms are applied to the call graph to calculate values for the method nodes of the call graph. The one or more algorithms comprise a betweenness centrality algorithm, a harmonic closeness centrality algorithm, or a NodeRank centrality algorithm. From the values generated by the algorithms, criticality scores are determined for the method nodes. The criticality scores are then used to determine which of the method nodes are critical method nodes. Indications of the critical method nodes can be output.