Software Component Verification via Randomized Device Pooling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing complexity of computing devices with numerous peripheral devices makes it difficult to verify the proper operation of device drivers before production and release, leading to in-field issues like system crashes and memory corruption due to the resource-intensive nature of local verification processes.

Innovation Solution

A verification pool of user devices randomly selects and monitors software components, capturing information on predefined conditions and reporting it to a centralized service, ensuring exhaustive coverage without noticeable performance degradation by limiting the number of components monitored on each device.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If local verification processes are performed on each device, then software component reliability is improved, but device performance degradation occurs

Engineering Contradiction:
Improvesoftware component reliabilityVSAvoiddevice performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

A centralized verification service acts as an intermediary, collecting verification data from multiple user devices and performing comprehensive software component verification remotely. This eliminates the need for each device to perform resource-intensive local verification processes, thereby maintaining device performance while achieving thorough verification through the centralized service that aggregates data from the verification pool.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If comprehensive verification of all software components is performed, then verification coverage is improved, but resource consumption increases

Engineering Contradiction:
Improveverification coverageVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The verification process is segmented across multiple user devices forming a verification pool. Each device independently verifies software components and submits results to a centralized service, distributing the verification workload across many devices rather than requiring one device to perform all verification tasks. This segmentation enables comprehensive verification coverage while each individual device consumes minimal resources.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

User devices serve multiple functions: they act as both regular computing devices for user tasks and as verification nodes contributing to the pooled verification effort. By making devices multi-functional, the system leverages existing device resources for verification purposes without requiring dedicated verification hardware, thereby achieving comprehensive verification without additional resource consumption.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Reliability

If the verification pool size is increased, then verification exhaustiveness is improved, but system complexity increases

Engineering Contradiction:
Improveverification exhaustivenessVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Multiple user devices are merged into a unified verification pool managed by a centralized verification service. The centralized service coordinates verification tasks, aggregates verification data, and manages the pool as a single logical entity. This merging approach enables the system to achieve verification exhaustiveness through the combined effort of multiple devices while the centralized management architecture prevents system complexity from becoming unmanageable.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10936469B2Software component verification using random selection on pooled devices
Publication Date: 2021.03.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10936469B2 patent drawing
  • US10936469B2 patent drawing
  • US10936469B2 patent drawing

AI summary

A system for providing ongoing verification of released software components utilizes feedback from a pool of devices that each locally execute a verification component. The verification component randomly selects one or more locally-executing software components, captures information associated with the randomly-selected software components responsive to detection of events satisfying one or more capture conditions, and communicates the captured information to a software component verification and analysis service. The total number of the randomly-selected software components within the verification pool is set to statistically guarantee that each one of the software components available for random selection is randomly selected on at least one of the plurality of processing devices within the verification pool.