Large Code Base Partitioning for Scalable Static Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing static code analysis tools are not scalable to analyze large code bases of over 5-6 million Lines of Code (LOC), resulting in poor precision and excessive resource burden, as they fail to efficiently handle the complexity and size of real-world software systems.

Innovation Solution

The method involves partitioning a large code base into smaller clusters, analyzing each cluster individually, and combining the results to represent the analysis for the entire code base, using a processor-implemented approach that identifies entry procedures, derives reference graphs, and partitions the code into clusters based on these procedures, allowing for scalable defect detection and code review.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If static code analysis tools analyze large code bases as a single cluster, then analysis precision is maintained, but scalability deteriorates and computational resource burden increases

Engineering Contradiction:
Improveanalysis precisionVSAvoidscalability
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent divides a large code base into multiple smaller clusters based on procedure reference graphs and entry procedures. Each cluster represents a manageable subset of the code base that can be analyzed independently. This segmentation allows the analysis system to handle large code bases by processing smaller units separately and combining results, thereby maintaining scalability while preserving analysis precision through proper cluster formation that respects code dependencies.

Inventive Principle:
Principle #1Segmentation

2Length of stationary object

If static code analysis tools scale up to handle larger code bases, then code length capacity increases, but analysis precision deteriorates

Engineering Contradiction:
Improvecode length capacityVSAvoidanalysis precision
Core Design Contradiction:
Length of stationary objectVSMeasurement precision

Solution Approach 1:

The system segments large code bases into smaller clusters that maintain analysis precision while increasing overall code length capacity. By using entry procedures and reference graphs to create meaningful clusters, the system can analyze code bases of any size by processing multiple small clusters rather than forcing a single large-cluster analysis that would lose precision.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent combines results from multiple individual cluster analyses to produce comprehensive analysis results for the entire code base. This merging approach allows the system to handle arbitrarily large code bases by aggregating results from numerous small clusters, thereby increasing code length capacity without sacrificing the precision achieved in individual cluster analyses.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If static code analysis tools analyze large code bases as a single cluster, then comprehensive code coverage is achieved, but computational resource burden increases

Engineering Contradiction:
Improvecode coverageVSAvoidcomputational resource burden
Core Design Contradiction:
ReliabilityVSUse of energy by stationary object

Solution Approach 1:

The patent segments the code base into clusters that can be analyzed independently with lower computational resource requirements. By dividing the large code base into smaller units based on procedure references and entry points, the system achieves comprehensive code coverage across all clusters while reducing the memory and processing burden associated with analyzing the entire code base as a single unit.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8612941B2System and method for analysis of a large code base using partitioning
Publication Date: 2013.12.17 TATA CONSULTANCY SERVICES LTD
  • US8612941B2 patent drawing
  • US8612941B2 patent drawing
  • US8612941B2 patent drawing

AI summary

A system and method for analysis of a large code base using partitioning. The present application relates to management of large code bases, by enabling fragmentation of large code bases into smaller code clusters. Further the system and method analyze small code clusters individually and combining the results obtained therefrom, illustrating to programmers the combined result for the entire code base.