Automated Software Verification Service Parallel Task Splitting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Verifying software updates is computationally expensive and time-consuming, requiring repeated formal proofs for each new version, which is inefficient and labor-intensive, especially when using specialized verification tools.

Innovation Solution

A distributed computing system utilizing cloud resources to perform formal and other types of software verification through a generic API, allowing verification tasks to be split among multiple virtual resources, thereby reducing verification time and automating the process within a continuous integration pipeline.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If formal verification is performed on each new version of software using specialized verification tools, then safety guarantees are maintained, but verification time and computational cost increase significantly

Engineering Contradiction:
Improvesafety guaranteesVSAvoidverification time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent divides the software verification process into multiple independent verification tasks that can be executed in parallel. Each verification task processes a specific aspect or module of the software, allowing the overall verification to be segmented across multiple computational units, thereby reducing total verification time while maintaining comprehensive safety checks

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from sequential verification to parallel verification by adding the dimension of concurrent execution. Multiple verification tasks are executed simultaneously across distributed computational resources, fundamentally changing the time dimension of the verification process from linear to parallel, thus reducing verification time without compromising reliability

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

2Reliability

If formal verification is performed on each new version of software, then safety guarantees are maintained, but computational resources and complexity increase

Engineering Contradiction:
Improvesafety guaranteesVSAvoidverification system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates a universal verification framework that can handle multiple verification tasks through a single distributed system. The system is designed to be multi-functional, accommodating various types of verification tasks (safety properties, liveness properties, invariants) within a unified architecture, thereby managing complexity through standardization rather than proliferation of specialized tools

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

Solution Approach 2:

The patent introduces an intermediary layer (the distributed verification service) that mediates between the software under verification and the complex verification tasks. This intermediary abstracts the complexity of formal verification methods, presenting a simplified interface to users while managing the intricate computational processes in the background, thus reducing perceived complexity

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If verification is performed manually for each software update, then thorough checking is possible, but productivity and speed of deployment decrease

Engineering Contradiction:
Improveverification thoroughnessVSAvoidsoftware update speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent implements self-service verification where the system automatically initiates, executes, and completes verification tasks without human intervention. The distributed verification service autonomously manages task scheduling, resource allocation, and result aggregation, enabling thorough verification to occur automatically as part of the software update process, thus maintaining precision while dramatically improving productivity

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent establishes continuous verification as an integral part of the software development lifecycle. Verification tasks are continuously executed alongside software updates in an automated pipeline, ensuring that thorough checking occurs without interruption to the development flow, thereby maintaining verification precision while enabling rapid and continuous software deployment

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS11232015B2Automated software verification service
Publication Date: 2022.01.25 AMAZON TECH INC
  • US11232015B2 patent drawing
  • US11232015B2 patent drawing
  • US11232015B2 patent drawing

AI summary

A method for verifying source code for a program includes determining that a new version of the source code is available. One or more verification tools are determined to use for verification of the new version of the source code from a verification specification associated with the source code. A plurality of verification tasks to perform for the verification of the new version of the source code are automatically determined from the verification specification associated with the source code. The plurality of verification tasks for the new version of the source code are automatically performed using the one or more verification tools. A determination is then made as to whether the new version of the source code is verified.