Open Source Component Detection via Hierarchical Code Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing technologies face challenges in accurately and extensively detecting open-source software components, especially when they are reused in modified forms, leading to difficulties in identifying license violations and security risks.
Innovation Solution
A method using a processor to construct a component database by performing redundancy elimination on open source software, and then identifying components of target software by comparing the target source code with the application code parts of the open source software.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If open source software components are detected using traditional methods, then detection can be performed quickly, but detection accuracy is insufficient especially for modified open source software
Solution Approach 1:
The patent segments source code into hierarchical units (software→module→function→statement) to enable progressive comparison. This segmentation allows the system to first compare at the module level for quick filtering, then drill down to function and statement levels only for potential matches, thereby maintaining high accuracy while reducing overall detection time by avoiding exhaustive fine-grained comparison of all code.
Solution Approach 2:
The patent performs preliminary actions by constructing component databases in advance and organizing code into hierarchical structures before actual detection. The system pre-processes open source software to create structured component databases with hierarchical relationships, enabling faster and more accurate detection during actual use without performing these complex organizational tasks during the detection phase.
2Quantity of substance
If the number of open source software components to be detected increases, then comprehensive detection coverage is improved, but detection complexity and time increase
Solution Approach 1:
The hierarchical segmentation of code into multiple levels (software, module, function, statement) enables the system to manage and compare large quantities of open source components efficiently. By organizing components hierarchically, the system can process and compare code at appropriate granularities, reducing the computational complexity that would otherwise arise from handling vast amounts of code directly.
Solution Approach 2:
The patent introduces a hierarchical dimension to the detection process, transforming a flat, monolithic comparison problem into a multi-level structured comparison. This dimensional change allows the system to navigate through layers of abstraction, comparing components at different hierarchical levels, which simplifies the overall complexity of detecting across large numbers of open source software components.
3Measurement precision
If modified open source software is detected using traditional binary-level methods, then detection speed is maintained, but detection accuracy deteriorates due to modification detection limitations
Solution Approach 1:
The patent segments code into hierarchical units and applies selective comparison strategies. By segmenting code into modules, functions, and statements, the system can identify modifications at appropriate granularities without requiring exhaustive comparison of entire codebases, thus maintaining accuracy for modified software while preserving detection efficiency through selective deep analysis.
Solution Approach 2:
The patent changes the parameters of comparison by using hierarchical code representation and similarity metrics that are sensitive to modifications. Instead of binary-level comparison, the system uses source code-level parameters and hierarchical structures that can detect modifications more accurately, while efficiency is maintained through the progressive comparison approach that avoids unnecessary fine-grained analysis.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
According to some exemplary embodiments of the present disclosure, a method for identifying open source software (OSS) components using a processor of a computing device is disclosed. The method for identifying open source software (OSS) components may include: constructing a component database by performing redundancy elimination for each of a plurality of open source software; and identifying a component of target software by using the component database.