Large Code Base Partitioning for Scalable Static Analysis
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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.
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
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.
Data Source
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.


