Automated Open Source Software Reuse Scoring System

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods lack a dependable process for measuring the reusability of open-source software libraries, failing to consider real-world usage and functional reuse potential, which hinders effective software development and evolution.

Innovation Solution

A system and method that calculates a forked project reuse index based on useful forks, dependency consumption, and natural language processing to assess the reusability of open-source libraries by analyzing commit history, code attributes, and functional reuse, providing a unified reuse score.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional quality measurement systems are used to measure software library reuse, then code quality metrics can be obtained, but real-world usage and functional reuse potential are not considered

Engineering Contradiction:
Improvereuse measurement accuracyVSAvoidreal-world usage consideration
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The patent segments the reuse measurement into multiple independent dimensions: fork-based reuse metrics, dependency-based reuse metrics, and functional reuse metrics. Each dimension is calculated separately using specific algorithms (e.g., fork activity analysis, dependency graph traversal, code similarity comparison) and then aggregated to form a comprehensive reuse score, allowing precise measurement of different aspects of reuse independently

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a multi-dimensional measurement framework that adds new dimensions beyond traditional code quality metrics. It incorporates temporal dimension (fork activity over time), relational dimension (dependency relationships between projects), and functional dimension (code similarity and purpose). This dimensional expansion enables measurement of real-world usage patterns and functional reuse potential that single-dimensional traditional metrics cannot capture

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If ad hoc development of reuse practices is used, then some reuse benefits can be achieved, but a dependable process model is lacking

Engineering Contradiction:
Improvesoftware development efficiencyVSAvoidprocess model dependability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements feedback mechanisms where reuse metrics are continuously calculated and fed back to developers and project maintainers. The system monitors fork activity, dependency usage, and code reuse patterns over time, providing quantitative feedback that informs future development decisions. This creates a closed-loop process where measurement results directly influence subsequent reuse practices, making the process dependable and iterative

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent establishes a systematic framework with configurable parameters for measuring different aspects of reuse (e.g., time windows for fork analysis, similarity thresholds for code matching, weightings for different metric components). These parameters can be adjusted based on specific project needs and contexts, transforming ad hoc practices into a reliable, parameter-driven process model that adapts to different scenarios while maintaining consistency

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If fork activity and dependency consumption are used to measure reuse, then real-world usage can be quantified, but measurement complexity increases

Engineering Contradiction:
Improvefunctional reuse measurementVSAvoidmeasurement system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent extracts specific measurable indicators from complex real-world usage patterns, such as counting fork events, tracking dependency declarations, and measuring code similarity percentages. By focusing on these extractable, quantifiable signals rather than attempting to measure all aspects of reuse, the system achieves functional reuse measurement without requiring overly complex measurement infrastructure

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces intermediary metrics that bridge the gap between complex real-world usage and simple quantifiable measurements. For example, it uses fork activity counts as an intermediary to represent complex project forking behavior, dependency graph depth as an intermediary for complexity analysis, and code similarity percentages as intermediaries for functional equivalence assessment. These intermediaries simplify the measurement process while preserving the essence of functional reuse

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11853745B2Methods and systems for automated open source software reuse scoring
Publication Date: 2023.12.26 OPEN WEAVER INC
  • US11853745B2 patent drawing
  • US11853745B2 patent drawing
  • US11853745B2 patent drawing

AI summary

Methods and systems for automated scoring of open-source libraries on their state of reuse in software projects are provided. A system is configured to extract information about the software project, determine whether the extracted information includes information regarding any forked projects, calculate a useful fork reuse score for a forked project, calculate a reuse score in the forked project based on source code attributes including a source code class, create a tree structure for the source code class, identify functions from the tree structure of the source code class, identify similar code sections from the two source code files, calculate a code attributes reuse score based on the similar code sections, calculate a dependent consumption reuse score which indicates how much a function is reused by a dependent class, and calculate a unified reuse score based on the reuse score of the forked project and the dependent consumption reuse score.