Software Component Similarity Analysis Using Vector Properties

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional software versioning techniques fail to provide users with accurate information on the significance of updates, making it difficult to determine whether to upgrade or downgrade software components, as they only indicate version numbers without detailing the differences between versions.

Innovation Solution

A method that evaluates intrinsic properties of software components, such as technical debt, code complexity, and security vulnerabilities, and represents them as vectors for similarity analysis using techniques like modified cosine similarity, allowing users to quantify the similarity between different versions and make informed decisions about upgrades or downgrades.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If traditional versioning techniques are used to track software updates, then version numbers can be easily identified and managed, but users cannot determine the significance of differences between versions

Engineering Contradiction:
Improveinformation on version differencesVSAvoidcomplexity of version comparison
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary system that computes similarity scores between software versions based on component properties. This intermediary processing layer translates raw version data into meaningful similarity metrics, allowing users to understand the significance of differences without directly analyzing complex version details.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent transforms version comparison from a qualitative process (looking at version numbers) to a quantitative process (computing similarity scores). By changing the parameter from version strings to numerical similarity values, the system enables precise measurement of differences while maintaining ease of use through automated computation.

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If users manually review version details to determine upgrade significance, then accurate information is obtained, but time and computational resources are wasted on insignificant updates

Engineering Contradiction:
Improveprecision of version difference assessmentVSAvoidtime for version evaluation
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary computation of similarity scores between versions before users need to make upgrade decisions. By pre-calculating these metrics and storing them, the system eliminates the need for users to manually review version details, saving time while maintaining precise assessment of update significance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system enables self-service version comparison by automatically computing and providing similarity scores. Users can query the system to obtain pre-computed similarity information without investing their own time in manual analysis, allowing them to make informed decisions efficiently.

Inventive Principle:
Principle #25Self-service

3Reliability

If all software updates are applied to ensure latest versions, then software currency is maintained, but computing resources are wasted on insignificant updates

Engineering Contradiction:
Improvesoftware currencyVSAvoidcomputing resources for updates
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent changes the decision parameter from binary (update or not) to continuous (similarity score). By using similarity thresholds, the system can selectively apply updates only when they exceed a significant difference threshold, maintaining software currency for important updates while conserving resources on minor changes.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent applies partial action by selectively updating only those components that exceed the similarity threshold. Instead of applying all updates uniformly, the system performs partial updates based on the significance of changes, optimizing resource usage while maintaining reliability for critical updates.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10782964B2Measuring similarity of software components
Publication Date: 2020.09.22 RED HAT INC
  • US10782964B2 patent drawing
  • US10782964B2 patent drawing
  • US10782964B2 patent drawing

AI summary

Methods, systems, and computer program products are included for measuring similarity between different versions of software components. An example method includes a computing device identifying one or more software components. Properties are determined corresponding to a component of the identified one or more software components. The determined properties are represented as elements of a vector. A similarity is determined between the vector and a second vector corresponding to a different version of the component. A result is provided that indicates the determined similarity.