Probabilistic Code Similarity for Expert Identification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for identifying subject matter experts in computer software development are inefficient and lack a systematic approach to correlate code portions with relevant experts, especially when dealing with large code repositories.

Innovation Solution

A computer-implemented method utilizing a probabilistic data structure, such as a Bloom filter, to determine similarities between code portions and associate them with subject matter experts, generating relationship data that correlates code portions with SMEs, enabling efficient and accurate identification.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional methods are used to identify subject matter experts in large code repositories, then comprehensive analysis can be performed, but the process becomes computationally expensive and time-consuming

Engineering Contradiction:
Improvecode similarity detection accuracyVSAvoidexpert identification efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent uses probabilistic data structures (Bloom filters, Count-Min Sketch) that provide approximate but sufficiently accurate results with much lower computational cost. These structures allow the system to quickly determine code similarity and identify subject matter experts without performing exhaustive comparisons of all code portions in the repository, thus resolving the contradiction between accuracy and efficiency

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Solution Approach 2:

The system changes the parameter of similarity detection from exact matching to probabilistic approximation. By using data structures that store and query code fingerprints with controlled error rates, the system achieves acceptable measurement precision while dramatically improving productivity in expert identification

Inventive Principle:
Principle #35Parameter changes

2Reliability

If exact code comparison methods are used to ensure accurate subject matter expert identification, then reliability is improved, but the computational resources and time required increase significantly

Engineering Contradiction:
Improveexpert identification reliabilityVSAvoidanalysis time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies partial action by using probabilistic data structures that provide sufficient accuracy for practical purposes without performing complete exhaustive analysis. The Bloom filters and Count-Min Sketch structures enable the system to get reliable results for most cases without the time cost of exact comparison for every code portion, thus resolving the contradiction between reliability and time consumption

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11853750B2Subject matter expert identification and code analysis based on a probabilistic filter
Publication Date: 2023.12.26 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11853750B2 patent drawing
  • US11853750B2 patent drawing
  • US11853750B2 patent drawing

AI summary

A computer-implemented method includes receiving a portion of code, inputting the received portion of code to a probabilistic data structure to determine whether the portion of code is similar to one or more other portions of code, and based on determining that the one or more other portions are similar to the received portion of code, identifying a number of similar portions of code. The method also includes storing relationship data that associates the similar portions of code with the received portion of code, determining one or more subject matter experts (SMEs) associated with the similar portions of code and the received portion of code and determining correlations between SME data and the relationship data, and storing the SME data and the correlations, the SME data including an indication of the determined SMEs, the relationship data correlating the one or more SMEs to the received portion of code.